FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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; 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. |
|
|
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 |
|