Fórum CONSULTA SQL (básico) #363436

31/08/2008

0

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--


--lh-pim--

--lh-pim--

Responder

Posts

31/08/2008

Adriano_servitec

[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.

with FrmCategorias.SQLQuery1 do
begin
  close;
  SQL.Text:=´ select * from CATEGORIAS ´+
                   ´ where ID_CATEGORIA = :pesquisa ´;
  ParamByName(´Pesquisa´).asInteger := StrToInt(edtLoc.Text);  
  Open;
end;



Responder

Gostei + 0

31/08/2008

--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


Responder

Gostei + 0

01/09/2008

Adriano_servitec

[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]
with seudataset do
begin
close;
SQL.Text:=´ select * from CATEGORIAS ´+
´ where upper(SIGLA_CATEGORIA) like :pesquisa ´;
Parambyname(´pesquisa´).asString := ´¬´+Uppercase(edtLoc.Text)+´¬´;
open;
end;



Responder

Gostei + 0

01/09/2008

Marciosystem

[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


Responder

Gostei + 0

01/09/2008

--lh-pim--

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


Responder

Gostei + 0

01/09/2008

Adriano_servitec

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


Responder

Gostei + 0

01/09/2008

--lh-pim--

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


Responder

Gostei + 0

01/09/2008

Adriano_servitec

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


Responder

Gostei + 0

01/09/2008

Adriano_servitec

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


Responder

Gostei + 0

02/09/2008

--lh-pim--

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


Responder

Gostei + 0

07/09/2008

--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á


Responder

Gostei + 0

07/09/2008

Adriano_servitec

[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

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;



Responder

Gostei + 0

08/09/2008

--lh-pim--

Muito obrigado,era isso mesmo!
me ajudou muito,obrigado
código simples e objetivo


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar