resolvi! cara fiz o sequinte: adicionei os field's no sqldataset e no clientdataset tb! ai desabilitei os pfInUpdate, pfInWhere dos campos vindos dos joins no sqldataset e fiz a merma coisa no clientdataset, ai coloquei o updatemode = upwhereall e deixei o resto como padrao e resolveu tudo. valeu pela dica vc realmente me ajudou bastante. estou te devendo uma. conte comigo pra qualquer coisa. t+
Em 05/02/06, Rafael Jorge <[EMAIL PROTECTED]> escreveu: > > 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:delphi-br@yahoogrupos.com.br ] > > 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+ > -- 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