Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2009
Bauhaus1975 Bauhaus1975 is offline
Miembro
 
Registrado: may 2005
Ubicación: Málaga
Posts: 135
Poder: 22
Bauhaus1975 Va por buen camino
Angry Problemas copiando TIBQuery a TClientDataSet

Hola de nuevo,

Estoy tratando de crear una función para copiar el contenido de un TIBQuery a un TClientDataSet, donde tengo unos problemillas:

La primera cuestión es el error que obtengo al tratar de trabajar con el TClientDataSet en tiempo de ejecución. Creo el objeto, pero al tratar de hacer un open para insertar un registro obtengo el error 'Missing data provider or data packet'. Y sabemos que trabajando en diseño no hay problemas, además lo he podido comprobar -con este ejemplo aquí publicado-

La segunda cuestión, es que funcione la función que adjunto, pues me he basado en una que rodaba por el foro, pero usando TDataSet, el cual que yo sepa no me sirve pues hay que usar una clase hija de TDataSet.

Esta función me es necesaria para tener un paquete de datos disponible tras realizar la query (previamente, y solo una vez) puesto que a veces necesito alimentar varios objetos con el resultado, o tener los datos disponibles sin molestar a la BBDD una y otra vez. Seguramente ya os habréis encontrado alguno con este tema antes.

Aquí va la función que estoy tratando de hacer:

Código Delphi [-]
function cloneQuery(ibQuery:TIBQuery):TClientDataSet;
var
    Campo :string;
    i :integer;
    tabla : TClientDataSet;
begin
    tabla:= TClientDataSet.Create(nil); // Creamos clientdataset y definimos propiedades
    tabla.ProviderName := '';
    tabla.PacketRecords := -1;
    tabla.StoreDefs := true;
    tabla.Open; // Aquí obtenemos el error: "Missing data set provider..."
    // En esta sentencia se ejecuta la query que traerá los datos
    with ibQuery do
        begin
        Open;
        while not EOF do // Iteramos para ir insertando cada registro
          begin
          tabla.Append;
          for i := 0 to FieldCount-1 do
            begin
            Campo := Fields[i].FieldName;
            tabla[Campo] := ibQuery[Campo];
          end;
          tabla.Post;
          Next;
        end;
        Close;
    end;
    tabla.Close;
    result := tabla;
end;

Muchas gracias y un saludo.
Responder Con Cita
 



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
Problemas copiando y pegando documentos mixtos sue23cr Varios 1 13-07-2007 10:32:21
Problemas al actualizar un TClientDataset y ADO PEDRO_PASAMAR Conexión con bases de datos 1 30-11-2004 10:52:46
Problemas con TClientDataSet dmasson Conexión con bases de datos 5 30-05-2004 21:17:28
Problemas con In en TIBQuery Rabata Conexión con bases de datos 1 15-10-2003 13:56:59
Problemas con In en TIBQuery Rabata SQL 1 15-10-2003 13:56:59


La franja horaria es GMT +2. Ahora son las 22:50:59.


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