Fórum Problemas ao Mudar o CommandText do CDS, 3 camadas #282018

18/05/2005

0

Olá, estou usando um sistema em 3 camadas, e no servidor no meu DSP, eu cooquei o AlowCommandText := True, certo, porem quando vou via codigo e altero meu CommandText ele nao funciona, fica sempre o SQL anterior.... o que pode ser?


[]s


Titanius

Titanius

Responder

Posts

18/05/2005

Kotho

Será que você não esqueceu de compilar o servidor??? Porque esse esquema funciona perfeitamente....

Que tipo de alteração você está fazendo no CommandText??? você precisa colocar o SQL inteiro...


Responder

Gostei + 0

18/05/2005

Titanius

Olá,

Já recompilei o servidor e tudo, o que estou fazendo é o seguinte:

tenho de inicio:
select * from produto[/code

aih eu troco na media que o cliente quer:

[code]
select * from produto
where descricao like ´cce¬´

ou

select * from produto
where descricao like ´¬cce¬´


e assim por diante, entao.. nao vejo problemas em usar isso :(

[]s


Responder

Gostei + 0

18/05/2005

Kotho

Que estranho... eu nunca tive problemas com isso...

Não estou afirmando que seja isso... mas não custa tentar...

Eu ouvi falar que o DBXpress tem problemas com nomes de objetos em minúsculo... eu, para evitar qualquer problema, só utilizo maiúsculas...

tenta mudar o sql para MAIÚSCULA...


Responder

Gostei + 0

18/05/2005

Titanius

hum, vou testar isso...


Responder

Gostei + 0

18/05/2005

Titanius

amigo nao funcionou,

eh o seguinte parece que ele nao limpa o CDS, pois a ultima consulta sempre fica lah, independente qual consulta seja...
estranho mesmo..


[]s


Responder

Gostei + 0

18/05/2005

Kotho

Qual o componente de conexão você está usando?


Responder

Gostei + 0

19/05/2005

Kotho

Cara, tava olhando outro post teu... para funcionar o commandtext, você tem que usar SQLQuery... Pelo jeito, você tá usando SQLTable


Responder

Gostei + 0

19/05/2005

Titanius

Amigo, realmente estava usando SQLDataSet, porem mudei pro SQLQuery mesmo...

Estou usando o DBX... bem, consegui fazer a ligação, realmente apareceu o campo lá bonitinho :D :D :D, to feliz pacas... porem.. (tudo na vida tem um porem)

Tenho que trazer apenas um registro, por isso acrescentei no Pedido a clausula WHERE,

where pedido = :pedido


certo, criou o parametro, mas ele nao vai pro CDS no cliente... ou fiz algo de errado? Como chamo apenas o registro que eu quero, ao invez de todos?

Se eu trouxer meu registro, os itens automaticamente serao trazidos tbm?


Desde ja agradeco

[]s


Responder

Gostei + 0

19/05/2005

Mmoreira

Titanius

Bom tudo o que vc fez parece estar certo, era pra estar funcionando ...
Agora volto a te perguntar o que o Kotho já te perguntou antes: Voce esta enviando o código sql inteiro ??? Ou esta enviando apenas o final: where .......


Tem que mandar tudo depois dar um close no ClientDataSet e depois um open


Responder

Gostei + 0

19/05/2005

Titanius

mMOREIRA,

Aproveitei o que o amigo Kotho disse, no outro topico, e agora nao estou mandando mais o CommandText, fiz tudo lah no proprio servidor:

Select * from pedidos
where pedido = :pedido

ou seja, eu deveria passar este parametro no client, e ele me traria somente um registro, ou eu posso passar o CommandText normalmente, que o vinculo que eu fiz permanecerá?


So que este parametro nao esta aparecendo no Params do meu CDS. :(

[]s


Responder

Gostei + 0

19/05/2005

Mmoreira

Titanius

vc poderia fazer das 2 maneiras como vc mensionou na sua ultima mensagem ....

agora se vc colocou no servidor:

Select * from pedidos where pedido = :pedido 


o parametro só vai aparecer no cliente depois que vc dar um fetch Params no ClientDataSet da aplicação cliente .... tenta fazer isso e diz se o parametro apareceu ...


Responder

Gostei + 0

19/05/2005

Titanius

FUNCIONOU!!!!!

Mas... (coitadinho de voces, deve estar cheio dos meus mais :D );

quando eu abro o meu ItensPedido, fala [b:4facafcf46]Cannot perform this operation on a close dataset[/b:4facafcf46]

Pois bem, este erro é porque lah no meu servidor o SQLQuery referente ao Pedido, esta fechado, quando eu lá no servidor ativo ele, e ativo o ItensPedido, ele funciona, pois bem, eis minha pergunta, meu CDS não abre meu SQLQuery não? pois sem ele abrir, a relacao master-detail que eu fiz nao funciona, ou estou errado?

Obrigado + uma vez.

[]s


Responder

Gostei + 0

19/05/2005

Kotho

Para o parâmetro ir do Servidor para o Cliente... clique com o botão direito do mouse sobre o ClientDataSet, e selecione Fetch Params...


Responder

Gostei + 0

19/05/2005

Titanius

funcionou, eskeci de dar p fetch params no itenspedido, e depois marcar la o DataSetField.... agora está trazendo tudo..

Muitissimo obrigado a todos... :D

So uma ultima perguntinha, ao dar um insert no registro itenspedido, ele insere automaticamente o codigo do pedido, ou tenho q fazer na mao?

[]s


Responder

Gostei + 0

19/05/2005

Mmoreira

Como vc fez o relacionamento ???
A propósito desta consulta é porque vc esta querendo emitir um relatorio ?? Será que não dá para usar apenas um SqlDs ???


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar