Fórum Problemas com ClientDataSet no BDS2006... #323748
19/06/2006
0
IBQuery -> DSP -> CDS
O DSP tá como AllowCommandText...
e no CDS:
cds.close; cds.commandtext := ´select * from cliente´; cds.open;
Pois bem, no BDS2006 dá [b:7cfddda6de]Empty SQL Statement[/b:7cfddda6de]
Pow, to passando o CommandText... o que pode ser? Bug do BDS2006? Alguem mais ta passando por isso? Já estou usando o Update 1 dele...
Desde já agradeço
[]s
Titanius
Curtir tópico
+ 0Posts
19/06/2006
Adriano Santos
cds.close; cds.commandtext := ´select * from cliente´; cds.open;
Tinanius use maiúsculas na query, não sei se é isso, mas já tive outros tipos de problemas relacionados a maiúsculas.
cds.close; cds.commandtext := ´SELECT * FROM CLIENTE´; cds.open;
Gostei + 0
20/06/2006
Titanius
Como eu também tive este ´probleminha´ todas minhas querys são maiusculas desde entao...
Muito doido.... será que é BUG?
Gostei + 0
20/06/2006
Paullsoftware
Vamos fazer um teste bem básico pq as vezes as configurações estão lá é bem simples, mais não há vemos então:
Adicione um SqlConnection, um SqlDataSet, um DataSetProvider e um ClientDataSet...
> Crie a conexão no SqlConnection para sua conexão
> Vincule o SqlDataSet ao SqlConnection e deixe a propriedade CommandText em branco
> Vincule o DataSetProvider ao SqlDataSet e altere a propriedade AllowCommandText para [b:01fefa1445]TRUE[/b:01fefa1445]
> vincule o ClientDataSet ao DataSetProvider através da ProviderName e coloque a propriedade CommandText do ClientDataSet como: ´select * from TABELA´ e mude Active para [b:01fefa1445]TRUE[/b:01fefa1445] veja se o erro ocorre!
se o erro ocorrer configure a propriedade CommandText do SqlDataSet igual a do ClientDataSet (´select * from TABELA´) e dê um Fech Params no ClientDataSet sei que é somente para carregar os paramentros né, mais vai lá saber 8) já resolveu alguns problemas meus...
espero ter ajudado :wink:
Gostei + 0
20/06/2006
Titanius
o que resolveu foi passar a sql pro IBQuery tbm.. doidera.. nunca fiz isso e sempre funcionou...
[]s
Gostei + 0
20/06/2006
Paullsoftware
Realmente é estranho, eu uso BDS2006 e funciona perfeitamente...
Gostei + 0
20/06/2006
Titanius
IBX + DSP + CDS
Com
DBX + DSP + CDS, me parece nao ter tido problema...
alguem confirma?
Como no meu caso é o prim eiro.. tá aih o erro!!
[]s
Gostei + 0
20/06/2006
Paullsoftware
Gostei + 0
20/06/2006
Adriano Santos
procedure TForm1.Button1Click(Sender: TObject); begin IBDatabase1.Connected := True; IBQuery1.SQL.Clear; IBQuery1.SQL.Add(´SELECT * FROM CLIENTES´); ClientDataSet1.Open; end;
Então não irá conseguir mesmo abrir desta maneira. Este erro ocorre, pois não há comando SQL no IBQuery, mesmo marcando o DSP como AllowCommandText. Não sou expert nisso, talvez outros colegas possam responder com mais exatidão.
Gostei + 0
21/06/2006
Titanius
[]s
Gostei + 0
21/06/2006
Adriano Santos
[b:321da3f3ee]titanius[/b:321da3f3ee] fiz um teste no Delphi 6.0 pq não tenho 7.0 aqui, acontece como vc disse, ou seja, funciona. Véio, acho que vai ter que mudar a programação. Puts, num sei. :wink:
Gostei + 0
21/06/2006
Miuuudo
eu tb não posso te ajudar
mas vim deixar um comentário...
eu deixei de usar o commandtext do ClientDataSet e usei diretamente o do SQLQuery pois, em alguns selects com UNION se não tivesse um espaço em branco antes do select ele dava um erro de sintaxe que não existia. Quando eu colocava um espaço em branco no inicio funcionava.
Jogando diretamente para o SQLQuery e funciona tudo beleza.
Estou em fase de aprendizado ainda mas é sempre bom falar alguma coisa.
um abraço
Gostei + 0
21/06/2006
Titanius
Obrigado a todos
[]s
Gostei + 0
21/06/2006
Adriano Santos
Eu acredito que no Delphi 2005 e 2006 isso tenha se tornado mais evidente talvez por uma atualização na MIDAS. Sei lá, to chutando.
Gostei + 0
13/09/2007
Carlos_braz
Também estou tendo esse problema ao tentar passar algumas aplicações para D2006.
Preciso migrar algumas aplicações de Delphi 7 para 2006 ou 2007 e algumas coisas não estão funcionando como no deveria.
No D7 funciona beleza e no 2006 não. Aparentemente coisa simples...O codigo abaixo deveria funcionar em ambos:
Eu tento passar os parametros da pesquisa nessa sequencia.
-Fecho o ClientDataSet
-Passo os parametros
-E ativo
Tem esse procedimento em vários lugares, mais ou menos dessa forma. Como tá logo abaixo funciona só no Delphi7 e 2006 não.
Para funcionar em ambos experimentei mudar a seqüência:
-Passo os parametros
-Fecho o ClientDataSet
-E ativo
Como mostro logo abaixo:
Funciona beleza assim, só que exige uma revisão de todo os códigos. Alguem aí tem uma idéia de como manipular o componente sem que se exija essa revisão?
Gostei + 0
13/09/2007
Carlos_braz
Deve ser:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)