String SQL Incorreta dando problema

Delphi

17/01/2005

Galera

Quero agradecer os amigos Thomaz e Isabel mas....
Muitos me ajudaram mas infelizmente não deu certo
O que poderia estar dando de errado nesta instrução do SQL.

Dm.cds_Servico.Close;
Dm.SQLDataSet1.Close;
Dm.SQLDataSet1.CommandText := ´select * from OS where Upper(controle) <> ´ + QuotedStr(´B´);
Dm.SQLDataSet1.Open;
Dm.cds_Servico.Open;

O que eu quero é bem simples, quero mostrar todos os registros da tabela OS cujo campo controle seja diferente de B.
Resumindo o campo controle é para controlar os registros que ja foram dado baixa e não poderão ser mais mostrados na grid.
Parece fácil, mas infelismente, algumas instruções postadas não deram certo. ele mostra todos os registros sem filtrar.
Gostaria de ajuda.

O campo Controle é Char(1)

Obrigado a todos.
Objetiva Creator


Objetivacreator

Objetivacreator

Curtidas 0

Respostas

Thomaz_prg

Thomaz_prg

17/01/2005

Colega, a instrução SQL está correta. Verifique se o DataSetProvider ligado ao cds_servico, esta em sua propriedade dataset, indicando SQLDataSet1.

Outra coisa, qual banco de dados está usando, e no caso de ser Firebird, qual dialeto?


GOSTEI 0
Objetivacreator

Objetivacreator

17/01/2005

Caro Thomaz

Obrigado pela ajuda.

Estou usando Firebird com o dialeto 3.

Pelo que percebi, usando SqlDataSet, DataSetProvider, ClienteDataSet e DataSource, esta sendo um pouco complicado entender todos os recursos que eles tem a oferecer, Creio que estou fazendo o básico do básico, pois estudo pequenos exemplos baixados da net outros em livros e quando me deparo com pequenos problemas não sei resolver.
Espero conseguir superar estas limitações, pois usava muito o BDE e não tinha tanto problema como estou tendo agora.
Mas sou persistente e vou conseguir entender realmente todos os recursos oferecidos.

Bom,
Em vez de utilizar SQlDataSet1 e usar o SqlDataSet do conjunto
Exemplo de uso.

SqlDataSet propriedade Name : dst_Servico
DataSetProvider propriedade Name : dsp_Servico
ClienteDataSet Propriedade Name : cds_Servico
DataSource Propriedade Name : ds_Servico

Pelo que observei conforme a sua explicação, a propriedade DataSet esta apontando para dst_Servico e não SqlDataSet1.
Se eu mudar provavelmente vai dar certo, mas isto poderia influênciar no cadastro, alteração de registro, pois estou usando comandos insert e update para tais operações que estão dando certo sem fazer a alteração do dataset para sqlDataSet1.

Seu eu utilizar o dst_Servico em vez do SQLDataSet1, poderia dar certo ?, teria que mudar alguma propriedade em algum componente de acesso.

Obrigado mais uma vez pela ajuda.
Valnei.


GOSTEI 0
Objetivacreator

Objetivacreator

17/01/2005

Caro Thomaz

Obrigado pela ajuda.

Estou usando Firebird com o dialeto 3.

Pelo que percebi, usando SqlDataSet, DataSetProvider, ClienteDataSet e DataSource, esta sendo um pouco complicado entender todos os recursos que eles tem a oferecer, Creio que estou fazendo o básico do básico, pois estudo pequenos exemplos baixados da net outros em livros e quando me deparo com pequenos problemas não sei resolver.
Espero conseguir superar estas limitações, pois usava muito o BDE e não tinha tanto problema como estou tendo agora.
Mas sou persistente e vou conseguir entender realmente todos os recursos oferecidos.

Bom,
Em vez de utilizar SQlDataSet1 e usar o SqlDataSet do conjunto
Exemplo de uso.

SqlDataSet propriedade Name : dst_Servico
DataSetProvider propriedade Name : dsp_Servico
ClienteDataSet Propriedade Name : cds_Servico
DataSource Propriedade Name : ds_Servico

Pelo que observei conforme a sua explicação, a propriedade DataSet esta apontando para dst_Servico e não SqlDataSet1.
Se eu mudar provavelmente vai dar certo, mas isto poderia influênciar no cadastro, alteração de registro, pois estou usando comandos insert e update para tais operações que estão dando certo sem fazer a alteração do dataset para sqlDataSet1.

Seu eu utilizar o dst_Servico em vez do SQLDataSet1, poderia dar certo ?, teria que mudar alguma propriedade em algum componente de acesso.

Obrigado mais uma vez pela ajuda.
Valnei.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

17/01/2005

colega, manipule o ClientDataset ao invés do SQLDataset.

Dm.cds_Servico.Close;
Dm.cds_Servico.CommandText := ´select * from OS where Upper(controle) ´ + QuotedStr(´B´);
Dm.cds_Servico.Open;

o seu campo controle tem tamanho 1?


GOSTEI 0
POSTAR