Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-10-2011
Chaja Chaja is offline
No confirmado
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 238
Poder: 0
Chaja Va por buen camino
ClienteDataSet a ClientDataSet

hola:
Como andan todos.... bien. Lo que estoy intentando hacer es: Tengo un ClienteDataSet el cual cargo los datos desde un archivo XML, el cual tiene todos los campos de la tabla de la base de datos. y tengo otro ClienteDataSet el cual esta vinculado con su DSProvider y este al SQL.
quiero asignar los datos del 2º CDS al 1º, pero este no se carga con los datos. yo hago esto:

CDSVentas:= CDSDatos_XML;

o debo recorre el el segundo e ir poniendo campo por campo?


Gracias

Luis Roldan
Mar del Plata
Argentina
Responder Con Cita
  #2  
Antiguo 05-10-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Hola Chaja!

Podrías explicarte mejor?

Saludos!
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 05-10-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Usa los métodos AppendData y, si se desea eliminar el contenido actual, EmptyDataSet. Encontrarás varios ejemplos de su uso en estos mismos foros.

Saludos.
Responder Con Cita
  #4  
Antiguo 05-10-2011
Avatar de CHECHE81
CHECHE81 CHECHE81 is offline
Miembro
 
Registrado: may 2007
Ubicación: Huauchinango, Puebla
Posts: 64
Poder: 18
CHECHE81 Va por buen camino
Talking Ciclo¡¡

Saludos a todos¡¡
Pues haciendo un ciclo While recorriendo el ClientDataSet que tiene los datos, en mi caso el AdoDataSet1 lo cargue con datos de un archivo de excel que necesito cargar a mi tabla cdsPAsignaturas en mi bd de MySQL, algo asi:

Código Delphi [-]
AdoDataSet1.First;
   While not AdoDataSet1.EoF do
   begin
     CDSLastidA.active:= false; // cierro,esto lo uso para obtener el select max(idPlanYAsignatura) de mi tabla
     CDSLastidA.active:=true;  //abro,esto lo uso para obtener el select max(idPlanYAsignatura) de mi tabla

     cdsPAsignaturas.Append;  // Aquí pones en modo de inserción a tu tabla donde copiaras los datos.. 
     cdsPAsignaturas.FieldByName('idPlanYAsignatura').Value:= CDSLastidA.FieldByName('id').AsInteger+1;// Aquí obtengo el ultimo valor del campo ID, así lo uso yo ok
     cdsPAsignaturas.FieldByName('idPlanGeneral').Value := AdoDataSet1.Fields[0].Value;
     cdsPAsignaturas.FieldByName('sPlanNombreOficial').Value:= AdoDataSet1.Fields[1].Value ;
     cdsPAsignaturas.FieldByName('sPlanNombreCorto').Value := AdoDataSet1.Fields[2].Value ;
     cdsPAsignaturas.FieldByName('iOrden').Value := AdoDataSet1.Fields[3].Value ;
     cdsPAsignaturas.FieldByName('sPeriodoNombre').Value := AdoDataSet1.Fields[4].Value ;
     ....
     cdsPAsignaturas.post; // guardas los datos
     
     AdoDataSet1.Next;// siguiente hasta terminar el recorrido
    
     end;


Claro que para guardar los cambios directamente a la bd debe tener el famoso ApplyUpdates en el evento AfterPost del ClientDataSet donde copiaras los datos algo como:
Código Delphi [-]
procedure Tdmconexion.cdsPlantelesAfterPost(DataSet: TDataSet); 
begin
   if cdsPlanteles.ChangeCount > 0 then
   cdsPlanteles.ApplyUpdates( 0 );
end;

Esto me funciona, espero te sirva Chaja...saludos¡¡¡
__________________
Cuidemos el medio ambiente....jojo

Última edición por CHECHE81 fecha: 05-10-2011 a las 19:55:15.
Responder Con Cita
  #5  
Antiguo 05-10-2011
Chaja Chaja is offline
No confirmado
 
Registrado: ago 2004
Ubicación: Mar del Plata
Posts: 238
Poder: 0
Chaja Va por buen camino
lo que quiero hacer es freezar un factura.Si se pude usar el termino.
Entonces que hago,el usuario empieza hace una factura, y por la mitad del detalle,decide cortar para facturar a otro cliente. para no perder lo echo, como uso clientdataset, hago un SavetoFile a un XML de los datos que tiene cargado. hago la otra factura y luego seria recuperar lo que habia empezado. para eso los archivos xml que habia guardado en el disco los leo con un CDS y hago un LoadFromFile(xx.xml) pero los datos del CDS con los datos delXML los debo asignar a los CDS que manejo habitualmente con los datos. Lo que no queria era asignar los datos de los campos de uno a otro en forma manual, pense al ser dos CDS iguales haciendo CDSDatos:=CDSXml, era suficiente.

Gracias
Responder Con Cita
  #6  
Antiguo 05-10-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Chaja Ver Mensaje
lo que quiero hacer es freezar un factura.Si se pude usar el termino.
Entonces que hago,el usuario empieza hace una factura, y por la mitad del detalle,decide cortar para facturar a otro cliente. para no perder lo echo, como uso clientdataset, hago un SavetoFile a un XML de los datos que tiene cargado. hago la otra factura y luego seria recuperar lo que habia empezado. para eso los archivos xml que habia guardado en el disco los leo con un CDS y hago un LoadFromFile(xx.xml) pero los datos del CDS con los datos delXML los debo asignar a los CDS que manejo habitualmente con los datos. Lo que no queria era asignar los datos de los campos de uno a otro en forma manual, pense al ser dos CDS iguales haciendo CDSDatos:=CDSXml, era suficiente.

Gracias
Te recomiendo que uses un TClientDataSet en memoria, no es necesario que lo guardes a un archivo XML. Usando el método AppendData que te sugerí mensajes arriba.

Saludos Cheché, un gusto verte.

Al.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
que es un clientedataset, como funciona ingabraham Varios 2 20-02-2008 22:14:32
Como manejo el ibstoredproc, el ibtransaction y el clientedataset ingabraham Varios 5 16-02-2008 01:20:47
ClientDataSet jovelar Firebird e Interbase 0 11-07-2005 17:59:41
DE BD SQL a CLIENTDATASET ada MySQL 0 05-10-2004 12:18:41
ClientDataSet y W98 tgsistemas Conexión con bases de datos 5 03-08-2004 10:13:06


La franja horaria es GMT +2. Ahora son las 22:56:45.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi