Filipe, Se vc quer (precisa) utilizar CDS, vc tem que utilizar o trio CDS+DSP+QRY. Para o UPDATE não é obrigatório definir os Fields no CDS, mas sim no DSP. Após definir os Fields, vc tem que configurar a propriedade ProviderFlags de cada TField. Quanto a tabela, se a query conter somente uma tabela no Select, o Delphi sabe qual tabela pegar. Se tiver mais de uma tabela (JOIN), o Delphi "tenta" utilizar a primeira tabela declarada depois da cláusula FROM. Mas vc pode especificar qual a tabela que será dado o UPDATE através do evento do DSP: OnGetTableName.
Veja mas sobre isso no help do Delphi e/ou nos seus Demos (C:\Program Files\Borland\Delphi7\Demos). Procure por ApplyUpdates que vc vai encontrar muita coisa. Tente endender como a tecnologia funciona primeiro. Pelo que estou vendo, vc tá tentanto "decorar" o que deve fazer para determinada tarefa. -- Marcos Douglas ---- Mensagem Original ---- From: "Filipe Belchior" <[EMAIL PROTECTED]> To: delphi-br@yahoogrupos.com.br Sent: Seg, Setembro 11, 2006 6:03 pm Subject: [delphi-br] Re: Editar em ClientDataSet > ok marcos, entendido isso.. agora, :D ..seguinte, pra editar > (update) uma tabela.. vamos fazer na prática, :D ..quais > componentes usar? ..CDS, DSP e SQ??? na CDS eu defino os Fields. > Como informar qual tabela? ..O DSP, normal.. e o SQ? uso? > > > > --- Em delphi-br@yahoogrupos.com.br, "Marcos Douglas" <[EMAIL PROTECTED]> > escreveu >> >> Filipe, >> Veja minhas considerações abaixo: >> >> > marcos.. olhei a respeito do método, no delphi.. mas eu num >> > entendi exatamente como funciona.. eu deixo o comandtext em >> > branco? ..e tbm tem essa parte dita pelo help do delphi.. >> >> O método CreateDataSet cria uma "área" em memória como se tivesse > sido feito >> um SELECT no banco, mas que não foi retornado nenhum registro. A > propriedade >> CommandText não tem nada a ver com isso; na verdade não é bom utilizar >> CommandText. >> >> > ..qnd vc disse que eh "obrigatório definir os TFields antes", >> > na verdade, vc naum quiz dizer TFieldDefs? ..e tbm, o texto >> > acima retirado do help, diz que eh usado o FieldDefs OU o >> > Fields para cria as definições dos campos. Afinal, qual a >> > diferença? ..pois, o Fields, eh criado qnd usamos o Open, >> > certo? >> >> Tanto faz, é o que diz o help do Delphi. Se tem que definir, pelo > menos, os >> FieldDefs. Mas se houver TFields definidos, estes serão utilizados. >> Quando chamamos Open e não há nenhum FieldDefs definido, o Delphi > cria eles >> em rumtime, junto com os TFields. >> >> >> > >> > --- Em delphi-br@yahoogrupos.com.br, "Marcos Douglas" <[EMAIL PROTECTED]> > escreveu >> >> >> >> Não precisa dar Open. Vc pode utilizar o método CreateDataSet, mas é >> >> obrigatório definir os TFields antes. >> >> >> >> -- >> >> Marcos Douglas >> >> >> >> ---- Mensagem Original ---- >> >> From: "Filipe Belchior" <[EMAIL PROTECTED]> >> >> To: delphi-br@yahoogrupos.com.br >> >> Sent: Seg, Setembro 11, 2006 2:56 pm >> >> Subject: [delphi-br] Editar em ClientDataSet >> >> >> >> > olá, paz.. >> >> > >> >> > Direto ao assunto.. pra fazer uma edição em CDS (insert, >> >> > update, delete), é preciso um "Open" antes, correto? >> >> > Se vou abrir preciso do select.. o select tem q ser "*"? >> >> > mas se for um select com "where"? >> >> > >> >> > []s >> >> > >> >> > PS.: estou comecando em MIDAS. E sempre fiz edição por sql >> >> > dinâmica.. nada de "DataSet.Insert", ".Edit", etc.. >> >> > >> >> > >> >> > FILIPE BELCHIOR >> >> > >> >> > >> >> > >> >> > >> >> >> > >> > >> > >> > >> > >> > >> > > > > > -- <<<<< 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