Problemas usando uma consulta no interbase
8) Aí galera,estou com o seguinte problema:
Tenho uma tabela funcionario feita no interbase na qual não consigo fazer com que o usuario digite uma cadeia de caracteres ou apenas uma letra e mostre o resultado no dbgrid atraves de um IBQuery,aparece uma exceção de sql dinamic erro
Tá aí o codigo:
***************
consulta.sql.close;
consulta.sql.clear;
consulta.sql.add(´select * from funcionario where nome like ´ ´+nome.text+´ ´ ¬´);
consulta.sql.add(´order by nome´);
consulta.sql.open;
*******************
se vc percebeu usei aspa dupla para a consulta,é justamente aí que dá o problema porém quando uso o componente Query normal a consulta funciona normal,porém fica pedindo a senha de usuario do banco interbase,coisa que eu não quero que mostre
Agradeço as respostas
Tenho uma tabela funcionario feita no interbase na qual não consigo fazer com que o usuario digite uma cadeia de caracteres ou apenas uma letra e mostre o resultado no dbgrid atraves de um IBQuery,aparece uma exceção de sql dinamic erro
Tá aí o codigo:
***************
consulta.sql.close;
consulta.sql.clear;
consulta.sql.add(´select * from funcionario where nome like ´ ´+nome.text+´ ´ ¬´);
consulta.sql.add(´order by nome´);
consulta.sql.open;
*******************
se vc percebeu usei aspa dupla para a consulta,é justamente aí que dá o problema porém quando uso o componente Query normal a consulta funciona normal,porém fica pedindo a senha de usuario do banco interbase,coisa que eu não quero que mostre
Agradeço as respostas
Delphox
Curtidas 0
Respostas
Crpavao
30/08/2003
Amigo:
Qto às aspas use a char #39 para simbolizar a aspa.
Exemplo:
Texto := ´Colocar a aspa ´ + 39 + ´pavao´ + 39
Resultado:
Colocar a aspa ´pavao´
Qto a tá pedindo senha, no database coloque em false a opção login
Qto às aspas use a char #39 para simbolizar a aspa.
Exemplo:
Texto := ´Colocar a aspa ´ + 39 + ´pavao´ + 39
Resultado:
Colocar a aspa ´pavao´
Qto a tá pedindo senha, no database coloque em false a opção login
GOSTEI 0
Afarias
30/08/2003
Ou simplesmente (para seu caso específico) faça:
deixe o SQL da query *fixo* com o código ::
select * from funcionario
where nome starting with :nome
e então mude seu código para ::
with Consulta do
try
if Transaction.InTransaction then
Transaction.Commit;
Params[0].AsString := Nome.Text;
Open;
except
// tratamento de erro (ou simplesmente mostre a mensagem)
end;
T+
deixe o SQL da query *fixo* com o código ::
select * from funcionario
where nome starting with :nome
e então mude seu código para ::
with Consulta do
try
if Transaction.InTransaction then
Transaction.Commit;
Params[0].AsString := Nome.Text;
Open;
except
// tratamento de erro (ou simplesmente mostre a mensagem)
end;
T+
GOSTEI 0
Chambioso
30/08/2003
simplesmente ocorreu um erro pequeno no seu código.
melhor seria assim:
(where Nome like ´´+Edit1.Text+´¬´´)
perceba a diferença.
melhor seria assim:
(where Nome like ´´+Edit1.Text+´¬´´)
perceba a diferença.
GOSTEI 0