Pesquisa
Ola pessoal..
Estou tentando fazer uma pesquisa no meu banco de dados. Pesquisar meus cadastros de transportadoras pela sua UF. minha linha de código ness parte esta na seguinte maneira:
IBQ_pesq.SQL.add ('select * from transportadora t, regiao r');
IBQ_pesq.sql.Add('where t.cod_transportadora=r.cod_transportadora and');
IBQ_pesq.SQL.Add ('r.uf like :pnome');
IBQ_pesq.ParamByName('pnome').AsString:='%'+edit1.text+'%';
IBQ_pesq.Open;
so que quando eu digito alguma coisa dentro da edit, ele me da o seguinte erro... Project Project.exe raised exception class EIBclienterror with message ' trying to store a string of lenght 3 into a field that can only contain 2'. Process stopped. Use Step or run to continue.
Sera que alguem poderia me ajudar a resolver esse erro ?? Desde ja agradeço
IBQ_pesq.SQL.add ('select * from transportadora t, regiao r');
IBQ_pesq.sql.Add('where t.cod_transportadora=r.cod_transportadora and');
IBQ_pesq.SQL.Add ('r.uf like :pnome');
IBQ_pesq.ParamByName('pnome').AsString:='%'+edit1.text+'%';
IBQ_pesq.Open;
so que quando eu digito alguma coisa dentro da edit, ele me da o seguinte erro... Project Project.exe raised exception class EIBclienterror with message ' trying to store a string of lenght 3 into a field that can only contain 2'. Process stopped. Use Step or run to continue.
Sera que alguem poderia me ajudar a resolver esse erro ?? Desde ja agradeço
Leandro Santos
Curtidas 0
Respostas
Emerson Nascimento
11/07/2010
a mensagem é clara: o campo UF comporta apenas 2 caracteres e você está informando mais que 2.
GOSTEI 0
Leandro Santos
11/07/2010
a mensagem é clara: o campo UF comporta apenas 2 caracteres e você está informando mais que 2.
GOSTEI 0
Leandro Santos
11/07/2010
e como faço para resolver esse problema..
Ja tentei retirar o like e os % do codigo, ai ele para de dar erros so que o banco não consegue encontrar as informações, como no seguinte exemplo
IBQ_pesq.SQL.add ('select * from transportadora t, regiao r');
IBQ_pesq.sql.Add('where t.cod_transportadora=r.cod_transportadora and');
IBQ_pesq.SQL.Add ('r.uf = :pnome');
IBQ_pesq.ParamByName('pnome').AsString:=edit1.text;
IBQ_pesq.Open;
IBQ_pesq.sql.Add('where t.cod_transportadora=r.cod_transportadora and');
IBQ_pesq.SQL.Add ('r.uf = :pnome');
IBQ_pesq.ParamByName('pnome').AsString:=edit1.text;
IBQ_pesq.Open;
GOSTEI 0
Wilson Junior
11/07/2010
No seu edit1, coloque a propriedade MaxLength como 2, ou seja, ele permitirá incluir apenas 2 caracteres.
Espero ter colaborado.
Espero ter colaborado.
GOSTEI 0
Carlos Mazzi
11/07/2010
Boa... deu certo?
GOSTEI 0
Leandro Santos
11/07/2010
mas assim, vou explicar mais detalhado pra ficar melhor
Na minha tela de pesquisa, eu coloquei tres radiobuttons, onde o primeiro eu pesquiso todos sem restrições, no segundo eu pesquiso por nome e no terceiro eu pesquiso por UF, mas estou usando uma edit só para todas as pesquisas.Então, se eu alterar a maxlenght da edit, quando eu for pesquisas pelo nome, eu so vou conseguir colocar somente 2 digitos nela.
Eu teria que dar um jeito te alterar isso em tempo de execução, mas ate agora não encontrei como fazer isso !!!
Agradeço muito pela colaboração de vcs...
GOSTEI 0
Marco Salles
11/07/2010
mas assim, vou explicar mais detalhado pra ficar melhor
Na minha tela de pesquisa, eu coloquei tres radiobuttons, onde o primeiro eu pesquiso todos sem restrições, no segundo eu pesquiso por nome e no terceiro eu pesquiso por UF, mas estou usando uma edit só para todas as pesquisas.Então, se eu alterar a maxlenght da edit, quando eu for pesquisas pelo nome, eu so vou conseguir colocar somente 2 digitos nela.
Eu teria que dar um jeito te alterar isso em tempo de execução, mas ate agora não encontrei como fazer isso !!!
Agradeço muito pela colaboração de vcs...
GOSTEI 0
Marco Salles
11/07/2010
mas assim, vou explicar mais detalhado pra ficar melhor
Na minha tela de pesquisa, eu coloquei tres radiobuttons, onde o primeiro eu pesquiso todos sem restrições, no segundo eu pesquiso por nome e no terceiro eu pesquiso por UF, mas estou usando uma edit só para todas as pesquisas.Então, se eu alterar a maxlenght da edit, quando eu for pesquisas pelo nome, eu so vou conseguir colocar somente 2 digitos nela.
Eu teria que dar um jeito te alterar isso em tempo de execução, mas ate agora não encontrei como fazer isso !!!
Agradeço muito pela colaboração de vcs...
GOSTEI 0
Emerson Nascimento
11/07/2010
mas assim, vou explicar mais detalhado pra ficar melhor
Na minha tela de pesquisa, eu coloquei tres radiobuttons, onde o primeiro eu pesquiso todos sem restrições, no segundo eu pesquiso por nome e no terceiro eu pesquiso por UF, mas estou usando uma edit só para todas as pesquisas.Então, se eu alterar a maxlenght da edit, quando eu for pesquisas pelo nome, eu so vou conseguir colocar somente 2 digitos nela.
Eu teria que dar um jeito te alterar isso em tempo de execução, mas ate agora não encontrei como fazer isso !!!
Agradeço muito pela colaboração de vcs...
não é só isso! é necessário alterar o campo que será pesquisado.
IBQ_pesq.Close;
IBQ_pesq.SQL.Clear;
IBQ_pesq.SQL.add ('select * from transportadora t, regiao r');
IBQ_pesq.sql.Add('where t.cod_transportadora=r.cod_transportadora');
if radiobutton2.checked then // radiobutton por nome
begin
IBQ_pesq.SQL.Add ('r.nome = :pnome');
IBQ_pesq.ParamByName('pnome').AsString:='%'+edit1.text+'%';
end;
if radiobutton3.checked then // radiobutton por UF
begin
IBQ_pesq.SQL.Add ('r.uf = :pnome');
IBQ_pesq.ParamByName('pnome').AsString:=edit1.text;
end;
IBQ_pesq.Open;
GOSTEI 0
Leandro Santos
11/07/2010
mas assim, vou explicar mais detalhado pra ficar melhor
Na minha tela de pesquisa, eu coloquei tres radiobuttons, onde o primeiro eu pesquiso todos sem restrições, no segundo eu pesquiso por nome e no terceiro eu pesquiso por UF, mas estou usando uma edit só para todas as pesquisas.Então, se eu alterar a maxlenght da edit, quando eu for pesquisas pelo nome, eu so vou conseguir colocar somente 2 digitos nela.
Eu teria que dar um jeito te alterar isso em tempo de execução, mas ate agora não encontrei como fazer isso !!!
Agradeço muito pela colaboração de vcs...
não é só isso! é necessário alterar o campo que será pesquisado.
IBQ_pesq.Close;
IBQ_pesq.SQL.Clear;
IBQ_pesq.SQL.add ('select * from transportadora t, regiao r');
IBQ_pesq.sql.Add('where t.cod_transportadora=r.cod_transportadora');
if radiobutton2.checked then // radiobutton por nome
begin
IBQ_pesq.SQL.Add ('r.nome = :pnome');
IBQ_pesq.ParamByName('pnome').AsString:='%'+edit1.text+'%';
end;
if radiobutton3.checked then // radiobutton por UF
begin
IBQ_pesq.SQL.Add ('r.uf = :pnome');
IBQ_pesq.ParamByName('pnome').AsString:=edit1.text;
end;
IBQ_pesq.Open;
GOSTEI 0
Leandro Santos
11/07/2010
if (RadioButton3.Checked=true) then
begin
IBQ_pesq.close;
IBQ_pesq.SQL.Clear;
IBQ_pesq.SQL.add ('select * from transportadora t, regiao r');
IBQ_pesq.sql.Add('where t.cod_transportadora=r.cod_transportadora and');
IBQ_pesq.SQL.Add ('r.uf like :pnome');
IBQ_pesq.ParamByName('pnome').AsString:='%'+edit1.text+'%';
IBQ_pesq.Open;
IBQ_pesq.Locate('nome',edit1.text,[loPartialKey,loCaseInsensitive]);
DBGrid1.Enabled:=true;
if IBQ_pesq.RecordCount=0 then
begin
application.Messagebox('Nenhum Registro Encontrado','Aviso',mb_ok+MB_ICONINFORMATION);
Edit1.clear;
DBGrid1.Enabled:=false;
end;
END;
GOSTEI 0
Emerson Nascimento
11/07/2010
isso quer dizer o que?
que a rotina que te foi passada não deu certo?
que a rotina que te foi passada não deu certo?
GOSTEI 0
Leandro Santos
11/07/2010
isso quer dizer o que?
que a rotina que te foi passada não deu certo?
Isso mesmo, pra fazer a pesquisa por nome, cidade, etc.., esse tipo de codigo rola normal, mas ta dando pau na pesquisa por UF, porque no campo UF so aceita 2 caracteres e eu não sei como fazer pra mudar isso em tempo de execução, acho que isso resolveria o problema, num sei. é uma hipótese..
que a rotina que te foi passada não deu certo?
GOSTEI 0
Emerson Nascimento
11/07/2010
IBQ_pesq.Close;
IBQ_pesq.SQL.Clear;
IBQ_pesq.SQL.add ('select * from transportadora t, regiao r');
IBQ_pesq.sql.Add('where t.cod_transportadora=r.cod_transportadora');
if radiobutton2.checked then // radiobutton por nome
begin
IBQ_pesq.SQL.Add ('r.nome = :pnome');
IBQ_pesq.ParamByName('pnome').AsString:='%'+edit1.text+'%';
end;
if radiobutton3.checked then // radiobutton por UF
begin
IBQ_pesq.SQL.Add ('r.uf = :pnome');
IBQ_pesq.ParamByName('pnome').AsString:=copy(edit1.text,1,2); <-- veja se resolve
end;
IBQ_pesq.Open;
GOSTEI 0
Leandro Santos
11/07/2010
IBQ_pesq.Close;
IBQ_pesq.SQL.Clear;
IBQ_pesq.SQL.add ('select * from transportadora t, regiao r');
IBQ_pesq.sql.Add('where t.cod_transportadora=r.cod_transportadora');
if radiobutton2.checked then // radiobutton por nome
begin
IBQ_pesq.SQL.Add ('r.nome = :pnome');
IBQ_pesq.ParamByName('pnome').AsString:='%'+edit1.text+'%';
end;
if radiobutton3.checked then // radiobutton por UF
begin
IBQ_pesq.SQL.Add ('r.uf = :pnome');
IBQ_pesq.ParamByName('pnome').AsString:=copy(edit1.text,1,2); <-- veja se resolve
end;
IBQ_pesq.Open;
GOSTEI 0
Emerson Nascimento
11/07/2010
publique seu código e dê exemplos de como você efetua a pesquisa.
GOSTEI 0
Pedro Saraiva.
11/07/2010
Programa com códigos fontes?
Ola
pessoal, você programador que quer um aplicativo exemplo para fins
comerciais, tenho uma dica, compre o WinPhar que vem com todos os
códigos fontes e faça um programa baseado nele, sim ele também vêm com
todos os componentes para instalar, voce além de ganhar um programa
complidao, ganha tb os seus códigos fontes e seus componentes. O
programa foi desenvolvido em Delphi 7 com banco de dados paradox, e
custa apenas 20,00 reais
deem uma olhadinha ai no produto
http://produto.mercadolivre.com.br/MLB-149256966-winphar-2008-sistema-para-farmacias-e-drogarias-_JM
e ente em contato pelo e-mail pedroluissaraiva@yahoo.com.br.!
deem uma olhadinha ai no produto
http://produto.mercadolivre.com.br/MLB-149256966-winphar-2008-sistema-para-farmacias-e-drogarias-_JM
e ente em contato pelo e-mail pedroluissaraiva@yahoo.com.br.!
GOSTEI 0