Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
repleis Profissional

Registrado: Segunda-Feira, 5 de Abril de 2010 Mensagens: 582
|
Enviada: Seg Ago 29, 2011 3:27 pm Assunto: Firebird não Realiza consulta |
|
|
Olá galera resolvi mudar de banco de dados de Mdb para Firebird antigamente usava esse código e filtrava legal alguém pode me dizero que to fazendo de errado ou se há algo de errado na minha conexão ?
Código:
begin
DM.Q_CadAlunos.active := false;
DM.Q_CadAlunos.sql.clear;
DM.Q_CadAlunos.sql.add('select * from cadalunos where Transporte= "' + DBLookupComboBox1.Text+ '"'+'and tipoaluno= ''Ativo''');
DM.Q_CadAlunos.sql.add('ORDER BY nome ASC');
DM.Q_CadAlunos.active:= true;
if (DM.Q_CadAlunos.recordcount)= 0 then
begin
showmessage ( 'Nenhum Cadastro Encontrado!');
messageBox(handle,'Verifique o Motorista Selecionado!','ATENÇÃO!',MB_ICONERROR+mb_OK);
end
else
begin
if (DM.Q_CadAlunos.recordcount)>= 1 then
Frm_ResultadoTransporte.Showmodal;
Close;
end;
end; |
|
Voltar ao Topo |
|
 |
carbox Colaborador

Registrado: Quarta-Feira, 3 de Março de 2010 Mensagens: 1471
|
Enviada: Seg Ago 29, 2011 3:33 pm Assunto: Re: Firebird não Realiza consulta |
|
|
Seu problema está na passagem de parametros...
repleis escreveu: | Olá galera resolvi mudar de banco de dados de Mdb para Firebird antigamente usava esse código e filtrava legal alguém pode me dizero que to fazendo de errado ou se há algo de errado na minha conexão ?
Código:
begin
DM.Q_CadAlunos.active := false;
DM.Q_CadAlunos.sql.clear;
DM.Q_CadAlunos.sql.add('select * from cadalunos where Transporte= "' + DBLookupComboBox1.Text+ '"'+'and tipoaluno= ''Ativo''');
DM.Q_CadAlunos.sql.add('ORDER BY nome ASC');
DM.Q_CadAlunos.active:= true;
if (DM.Q_CadAlunos.recordcount)= 0 then
begin
showmessage ( 'Nenhum Cadastro Encontrado!');
messageBox(handle,'Verifique o Motorista Selecionado!','ATENÇÃO!',MB_ICONERROR+mb_OK);
end
else
begin
if (DM.Q_CadAlunos.recordcount)>= 1 then
Frm_ResultadoTransporte.Showmodal;
Close;
end;
end; |
|
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Ago 29, 2011 3:36 pm Assunto: |
|
|
Experimente deixar o valor de DBLookupComboBox1.Text entre aspas simples e não aspas duplas, ou utilize uma query com parâmetros em vez de concatenar a instrução SQL.
Espero que ajude.
_________________
Assinatura: Imobiliarias em Guarulhos |
|
Voltar ao Topo |
|
 |
johnny-walker Moderador


Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Seg Ago 29, 2011 7:28 pm Assunto: |
|
|
amigo já expeirmentou parametrizar isto:
QryTabela.SQL.Add(' select * from cadalunos where (Transporte = :combo) and (tipoaluno= :Ativo)' );
QryTabela.params[0].astring := combobox1.items[combobox1.ItemIndex];
QryTabela.params[1].astring := 'Ativo';
QryTabela.Open;
Desta maneira simplifica as coisas.
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
Voltar ao Topo |
|
 |
repleis Profissional

Registrado: Segunda-Feira, 5 de Abril de 2010 Mensagens: 582
|
Enviada: Ter Ago 30, 2011 3:18 pm Assunto: |
|
|
johnny-walker escreveu: | amigo já expeirmentou parametrizar isto:
QryTabela.SQL.Add(' select * from cadalunos where (Transporte = :combo) and (tipoaluno= :Ativo)' );
QryTabela.params[0].astring := combobox1.items[combobox1.ItemIndex];
QryTabela.params[1].astring := 'Ativo';
QryTabela.Open;
Desta maneira simplifica as coisas.
bye |
Tentei dessa forma ai e não deu certo, o engraçado é que sempre fazia da maneira que citei e dava certo com o banco Ms Access Mdb.
Se alguem soube de alguma coisa que pode me ajudar por favor me ajude... |
|
Voltar ao Topo |
|
 |
repleis Profissional

Registrado: Segunda-Feira, 5 de Abril de 2010 Mensagens: 582
|
Enviada: Ter Ago 30, 2011 3:25 pm Assunto: |
|
|
imex escreveu: | Experimente deixar o valor de DBLookupComboBox1.Text entre aspas simples e não aspas duplas, ou utilize uma query com parâmetros em vez de concatenar a instrução SQL.
Espero que ajude.
_________________
Assinatura: Imobiliarias em Guarulhos |
Tentei tirar as aspas mais não deu Certo poderia me passar um exemplo completo com parametro é que sou iniciante... Desde já obrigado... |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Ago 30, 2011 4:36 pm Assunto: |
|
|
repleis escreveu: | Tentei tirar as aspas mais não deu Certo poderia me passar um exemplo completo com parametro é que sou iniciante... Desde já obrigado... |
O que sugeri foi substituir as aspas duplas (") por aspas simples ('), mas de qualquer forma concordo com o johnny-walker que fica melhor utilizando parâmetros, inclusive o código que ele postou está com parâmetros. Vou tentar adaptar o código que você postou no início:
Código: | DM.Q_CadAlunos.active := false;
DM.Q_CadAlunos.sql.clear;
DM.Q_CadAlunos.sql.add('select * from cadalunos');
DM.Q_CadAlunos.sql.add('where Transporte = :Transporte');
DM.Q_CadAlunos.sql.add('and tipoaluno = ' + QuotedStr('Ativo'));
DM.Q_CadAlunos.sql.add('ORDER BY nome ASC');
DM.Q_CadAlunos.ParamByName('Transporte').Value := DBLookupComboBox1.Text;
DM.Q_CadAlunos.active:= true; |
Espero que ajude. |
|
Voltar ao Topo |
|
 |
repleis Profissional

Registrado: Segunda-Feira, 5 de Abril de 2010 Mensagens: 582
|
Enviada: Ter Ago 30, 2011 4:46 pm Assunto: |
|
|
imex escreveu: | repleis escreveu: | Tentei tirar as aspas mais não deu Certo poderia me passar um exemplo completo com parametro é que sou iniciante... Desde já obrigado... |
O que sugeri foi substituir as aspas duplas (") por aspas simples ('), mas de qualquer forma concordo com o johnny-walker que fica melhor utilizando parâmetros, inclusive o código que ele postou está com parâmetros. Vou tentar adaptar o código que você postou no início:
Código: | DM.Q_CadAlunos.active := false;
DM.Q_CadAlunos.sql.clear;
DM.Q_CadAlunos.sql.add('select * from cadalunos');
DM.Q_CadAlunos.sql.add('where Transporte = :Transporte');
DM.Q_CadAlunos.sql.add('and tipoaluno = ' + QuotedStr('Ativo'));
DM.Q_CadAlunos.sql.add('ORDER BY nome ASC');
DM.Q_CadAlunos.ParamByName('Transporte').Value := DBLookupComboBox1.Text;
DM.Q_CadAlunos.active:= true; |
Espero que ajude. |
Opaaa, Funcionou Perfeitamente!!!
Muito Obrigado meu amigo. |
|
Voltar ao Topo |
|
 |
|