Vou descrever aki os passo que estão mais bem detalhados na apostila q indiquei no meu link de downloads gratuitos em http://cc.codegear.com/Author/795118
Passo 1: Definir acesso ao banco de dados DBExpress Componente: SQLConnection Acesso a dados e manipulação de dados: SQLDataSet DataSet unidirecional onde vc coloca seu comando SQL inclusive com os parâmetros. DataSetProvider Responsavel por exportar datasets a serem manipulados pleo ClientDataSet e reponsavel de gerenciar as requisições recebidas do clientdataset e montar os deltas de atualização no banco qdo necessário(insert, delete, update). Esta se conecta ao SqlDataSet neste caso(pq ele pode se conectar a qq dataset). ClientDataSet A oitava maravilha do mundo, responsável por consumir um os datasetprovider e mtas outras funcionalidades. Neste caso se conecta ao datasetprovider, nele vc obtem os parâmetros configurados no sqldataset através do método fecth params(clicando com o bt direito). Pode se adicionar os campos Tb como objetos no Field editor. Esta é a configuração básica pra se manipular dados, o restante e vc colocar o datasource conectado no clientdataset e os controles dataware(dbedit, dbgrid..etc) conectados ao datasource. Lembrando q naume stou abordando performance aki usando provider flags e updatemode e outras coisinhas altamente necessárias, porem eu levaria mto tempo pra escrever o email. Em tempo, vcs encontram isso td perfeitamente implementado e documentado no meu exemplo do Borland conference brazil 2006 no mesmo link de downloads. Passo 2 configuração SQL liga no sqlconnection e define o comandtext: SELECT CONTROLE .CAMPO, CONTROLE .VALOR FROM CONTROLE WHERE CONTROLE.CAMPO LIKE :CAMPO, Define o parâmetro campo como ftstring DSP liga no SQL. CDS liga no DSP, faz o fetch params, adiciona os campos. DS Liga no CDS DBGrid Liga no DS Comando do botão pra consultar: CDS.Close; CDS.Params[0].Asstring := Edit1.text + %; CDS.Open; Comando pra aplicar as alteracoes: CDS.Applyupdates(0); Assim q funciona o fundamental. A nível de performance e mtas outras coisas faltariam aki ainda pra falar, mas no exemplo do borcon 2006 esta mto bem exemplificado e detalhado. As ordens para o q precisarem Abraços, Bruno Lichot CodeGegar Product Evangelist http://www.codegear.com http://cc.codegear.com/Author/795118 De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Ricardo César Cardoso Enviada em: sexta-feira, 27 de abril de 2007 11:15 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: [delphi-br] Problemas com ClientDataSet e DBGrid Caro Bruno. Obrigado pela sua resposta. Mas tenho que fazer o que, onde? A princípio eu faço a consulta/instrução SQL no TSQLQuery e como o TClientDataSet está ligado a um TDataSetProvider que está ligado ao TSQLQuery, supõe-se que tudo deva funcionar apenas fechando o TSQLQuery e TClientDataSet; atualizando o parâmetro da minha consulta/instrução SQL e abrindo novamente, não? Sds, Ricardo. Bruno Lichot <[EMAIL PROTECTED] <mailto:blichot%40softpark.com.br> > escreveu: Tem q fazer isso no clientdataset e naum no sqldataset. Pega a postila como te falei por que ele é passo a passo e mostra como fazer isso. Abs BL De: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> [mailto:delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> ] Em nome de Ricardo César Cardoso Enviada em: sexta-feira, 27 de abril de 2007 09:35 Para: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> Assunto: Re: [delphi-br] Problemas com ClientDataSet e DBGrid Primeiramente obrigado pela resposta, Rafael. Realmente esta foi uma das primeiras medidas que tomei. Fecho o TSQLQuery antes de pedir novos dados; atualizo o parametro de busca e reabro o TSQLQuery. Até aqui tudo funciona bem, o problema é que o TClientDataSet não reflete os dados do TSQLQuery. Se mais alguém puder contribuir, ficamos agradecidos. Sds, Ricardo Rafael Marques <[EMAIL PROTECTED] <mailto:rafael.matriz%40terra.com.br> <mailto:rafael.matriz%40terra.com.br> > escreveu: eu ja passei por uma situacao assim (nao sei se é exatamente a mesma solucao q pra sua), mas o q fiz foi sempre fechar o SqlQuery antes de passar o parametro. Eu fecho e o ClientDataset, passo o parametro e depois abro o clientdataset eu fiz isso e funfo!! ----- Original Message ----- From: Ricardo César Cardoso To: delphi-br@yahoogrupos.com.br <mailto:delphi-br%40yahoogrupos.com.br> <mailto:delphi-br%40yahoogrupos.com.br> Sent: Friday, April 27, 2007 8:44 AM Subject: [delphi-br] Problemas com ClientDataSet e DBGrid Bom dia amigos da lista, como vão? Gostaria de uma ajuda de qualquer um que já passou por esta situação. Tenho um DataModule onde entre outros componentes referentes a um determindado módulo da minha aplicação tenho um TSQLQuery, um TDataSetProvider, um TClientDataSet e um TDataSource ligados entre si e o TDataSource ligado a um TDBGrid. Dentro da aplicação existe uma rotina que faz uma busca parametrizada e traz apenas os registros correspondentes para o TDBGrid (pelo menos faz em outros módulos, somente neste que não faz). Para isto, montei a instrução SQL dentro do TSQLQuery, algo que sempre faço, inclusive coloquei o parâmetro dentro da própria SQL e configurei o parametro com seu tipo correto. Até aqui nenhum problema. Quando rodo a aplicação e chamo esta rotina, na primeira execução que faço, os dados vem para o TDBGrid da maneira esperada, mas quando chamo novamente esta rotina, os dados do TDBGrid continuam a ser referentes ao parâmetro anterior. Debugei a aplicação para ver se o parâmetro estava realmente sendo passado da maneira correta (atualizada) e notei que tudo estava OK. Fiz mais um teste para saber se o TSQLQuery estava fazendo a consulta que eu estava pedindo. Novamente tudo estava OK, ou seja, a instrução SQL era executada e os dados vinham para o TSQLQuery. Aí notei que o problema só poderia ser no TClientDataSet. Tentei várias abordagens como fechar e abrir novamente o TClientDataSet, fazer um "refresh" nele, mas nada resolveu. É como se o TClientDataSet estivesse mantendo os dados em memória referentes a primeira consulta executada, mesmo depois do TClientDataSet ser fechado e reaberto, e do conjunto de dados ao qual ele deveria refletir ter mudado. Alguém já passou por esta situação, e pode me dar alguma dica? Sds, Ricardo. __________________________________________________ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] ---------------------------------------------------------- Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine: McAfee VirusScan / Atualizado em 26/04/2007 / Versão: 5.1.00/5018 Proteja o seu e-mail Terra: http://mail.terra.com.br/ [As partes desta mensagem que não continham texto foram removidas] _ __________________________________________________ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] __________ Informação do NOD32 IMON 2223 (20070427) __________ Esta mensagem foi verificada pelo NOD32 sistema antivírus http://www.eset.com.br [As partes desta mensagem que não continham texto foram removidas] _ __________________________________________________ Fale com seus amigos de graça com o novo Yahoo! Messenger http://br.messenger.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] __________ Informação do NOD32 IMON 2223 (20070427) __________ Esta mensagem foi verificada pelo NOD32 sistema antivírus http://www.eset.com.br [As partes desta mensagem que não continham texto foram removidas]