Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-04-2005
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
importacion de datos a DB

hola a todos,

en algun link, obtuve como importar datos (desde un archivo txt) yo lo comprobe pero tiene unos problemillas al hacerlo, por que cuando son numeros enteros me importa unos numeros en miles, etc, este es el fragmento que fui modificando:

create table tablaEx external file 'C:\Mis documentos\Documentos\prov.txt'
(
clave integer,
Nombre varchar(50),
telefono varchar(25),
clasif varchar(4),
saldo double precision,
retorno char(2) ------> asi lo indicaron
);
donde n = 2 en windows y n = 1 en linux donde se coloca el numero (n).

busque el Ibexpet edition personal, ya registre la base y tengo un archivo en excel y de este hice una copia para guardarlo como tipo CVS preguntandome que si deseaba conservar los caracteres de compatibilidad, [Si].
en las ayudas esta como importarlo:
INSERTEX INTO provs(clave,proveedor,tel,cat,saldo) FROM CSV 'C:\Mis documentos\Documentos\proves.csv' DELIMITER ';' SKIP 1;
alguien ha importado datos y me pueda indicar como hacerlo.
les agradesco mucho
Responder Con Cita
  #2  
Antiguo 14-04-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Importacion de datos a DB

Hola

Dado que ya tienes los datos en Excel me parece que es mas facil importarlos directamente del xls que del cvs ahi te envio un codigo que te puede ayudar
Código Delphi [-]
 procedure TFormMenu.Productos2Click(Sender: TObject);
 var
   j: Integer;
 begin
   try
     Excel := CreateOleObject('Excel.Application');
   except
     Excel.Quit;
     showmessage('No se pudo crear el Objecto Excel.');
     raise;
   end;
   if OpenDialogXls.Execute then Archivo:= OpenDialogXls.FileName
   else exit;
   Excel.Workbooks.Open(Archivo);
   j:= 2;
   try
     repeat
       with InsertarProductos do
       begin
         Close;
         Parameters.ParamByName('@codplu').Value:= Excel.Cells[j,1].Value;
         Parameters.ParamByName('@codtrasval').Value:= Excel.Cells[j,2].Value;
         Parameters.ParamByName('@codfabricante').Value:= Excel.Cells[j,3].Value;
         Parameters.ParamByName('@descripcionplu').Value:= Excel.Cells[j,4].Value;
         Parameters.ParamByName('@preciocosto').Value:= Excel.Cells[j,5].Value;
         Parameters.ParamByName('@precioventa').Value:= Excel.Cells[j,6].Value;
         Parameters.ParamByName('@um').Value:= Excel.Cells[j,7].Value;
         Parameters.ParamByName('@categoria').Value:= Excel.Cells[j,8].Value;
         Prepared:= True;
         ExecProc;
       end;
     inc(j);
     until Excel.Cells[j,2].Value = '';
     Excel.quit;
     ShowMessage(' El fichero de productos ha sido importado exitosamente');
   except
     ShowMessage(' !!!!! ATENCION !!!!! ' + chr(13) +
                     ' El fichero no pudo ser importado' + chr(13) +
                     ' Revise bien su estructura');
   end;
 end;
Donde Excel : Variant;

y en el uses incluir Excel97, ComObj

El ejemplo comienza en j:= 2 por que tengo encabezada la primera fila del documento.

Espero que te sea util

Saludos
Luis Garcia

_____________________________
La mejor manera de decir es hacer

Última edición por marcoszorrilla fecha: 14-04-2005 a las 23:09:23. Razón: Añadir etiquetas [Delphi]
Responder Con Cita
  #3  
Antiguo 16-04-2005
uper uper is offline
Miembro
 
Registrado: abr 2004
Posts: 296
Poder: 21
uper Va por buen camino
saludos

mi duda es que para importar datos seria conveniente hacerlo por un store procedure, para que se ejecute desde la aplicacion una vez que cargemos el archivo en excel.

mi SP es el siguiente, pero me dice que hay un error en la linea 9 char 10 insert

CREATE PROCEDURE INSERTAR_PROV (CLAVE_PROV Integer,
PROVE Varchar(50),
"TEL_PROV " Varchar(15),
CAT Varchar(4),
" SALDO_PROV" Double precision)
AS
begin
FOR SELECT(Insert into provs(clave, proveedor, tel, cat, saldo)
values(:CLAVE_PROV, :PROVE, :CAT, :SALDO_PROV) from Provs
suspend;
end

me pueden indicar como es la correcta insercion en este sp

gracias
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 18:29:07.


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