Fórum CONSULTA SQL (básico) #363436
31/08/2008
0
estou usando um form separado pra fazer a consulta,e coloco assim código:
(se a pessoa escolher fazer a consulta pelo ID):
FrmCategorias.SQLQuery1.SQL.Text:=´select * from CATEGORIAS ´+
´where ID_CATEGORIA=´+edtLoc.Text;
mas quando faço a pesquisa não me retorna nada :?
queria saber o que está acontecendo,se alguém puder me ajudar,
agradeço desde já a atenção
--LH-PIM--
--lh-pim--
Curtir tópico
+ 0Posts
31/08/2008
Adriano_servitec
estou usando um form separado pra fazer a consulta,e coloco assim código:
(se a pessoa escolher fazer a consulta pelo ID):
FrmCategorias.SQLQuery1.SQL.Text:=´select * from CATEGORIAS ´+
´where ID_CATEGORIA=´+edtLoc.Text;
mas quando faço a pesquisa não me retorna nada :?
queria saber o que está acontecendo,se alguém puder me ajudar,
agradeço desde já a atenção
--LH-PIM--[/quote:882c37b552]
Deve ter faltado um [b:882c37b552]Open[/b:882c37b552] ai no teu select, mais de qualquer forma tai como eu faria este select aqui.
with FrmCategorias.SQLQuery1 do begin close; SQL.Text:=´ select * from CATEGORIAS ´+ ´ where ID_CATEGORIA = :pesquisa ´; ParamByName(´Pesquisa´).asInteger := StrToInt(edtLoc.Text); Open; end;
Gostei + 0
31/08/2008
--lh-pim--
mas se puder me ajudar com uma outra dúvida...agradecerei muito
tenho uma instrução SQL que quero executar no delphi,mas sempre me retorna um erro,veja só:
SQL.Text:=´select * from CATEGORIAS´+
´where SIGLA_CATEGORIA like ´¬´+Uppercase(edtLoc.Text)+´¬´´;
sempre me retorna erro em like nesse fragmento... :?
no SQL o like tem apostrofos,não aspas, mas se tento fazer isso no delphi dá errado,não sei o que fazer...
devem ser erros bobos,mas se puderem me ajudar ficarei muito grato
desde já agradeço
Gostei + 0
01/09/2008
Adriano_servitec
mas se puder me ajudar com uma outra dúvida...agradecerei muito
tenho uma instrução SQL que quero executar no delphi,mas sempre me retorna um erro,veja só:
SQL.Text:=´select * from CATEGORIAS´+
´where SIGLA_CATEGORIA like ´¬´+AnsiUppercase(edtLoc.Text)+´¬´´;
sempre me retorna erro em like nesse fragmento... :?
no SQL o like tem apostrofos,não aspas, mas se tento fazer isso no delphi dá errado,não sei o que fazer...
devem ser erros bobos,mas se puderem me ajudar ficarei muito grato
desde já agradeço[/quote:4e1f330629]
with seudataset do begin close; SQL.Text:=´ select * from CATEGORIAS ´+ ´ where upper(SIGLA_CATEGORIA) like :pesquisa ´; Parambyname(´pesquisa´).asString := ´¬´+Uppercase(edtLoc.Text)+´¬´; open; end;
Gostei + 0
01/09/2008
Marciosystem
mas se puder me ajudar com uma outra dúvida...agradecerei muito
tenho uma instrução SQL que quero executar no delphi,mas sempre me retorna um erro,veja só:
SQL.Text:=´select * from CATEGORIAS´+
´where SIGLA_CATEGORIA like ´¬´+Uppercase(edtLoc.Text)+´¬´´;
sempre me retorna erro em like nesse fragmento... :?
no SQL o like tem apostrofos,não aspas, mas se tento fazer isso no delphi dá errado,não sei o que fazer...
devem ser erros bobos,mas se puderem me ajudar ficarei muito grato
desde já agradeço[/quote:b002263ad5]
Voce tem que fazer como Adriano falou, lembrando que, todas vez que voce fizer esse tipo concatenacao, voce devera deixar um espaco em branco no final de cada concatenacao, senao qdo juntas todas concatenacoes, vai acontecer o erro que voces indicou.
Marcio
Gostei + 0
01/09/2008
--lh-pim--
with FrmCat.CDS_a do begin
Close;
FrmCat.Query.SQL.Text:=´ select * from CATEGORIAS ´+
´ where upper(SIGLA_CATEGORIA) like :pesquisa ´;
FrmCat.Query.ParamByName(´pesquisa´).AsString:= ´¬´
+Uppercase(edtLoc.Text)+´¬´;
Open;
end;
este é o código,quando executo,a mensagem de erro mostrada é a seguinte:
´arithmetic exception, numeric overflow,or string trucation´
cada vez mais erros... :? se puderem me ajudar novamente...
bom,agradeço desde já e aproveito pra agradecer aos posts anteriores,obrigado
Gostei + 0
01/09/2008
Adriano_servitec
[b:5e514fb9f2]firebird 2.0[/b:5e514fb9f2], ja vi gente com este probelma e resolver assim
http://72.14.205.104/search?q=cache:0V2OX1S1MFAJ:www.activedelphi.com.br/forum/viewtopic.php¬3Ft¬3D34292¬26highlight¬3D¬26sid¬3D76c2bf41bb0f9acabb75fadc65ea234a+arithmetic+exception,+numeric+overflow¬2Badriano_servitec&hl=pt-BR&ct=clnk&cd=2&gl=br&client=firefox-a
Ou quando se grava num campo o valor é maior que o que vc informou la no campo do banco
Exemplo
http://www.tiforum.com.br/viewtopic.php?f=33&t=19666&p=47055
Verifique ai, qualquer coisa é só postar novamente
Gostei + 0
01/09/2008
--lh-pim--
acho que sei qual é o problema,mas não tenho nenhuma certeza
o campo SIGLA_CATEGRORIA é char(3), mas no código estou usando assim:
ParamByName(´Pesquisa´).AsString
acho que pode estar ai o erro,será que terei que fazer o banco novamente?? :?
se puder me ajudar novamente...
agradeço desde já,obrigado
Gostei + 0
01/09/2008
Adriano_servitec
Como postei um link ai, este erro pode ocorrer pelo motivo do charset
Acho que do interbaser é ISO8859_1
Gostei + 0
01/09/2008
Adriano_servitec
Gostei + 0
02/09/2008
--lh-pim--
depois tbm mudei o campo SIGLA_CATEGORIA pra varchar pra dar certo
e o erro persiste...
o erro está nesse código:
with FrmCat.CDS_a do begin
Close;
FrmCat.Query.SQL.Text:=´ select * from CATEGORIAS ´+
´ where UPPER(SIGLA_CATEGORIA) like :pesquisa ´;
FrmCat.Query.ParamByName(´pesquisa´).AsString:= ´¬´
+Uppercase(edtLoc.Text)+´¬´;
Open;
end;
:? realmente não consigo enxergar o problema
agradecendo novamente a ajuda, vcs são muito dez
Gostei + 0
07/09/2008
--lh-pim--
agora tenho uma outra dúvida em relação as consultas...
eu gostaria de saber como faço pra apresentar uma mensagem caso a consulta seja nula?
se alguém puder me ajudar agradeço desde já
Gostei + 0
07/09/2008
Adriano_servitec
agora tenho uma outra dúvida em relação as consultas...
eu gostaria de saber como faço pra apresentar uma mensagem caso a consulta seja nula?
se alguém puder me ajudar agradeço desde já[/quote:6d3ad6f706]
Tente assim amigo
with seudataset do begin close; SQL.Text:=´ select * from CATEGORIAS ´+ ´ where upper(SIGLA_CATEGORIA) like :pesquisa ´; Parambyname(´pesquisa´).asString := ´¬´+Uppercase(edtLoc.Text)+´¬´; open; if seudataset.isEmpty then MessageDlg(´Nao há registro de dados com este Nome´+#13+ ´Por favor tente novamente.´,mtInformation,[mbOK],0) else MessageDlg(´Esta consulta resultou em: ´ + inttostr(seudataset.recordcount) + ´ registros´,mtInformation,[mbOK],0); end;
Gostei + 0
08/09/2008
--lh-pim--
me ajudou muito,obrigado
código simples e objetivo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)