Lo de leer el .csv y pasarlo a un record y luego del record a la base de datos... es un paso que te puedes ahorrar perfectamente.
Lo lees del csv y lo guardas en la BD, nada más.
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
csvFile: TStringList;
line: string;
fields: TStringList;
i: Integer;
begin
csvFile := TStringList.Create;
fields := TStringList.Create;
try
csvFile.LoadFromFile('C:\ruta\archivo.csv');
IBTransaction1.StartTransaction;
IBDataSet1.Transaction := IBTransaction1;
IBDataSet1.Open;
try
for i := 0 to csvFile.Count - 1 do
begin
line := csvFile[i];
fields.CommaText := line;
IBDataSet1.Insert;
IBDataSet1.FieldByName('campo1').Value := fields[0];
IBDataSet1.FieldByName('campo2').Value := fields[1];
IBDataSet1.FieldByName('campo3').Value := fields[2];
IBDataSet1.Post;
end;
IBTransaction1.Commit;
ShowMessage('Registros insertados correctamente.');
except
on E: Exception do
begin
IBTransaction1.Rollback;
ShowMessage('Error al insertar registros: ' + E.Message);
end;
end;
finally
csvFile.Free;
fields.Free;
end;
end;
Este código carga el archivo CSV en un objeto TStringList, luego abre una transacción y un conjunto de datos utilizando los componentes IBTransaction y IBDataSet, respectivamente. Luego, itera sobre cada línea del archivo CSV y separa los campos utilizando el método CommaText del objeto TStringList. Finalmente, inserta cada registro en la base de datos utilizando el método Insert y asignando los valores de los campos correspondientes.