Fórum Duvidas com DBExpress #356453
02/04/2008
0
Mas esta dando o erro: EDatabaseError with message ´Token unknown - line 1,char 16 select´.
clientdataset1.Close;
clientdataset1.CommandText :=´select * from cliente´;
clientdataset1.CommandText := clientdataset1.CommandText+´WHERE nome LIKE ´+#39+´¬´+edit2.Text+´¬´+39;
clientdataset1.Open;
procurei varios exemplos na net de como fazer pesquisa sql com o dbexpress atravez do cds mas só encontrei pesquisa sem sql.
alguem pode me ajudar, ou se souber algum lugar q tem exemplo para esta pesquisa.
valeu!!
Japapdb
Curtir tópico
+ 0Post mais votado
03/04/2008
Verifiquei o nome da tabela tbm e coloquei do jeito q foi criado.
Da uma olhada e ve se estou conectando tudo certo ak. pq to desistindo de usar banco de dados em firebird com dbexpress não estou conseguindo fazer a consulta de jeito nenhum, se ate o final de semana eu num conseguir fazer funcionar isso ak. vou ter q apelar pro paradox com bde, e encher de gambiarra mesmo kkkk pq a partir do fds vai começar a contar os dias para a entrega do sistema. mas tenho medo do banco de dados em paradox não aguentar, eh um cadastro para controle de estoque de loda de modas, eo banco de dados vai ter trocentos campos para cadastro completo de tudo da loja, vai rodar em 2 micros.
sqldataset:
commandtext esta ligado a ´cliente´
commandtype esta na opção ´cttable´
Sqlconnection ligao ao ´SQLconnection´
clientdataset
provider name liguei no datasetprovider
datasetprovider
dataset ´liguei no SQLDataset´
e habilitei o ´poAllowCommandtext´
datasource
Dataset ligado ao Clientdataset
Japapdb
Gostei + 1
Mais Posts
02/04/2008
Fabiano Góes
var sSql: string; begin sSql := ´select * from cliente WHERE Upper(nome) LIKE ´ + QuotedStr(´¬´ + UpperCase(edit2.Text) + ´¬´); clientdataset1.Close; clientdataset1.CommandText := sSql; clientdataset1.Open; end;
obs: lembrando que pra poder fazer a pesquisa com o ClientDataSet direto, o DataSetProvider deve estar configurado a propriedade: Options.poAllowCommandText = True.
Gostei + 0
03/04/2008
Japapdb
Gostei + 0
03/04/2008
Brunolspp
No meu link de downloads gratuitos (http://cc.codegear.com/author/795118) tem vários exemplos e uma apostila básica de uso do dbexpress com delphi 7 e firebird que pode te ajudar nisso. É passo a passo e bem básica, mas pode srvir como base e para entendimento de algumas dúvidas.
Em tempo, para funcionar via clientdataset, é necessário que o allowcommand no datasetprovider esteja habilitado.
Mas esta não é a melhor prática.
Gostei + 0
03/04/2008
Macario
Esta ocorrendo o erro pois a String montada fica:
select * from [b:98c77512c9]clienteWHERE[/b:98c77512c9] nome LIKE ´¬texto¬´
8)
Gostei + 0
03/04/2008
Japapdb
Gostei + 0
03/04/2008
Roger1976
´select * from CLIENTE where NOME like ´ + quotedstr(´¬´ + edit1.text + ´¬´).
Como vc criou o nome da tabela no banco?
Gostei + 0
03/04/2008
Macario
tente assim
Se não funcionar, tente usar a instrução no SQLDataSet.
Gostei + 0
03/04/2008
Builder
select * from clienteWHERE nome LIKE ´¬texto¬´
o clienteWHERE esta sem espaço, deveria ser cliente WHERE para separar o nome da tabela do comando WHERE.
Ficam assim suas linhas de comando:
clientdataset1.Close;
clientdataset1.CommandText :=´select * from cliente´;
clientdataset1.CommandText := clientdataset1.CommandText+´ WHERE nome LIKE ´+QuotedStr(´¬´+edit2.Text+´¬)´;
clientdataset1.Open;
Se mesmo assim não funcionar, abra o banco de dados através de uma ferramenta SQL de consulta de dados (Flamerobin, IBConsole, pgAdmin, etc. conforme o banco de dados) e teste a linha de comando:
select * from cliente WHERE nome LIKE ´¬???¬´
onde ??? é o que deseja procurar, por exemplo:
select * from cliente WHERE nome LIKE ´¬JOA¬´
O teste acima vai validar coisas como nome da tabela, campo, ...
Você também esta usando o nome da tabela em minúsculo, tenha cuidado com a padronização dos nomes das tabelas, pois nas edições isto pode ser um problema, já que o dbexpress (conforme o driver+bco de dados utilizado) poderá não reconhecer a tabela (table unknow), que irá enxergar cliente e CLIENTE como tabelas diferentes.
Gostei + 0
03/04/2008
Fabiano Góes
tai seu problema cara,
no sqldataset:
[b:c002775eb2]commandtype[/b:c002775eb2] deve ser ´ctQuery´
e
[b:c002775eb2]commandtext[/b:c002775eb2] deve estar limpo
obs: isso se você for mandar os camandos sql pelo ClientDataSet,
mais como o BrunoLSPP falou não é uma boa pratica o certo seria usar o SqlDataSet pra escrever o sql tipo:
SqlDataSet.Close; SqlDataSet.CommandText := seuSql; ClientDataSet.Open;
mais o importante é que se você vai fazer pesquisas o SqlDataSet deve estar com [b:c002775eb2]commandtype[/b:c002775eb2] deve ser ´ctQuery´ seja escrevendo o sql nele mesmo ou no ClientDataSet.
Gostei + 0
04/04/2008
Japapdb
o problema era esse mesmo das opções do sqldataset em command text e command type fiz da maneira q vc falou e funcionou tudo... valeu mesmo...
Agradeço a todos vcs q me ajudaram neste problema. muito agradecido.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)