Tema: FDMemTable
Ver Mensaje Individual
  #2  
Antiguo 17-11-2023
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Creo que estás tratando de utilizar cosas de delphi en MySQL.

En Delphi tienes la tabla en memoria.
En MySQL tienes una tabla (manejada por el serividor MySQL).

Por lo tanto debes recorrer la tabla Delphi diciéndole a MySQL que los ponga en una tabla (Haciendo SQL para insertar (INSERT INTO TABLA ([CAMPOS]) VALUES ([VALORES])).

Algó así, pero tendrás que revisar tipos de datos, SQL, meter el ExecSQL en un bloque try..except por si falla, etc.

Código Delphi [-]
// Me posiciono en el primer registro
FDMemTable1.First;

// Recorro el dataset
while not FDMemTable1.EOF do
begin
    // Inserto datos en MySQL
    Query1.SQL.Clear;
    Query1.SQL.Add('Insert Into Tabla (Camppo1, Campo2, Campo3, ...) Values (:Valor1, :Valor2, :Valor3, ...)');
    Query1.Params.ByName('Valor1').AsString := FDMemTable1.FieldByName('Campo1').AsString;
    Query1.Params.ByName('Valor2').AsInteger := FDMemTable1.FieldByName('Campo2').AsInteger;
    Query1.Params.ByName('Valor3').AsDateTime := FDMemTable1.FieldByName('Campo3').AsDateTime;
    ...
    Query1.ExecSQL;

    // Siguiente registro
    FDMemTable1.Next;
end

Además de esto, por los nombres de variables que utilizas creo que estás liando un poco los conceptos.

Base de Datos: Es la entidad que contiene tablas. Manejada por el servidor de base de datos (MySQL).
Tabla: Cada una de las estructuras que contienen registros con una estructura definida.
Registro: Cada "línea" de una tabla.
Campo: Cada "celda" de un registro.

Última edición por duilioisola fecha: 17-11-2023 a las 10:41:42.
Responder Con Cita