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 25-11-2009
Avatar de voldemmor
voldemmor voldemmor is offline
Miembro
 
Registrado: ago 2006
Posts: 232
Poder: 18
voldemmor Va por buen camino
transaccion con ado+zeos en access 2007

Hola amigos. Como siempre primero agradesco de antemano por la ayuda que me podais prestar.

Ahora el proble es.

Tengo que realizar una insercion masiva, sobre una tabla en Access 2007.
Primero cargo los datos de un excel a una stringgrid (no hay pçroblemas).

Luego tengo que enviar estos datos a mi tabla.

Uso D7. Zeos 6 y me conecto mediante la opcion ado, y Access 2007.

El problema me surge cuando hago las pruebas si los dtos estan todos correctos (sin faltantes, datos mal escritos, etc), no h ay problemas.

Pero por ejemplo si en el campo edad (entero), no existe un dato.
Me da un error
Código:
esta intentando cerrar o detener una transaccion que no ha iniciado
y los registros anteriores a este ya se han guardado.

El motivo de esto es por que si hay datos erroneos no deberia ingresarse ninguno y dar un mensaje de que revise los datos, lo corrija de ser necesarios y los ingrse nuevamente.

my codigo para la insercion es
Código Delphi [-]
var
conn :TZConnection;
i:integer;
begin
   zq1.SQL.Clear;
{cols son 8 visibles- anio y fecha no visibles en la columna}
   conn := form2.ZConnection1;
   zq1.Connection:= conn;
   conn.StartTransaction;
     try
      zq1.SQL.Text := 'INSERT INTO participantes (cedula,nombres,anio,nivel,edad,ocupacion,'+
                      'sexo,canton,parroquia,comunidad,calle,telefono,centro_educativo,zona,'+
                      'horario,estado_civil,discapacidad,bono,funcion_familia,hijos_edad_escolar,'+
                      'hijos_en_escuela,etnia,lengua,educador,ci_educador,extra1,extra2)'+
                      'VALUES(:cedula,:nombres,:anio,:nivel,:edad,cupacion,'+
                      ':sexo,:canton,arroquia,:comunidad,:calle,:telefono,:centro_educativo,:zona,'+
                      ':horario,:estado_civil,:discapacidad,:bono,:funcion_familia,:hijos_edad_escolar,'+
                      ':hijos_en_escuela,:etnia,:lengua,:educador,:ci_educador,:extra1,:extra2)';
      for i := 1 to StringGrid2.RowCount -1 do
      begin
         zq1.ParamByName('cedula').AsString := StringGrid2.Cells[1,i];
         zq1.ParamByName('nombres').AsString := StringGrid2.Cells[2,i];
         zq1.ParamByName('anio').AsString := StringGrid2.Cells[0,i];
         zq1.ParamByName('nivel').AsString := StringGrid2.Cells[3,i];
         zq1.ParamByName('edad').AsInteger := StrToInt(StringGrid2.Cells[4,i]);
         zq1.ParamByName('ocupacion').AsString := StringGrid2.Cells[5,i];
         zq1.ParamByName('sexo').AsString := StringGrid2.Cells[6,i];
         zq1.ParamByName('canton').AsString := StringGrid2.Cells[7,i];
         zq1.ParamByName('parroquia').AsString := StringGrid2.Cells[8,i];
         zq1.ParamByName('comunidad').AsString := StringGrid2.Cells[9,i];
         zq1.ParamByName('calle').AsString := StringGrid2.Cells[10,i];
         zq1.ParamByName('telefono').AsString := StringGrid2.Cells[11,i];
         zq1.ParamByName('centro_educativo').AsString := StringGrid2.Cells[12,i];
         zq1.ParamByName('zona').AsString := StringGrid2.Cells[13,i];
         zq1.ParamByName('horario').AsString := StringGrid2.Cells[14,i];
         zq1.ParamByName('estado_civil').AsString := StringGrid2.Cells[15,i];
         zq1.ParamByName('discapacidad').AsString := StringGrid2.Cells[16,i];
         zq1.ParamByName('bono').AsString := StringGrid2.Cells[17,i];
         zq1.ParamByName('funcion_familia').AsString := StringGrid2.Cells[18,i];
         zq1.ParamByName('hijos_edad_escolar').AsInteger := StrToInt( StringGrid2.Cells[19,i]);
         zq1.ParamByName('hijos_en_escuela').AsInteger := StrToInt( StringGrid2.Cells[20,i]);
         zq1.ParamByName('etnia').AsString := StringGrid2.Cells[21,i];
         zq1.ParamByName('lengua').AsString := StringGrid2.Cells[22,i];
         zq1.ParamByName('educador').AsString := StringGrid2.Cells[23,i];
         zq1.ParamByName('ci_educador').AsString := StringGrid2.Cells[24,i];
         zq1.ParamByName('extra1').AsString := StringGrid2.Cells[25,i];
         zq1.ParamByName('extra2').AsString := StringGrid2.Cells[26,i];
         zq1.ExecSQL;
      end;//for
      conn.Commit;
      ShowMessage('Ingreso correcto');
      SpeedButton6Click(Sender);
     except //try
       conn.Rollback;
       ShowMessage('Error al ingresar los datos '+#13+'Verifique sus datos');
     end;//try except
end;

espero haberme explicado y espero me podai ayudar
__________________
tu mente es tu mas presiado tesoro, cultiva tu conocimiento
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
Transacción maestro-detalle con Zeos y SQLite peccatum Conexión con bases de datos 3 04-04-2009 05:30:10
Ayuda: No he podido instalar Zeos 6.6.2-rc en Delphi 2007 hmrvivas Conexión con bases de datos 1 30-06-2008 05:45:48
zeos lib para c++ builder 2007 2-D@monic Conexión con bases de datos 2 21-05-2008 03:57:12
instalacion de zeos lib en c++ builder 2007 2-D@monic C++ Builder 0 18-05-2008 06:55:52
Alguien pudo instalar Zeos en Delphi 2007? pborges36 Conexión con bases de datos 8 04-12-2007 23:51:32


La franja horaria es GMT +2. Ahora son las 00:31:55.


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