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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-03-2008
caifan_0883 caifan_0883 is offline
Miembro
 
Registrado: nov 2005
Ubicación: Los Mochis, Mexico
Posts: 42
Poder: 0
caifan_0883 Va por buen camino
Se pierden datos en Insercion Masiva

Hola compañeros foreros.
Me surgio un problemilla, estoy insertando unos 2500 registros de excel a un BD en Firebird 2.0. Todo funciona "bien". No salta error alguno.
Pero al momento de checar los datos hay algunos de ellos que no aparecen cierto dato que necesito.
Estoy insertando en una Tabla llamada ARTICULOS y en otra CODIGOS.
Me aparece el articulo pero el codigo, el cual hace referencia.

Aqui les dejo la parte de mi codigo para ver si me podrian ayudar donde esta mi error. Gracias y Saludos.

Código:
procedure TForm1.BtnArticulosClick(Sender: TObject);
Var
   Excel:Variant;
   DescCorta,DescNormal,CodigoB1,CodigoB2,CodigCateg,Categ:String;
   I,J,Aux,IdCateg,IdArt:Integer;
begin
   Aux:=0;
   IBQuery1.Active:=False;
 
   Excel:=CreateOleObject('Excel.Application');
   Excel.WorkBooks.Open(Ruta+'\NARTE.xls');
   For I:=1 to 2552 Do
     Begin
        IBQuery1.SQL.Clear;
        IBQuery2.SQL.Clear;
        CodigCateg:=Copy(Excel.Cells[I,1].Value,0,3);
        CodigoB2:=Excel.Cells[I,1].Value;
        DescNormal:=Trim(Copy(Excel.Cells[I,2].Value,0,44));
        DescCorta:=Trim(Copy(Excel.Cells[I,2].Value,0,19));
        CodigoB1:=Copy(Excel.Cells[I,3].value,0,13);
        For J:=0 to LBCategorias.Items.Count-1 Do
           Begin
              If CodigCateg = Copy(LbCategorias.Items[J],0,3) then
                Begin
                 Aux:=J;
                 Break;
                End;
           End;
 
        Categ:=Trim(Copy(LbCategorias.Items[Aux],4,15));
        IBQueryAux.SQL.Clear;
        IBQueryAux.SQL.Text:='Select CLAVE From CATEGORIAS Where Nombre=:IdNombre';
        IBQueryAux.ParamByName('IdNombre').AsString:=Categ;
        IBqueryAux.Open;
        IdCateg:=IBQueryAux.FieldByname('Clave').AsInteger;
 
         With IBQuery1 Do
            Begin
               SQL.Text:='Insert into ARTICULOS (DESC_CORTA,DESC_LARGA,PRECIO1,PRECIO2,';
               SQL.Add('PRECIO3,PRECIO4,ULT_COSTO,COSTOPROM,DESC_AUTO,');
               SQL.Add('EXISTENCIA,MINIMO,MAXIMO,CATEGORIA,DEPARTAMENTO,TIPO,');
               SQL.Add('UNIDADE,CANTIDAD_CNT,PROVEEDOR1,PROVEEDOR2,IVA,');
               SQL.Add('FECHA_CAP,FECHA_UMOV,ESTATUS,ULTVENTA,ULTCOMPRA,UTILIDAD)');
               SQL.Add(' Values (:Vari2,:Vari3,:Vari4,:Vari5,:Vari6,:Vari7,');
               SQL.Add(':Vari8,:Vari9,:Vari10,:Vari11,:Vari12,:Vari13,');
               SQL.Add(':Vari14,:Vari15,:Vari16,:Vari17,:Vari18,:Vari19,');
               SQL.Add(':Vari20,:Vari21,:Vari22,:Vari23,:Vari24,:Vari25,');
               SQL.Add(':Vari26,:Vari27)');
               //ParamByName('Vari1').AsInteger:=I;
               ParamByName('Vari2').AsString:=DescCorta;
               ParamByName('Vari3').AsString:=DescNormal;
               ParamByName('Vari4').AsFloat:=1.00;
               ParamByName('Vari5').AsFloat:=0.00;
               ParamByName('Vari6').AsFloat:=0.00;
               ParamByName('Vari7').AsFloat:=0.00;
               ParamByName('Vari8').AsFloat:=1.00;
               ParamByName('Vari9').AsFloat:=1.00;
               ParamByName('Vari10').AsString:='N';
               ParamByName('Vari11').AsFloat:=0.00;
               ParamByName('Vari12').AsFloat:=0.00;
               ParamByName('Vari13').AsFloat:=0.00;
               ParamByName('Vari14').AsInteger:=IdCateg;
               ParamByName('Vari15').AsString:='';
               ParamByName('Vari16').AsInteger:=3;
               ParamByName('Vari17').AsInteger:=1;
               ParamByName('Vari18').AsString:='N';
               ParamByName('Vari19').AsString:='';
               ParamByName('Vari20').AsString:='';
               ParamByName('Vari21').AsFloat:=0.00;
               ParamByName('Vari22').AsDateTime:=Date;
               ParamByName('Vari23').AsDateTime:=Date;
               ParamByName('Vari24').AsString:='A';
               ParamByName('Vari25').AsString:='';
               ParamByName('Vari26').AsString:='';
               ParamByName('Vari27').AsString:='';
               ExecSQL;
               Transaction.Commit;
            End;
         IBQuery1.SQL.Clear;
         IBQuery1.SQL.Text:='Select CLAVE From ARTICULOS Where Desc_Corta=:Descrip';
         IBQuery1.ParamByName('Descrip').AsString:=DescCorta;
         IBQuery1.Open;
         IdArt:=IBQuery1.FieldByName('Clave').AsInteger;
 
With IBQuery1 Do
             Begin
                 SQL.Text:='Insert into CODIGOS (ARTICULO,CODIGO,TIPO) Values (:IdArt,:IdCod,:IdTip)';
                 ParamByName('IdArt').AsInteger:=IdArt;
                 ParamByName('IdCod').AsString:=CodigoB1;
                 ParamByName('IdTip').AsString:='P';
                 ExecSQL;
                 Transaction.Commit;
             End;
End;
Como datos, manejo los componentes de la Pestaña Interbase, Delphi 7 y FireBird 2.0 Saludos.

Los datos de articulos se insertan correctamente y los de codigos de barra algunos no. Cuando habla de algunos son unos 400 registros que no pone el codigo, y el los demas estan correctamente los datos.

Saludos y Gracias de Nuevo
__________________
Da conocimiento a los que no saben.

Última edición por caifan_0883 fecha: 26-03-2008 a las 16:12:04. Razón: Falta de datos.
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
Error en alta masiva de datos en una sóla transacción afxe Firebird e Interbase 3 07-05-2007 10:27:38
Insercion masiva de una BD a otra BD oscjae Firebird e Interbase 5 15-12-2006 20:25:49
Insercion de datos con un dbgrid luxus Conexión con bases de datos 2 26-10-2006 17:02:55
Insercion masiva de registros MUY LENTA Balda Firebird e Interbase 10 24-03-2004 21:40:21
Inserción masiva en MySQL Morfo MySQL 3 09-01-2004 18:05:33


La franja horaria es GMT +2. Ahora son las 18:50:56.


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