> > Bom dia. Se o sql está no ClientDataSet, certifique-se de que a opção > AllowCommandText do seu PROVIDER esteja TRUE. Isso faz com que o > SQLDataSet ou SQLQuery que está na outra ponta aceite os comandos vindos > do clientDataset.
-> é assim que eu trabalho. eu tb tive que colocar o pouserqoutchar = false no datasetprovider senao ele dava sempre o erro que falei. Outra coisa é com o jeito de fazer os selects e joins. > Eu faço assim: > > SELECT v.*, c.Nome, c.Bairro, c.Numero, c.Cidade, c.Telefone, > c.Endereco, > c.Uf, c.Cep, r.Nome AS NomeVendedor > FROM venda_pedido v LEFT JOIN cliente c ON c.Codigo = v.Codigo > LEFT JOIN vendedor r ON r.Codigo = v.Vendedor > WHERE v.Empresa = :emp > AND v.NumPedido = :pedido -> sequindo sua ideia mudei meu slq para: select venda_pedido.*, cliente.nome,cliente.bairro, cliente.endereco, cliente.cep, cliente.cidade, cliente.numero, cliente.uf, venda_vendedor.nome vendnome from venda_pedido LEFT JOIN venda_vendedor on venda_vendedor.codigo = venda_pedido.vendedor LEFT join cliente on cliente.codigo = venda_pedido.cliente where venda_pedido.empresa = :emp Sinceramente eu não utilizo a prática de passar comandos pelo > ClientDataSet. Eu faco sempre: > > SQLQuery + Provider + ClientDataSet + DataSource > > Todos os comandos eu passo direto para a SQLQuery e o ClientDataSet só > serve pra dar Open/Post/Apply/Insert/Edit e Delete. -> eu preciso passar os comandos direto pro clientdataset. pois o sistema ja foi todo padronizado dessa forma e nao tem como eu mudar agora. mas num futuro proximo testarei dessa forma pra ver no que da. Mas cada um trabalha > como quer né. Outra questão é sobre o UPDATEMODE, do provider. Nesse seu > caso ai ele tem que ser KeyOnly. Daí, no SQLQuery eu adiciono todos os > campos. No Tfields da SQLQuery, para os campos que não sofreram nenhuma > modificação (caso os do cliente e o vendedor) eu desabilito todos os > providers flag. Para os campos chave (empresa e teoricamente numero do > pedido, que você não mencionou) eu coloco pfInUpdate, pfInWhere e > pfInKey como true. Por fim, para o restante dos campos somente > pfInUpdate. -> fiz do jeito que vc falou. e realmente deu certo. eu gravei o registro sem da erro. mas se ess e registro for editado e depois receber um post ele da o erro que eu falei. so que so dentro do delphi, se eu estiver rodando sem debuger ele nem apresenta a mensagem de erro mas tb nao grava as auteracoes no campo. Tem alguns exemplos na net como o sistema DATACAR do Guinther que tá no > quality central da borland, é só se cadastrar e baixar. Tem também > apostilas e vários outros materiais do nosso companheiro Bruno. > > www.micrologos.com.br/mc_clienteservidor.zip -> valeu pelas dicas. E por aí vai. Aguardamos um retorno seu. > > Saudações. -> obrigado. vc me ajudou em muito. realmente estou grato. --- > []'s > > Alexandre > > Frase da semana: "Não basta ter grandes qualidades, cumpre saber > usá-las." (La Rochefoucauld) > -----Mensagem original----- > De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] > Em nome de Rafael Jorge > Enviada em: sábado, 4 de fevereiro de 2006 13:51 > Para: delphi-br > Assunto: [delphi-br] [URGENTE] Clientdataset e delphi 2006 > > eu utilizava IBO é ao migrar para dbexpress to apanhando feio com erros > estranhos. um deles e o que esta impedindo de dar continuidade ao meu > trabalho e esse, ao dar um post num clientdataset esta tudo certo ai dou > um applyupdates e acontece isso -> raised exception class edatabaseerror > with message 'Database server error: > column unknown <nome da coluna da tabela>' > se eu mando continuar ai vem essa proxima mensagem -> raised exception > class edatabaseerror with message 'unables to find record. > no key specified' > > so que a tabela tem chave primaria e tudo. ao abrir ela ela abre. da > post e tudo so na hora do applyupdates ele da pau. > o sql que ta no clientdataset é : > select venda_pedido.*, cliente.nome, cliente.bairro, cliente.numero, > cliente.cidade, cliente.telefone, cliente.endereco, > cliente.uf,cliente.cep, venda_vendedor.nome vendnome from cliente, > venda_pedido, venda_vendedor where cliente.codigo = venda_pedido.cliente > and venda_vendedor.codigo = venda_pedido.vendedor and > venda_pedido.empresa = :emp > > realmente nao sei mais o que fazer. > COLOQUEI o providerflags o pfinupdate = false nos campos que vem de > outra tabela, mas deu em nada. sempre o mesmo erro. nao sei mais o que > fazer. meu trabalho esta parado e nao arrumo solucao pra isso. > t+ > > -- > Rafael jorge alves > www.itrecife.com -> para verem meus artigos e trabalhos > t+ > > > [As partes desta mensagem que não continham texto foram removidas] > > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > Links do Yahoo! Grupos > > > > > > > > > > __________ NOD32 1.1392 (20060202) Information __________ > > This message was checked by NOD32 antivirus system. > http://www.eset.com > > > > > -- > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> > > > > Links do Yahoo! Grupos > > > > > > > > > -- Rafael jorge alves www.itrecife.com -> para verem meus artigos e trabalhos t+ [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html