Geelherme 1 Denunciar post Postado Dezembro 18, 2009 olá eu tenho um botao que gostaria de atualizar a query SQL do Zquery cada vez que fosse pressionado e atualizasse os dados do datasource. o meu código é: var i: integer; procedure TForm3.Button1Click(Sender: TObject); begin i := StrToInt(Label1.Caption); //Esse espaço eu uso pra controlar e Label1.Caption := IntToStr((i + 30)); // verificar o valor de I. a := IntToStr(i - 30); b := IntToStr(i); ZQuery1.SQL := 'SELECT * FROM LIGACOES LIMIT ' + a + ',' + b; end; mas da erro na linha do ZQuery.SQL: Incompatible type: 'TString' and 'string' alguem sabe o que dizer? Compartilhar este post Link para o post Compartilhar em outros sites
vitorm11 3 Denunciar post Postado Dezembro 18, 2009 tente assim... procedure TForm3.Button1Click(Sender: TObject); var i: integer; begin i := StrToInt(Label1.Caption); //Esse espaço eu uso pra controlar e Label1.Caption := IntToStr((i + 30)); // verificar o valor de I. a := IntToStr(i - 30); b := IntToStr(i); ZQuery1.SQL := 'SELECT * FROM LIGACOES LIMIT '''+a+''','''+b+'''; end; Compartilhar este post Link para o post Compartilhar em outros sites
Geelherme 1 Denunciar post Postado Dezembro 18, 2009 amigo, faltou um ' no final, eu coloquei mas o erro é o mesmo... ZQuery1.SQL := 'SELECT * FROM LIGACOES LIMIT '''+a+''','''+b+''''; Incompatible types: 'TString' and 'string' Compartilhar este post Link para o post Compartilhar em outros sites
vitorm11 3 Denunciar post Postado Dezembro 20, 2009 então faça assim... ja tentou ao contrario??? a := StrToInt(i - 30); b := StrToInt(i); Se o problema persistir, pode fikar sussegado q nos vamos dar um jeito... Att. Vitor. Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Dezembro 21, 2009 Não trabalhei com o componente ZQuery, mas se ele for como as TQuerys da vida, não dá para simplesmente atribuir a propriedade SQL o valor.... numa TQuery, para montar uma consulta dinâmica, o ciclo seria este: Query.Close; Query.Sql.Clear; //Limpa a query anterior, deixando a TQuery apta a receber a nova query sem risco de erros por lixo. Query.Sql.Add('Select campoA, campoB from tabela where campoA like ' + QuotedStr('%' + edit1.text + '%')); try Query.Open; except showmessage('Ops, deu um erro na consulta...'); end; Se o Zquery seguir a mesma lógica, você terá que montar algo assim: ZQuery1.Close; ZQuery1.SQL .Clear; ZQuery1.SQL.Add('SELECT * FROM LIGACOES LIMIT ' +a + ',' +B); try ZQuery1.Open; except showmessage('Ops, deu um erro na consulta...'); end; Dê uma checada se o problema não é este. []'s Compartilhar este post Link para o post Compartilhar em outros sites
Geelherme 1 Denunciar post Postado Dezembro 21, 2009 Olá amigos.... agradeço pela ajuda, já consegui caminhar um pouquinho... como o Chrnos disse, a maneira correta de se fazer é usando o método ADD... fiz e ele já compila, agora o meu erro é na consulta sql mesmo. Abaixo vai o meu código: i := StrToInt(Label1.Caption); Label1.Caption := IntToStr((i + 30)); a := IntToStr(i); // b := IntToStr(i); ZQuery1.SQL.Clear; ZQuery1.SQL.Add('SELECT * FROM LIGACOES LIMIT '+ a + ' ,30'); try ZQuery1.Open; except showmessage('Ops, deu um erro na consulta...'+ a); end; quero fazer um botão que exiba os registros num grid e alterne entre eles em grupo de 30... tipo o botao de avançar, voltar, mas só que de 30 em 30.... sempre dá erro na consulta... a variavél "a" é uma string e eu quero usar o seu valor como um inteiro... pode ser esse o erro, mas como solucionar? Compartilhar este post Link para o post Compartilhar em outros sites
itepi 0 Denunciar post Postado Dezembro 22, 2009 Qual erro esta dando? Cara eu fiz um teste aqui, fazendo exatamente como você esta fazendo, e deu certo. A unica difereça do codigo que utilizei e o seu, é que tirei esse Label1....Você falou que utiliza para controlar o valor de I certo? entao quer dizer q no botão de avançar você soma e no de voltar você subtrai 30. Para isso o valor inicial do Label1 tem que ser ZERO, porque se for em branco vai dar erro. Mas informe o erro que fica mais facil descobrir como solucionar!!! Abraço!!! Compartilhar este post Link para o post Compartilhar em outros sites
Geelherme 1 Denunciar post Postado Dezembro 22, 2009 EDIT: Consegui resolver, bastou reconfigurar o ZConnection e ele passou a funcionar de boa... agradeço muito pela ajuda de vocês três... obrigado mesmo =) ___________________________________________________________________ Entao... o erro que dá é o do except: Ops, deu um erro na consulta... no seu caso, como você tirou o label1? nao entendi.. ele exibiu os registros limitando por apenas 30? abçs i := 0; Label1.Caption := IntToStr((i)); a := IntToStr(i); ZQuery1.SQL.Clear; ZQuery1.SQL.Add('SELECT * FROM LIGACOES LIMIT '+ a + ' ,30'); try ZQuery1.Open; i := i + 30; except showmessage('Ops, deu um erro na consulta...'+ a); end;[u][/u] Compartilhar este post Link para o post Compartilhar em outros sites
itepi 0 Denunciar post Postado Dezembro 22, 2009 isso mesmo, deu certo, fiz da seguinte forma (obs.: utilizei uma tabela minha aqui) procedure TfrmPrincipal.BitBtn3Click(Sender: TObject); var i : integer; a : string; begin i := 10; //Aqui é como se o I recebesse o valor do label a := IntToStr(i); ZQuery1.SQL.Clear; ZQuery1.SQL.Add('SELECT * FROM BANCOS LIMIT '+ a + ' ,30'); //substitui a sua tabela LIGACOES pela minha que se chama BANCOS try ZQuery1.Open; except showmessage('Ops, deu um erro na consulta...'+ a); end; end; Compartilhar este post Link para o post Compartilhar em outros sites