CONSULTA SQL (básico)
Olá,estou fazendo uma aplicação básica em delphi com cosulta SQL, e estou tendo alguns probleminhas pra fazer a consulta
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--
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--
Curtidas 0
Respostas
Adriano_servitec
31/08/2008
[quote:882c37b552=´--LH-PIM--´]Olá,estou fazendo uma aplicação básica em delphi com cosulta SQL, e estou tendo alguns probleminhas pra fazer a consulta
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.
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
--lh-pim--
31/08/2008
sim,faltou um open sim,acho que ´esse´ problema foi resolvido sim xD
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
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
Adriano_servitec
31/08/2008
[quote:4e1f330629=´--LH-PIM--´]sim,faltou um open sim,acho que ´esse´ problema foi resolvido sim xD
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]
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
Marciosystem
31/08/2008
[quote:b002263ad5=´--LH-PIM--´]sim,faltou um open sim,acho que ´esse´ problema foi resolvido sim xD
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
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
--lh-pim--
31/08/2008
Olá dinovo,resolvi fazer da maneira como me indicaram,mas agora tenho um novo erro...
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
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
Adriano_servitec
31/08/2008
Que banco vc esta usando ai?
[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
[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
--lh-pim--
31/08/2008
Estou usando o Interbase no IBExpert
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
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
Adriano_servitec
31/08/2008
Bom vc viu ai se tem dados gravados com acentuação?
Como postei um link ai, este erro pode ocorrer pelo motivo do charset
Acho que do interbaser é ISO8859_1
Como postei um link ai, este erro pode ocorrer pelo motivo do charset
Acho que do interbaser é ISO8859_1
GOSTEI 0
Adriano_servitec
31/08/2008
Outra coisa, não sei bem ao certo, mais campos tipo char tem que ser completamente preenchidos e campos varchar não ha esta necessidade. Verifique isso também
GOSTEI 0
--lh-pim--
31/08/2008
olha,defini o CHARSET e tal como me indicou,também
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
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
--lh-pim--
31/08/2008
Olá,então,consegui resolver o problema com a consulta e tal
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á
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
Adriano_servitec
31/08/2008
[quote:6d3ad6f706=´--LH-PIM--´]Olá,então,consegui resolver o problema com a consulta e tal
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
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
--lh-pim--
31/08/2008
Muito obrigado,era isso mesmo!
me ajudou muito,obrigado
código simples e objetivo
me ajudou muito,obrigado
código simples e objetivo
GOSTEI 0