Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-11-2005
santi33a santi33a is offline
Miembro
 
Registrado: jun 2005
Posts: 208
Poder: 19
santi33a Va por buen camino
Question Exportar e Importar Datos

Hola a Todos:
Quisiera saber si alguien me pudiera dar una idea de como exportar y exportar unos datos en una aplicación hecha con Delphi 7 y MSSQL server 2000, en mi caso por ejemplo tengo dos tablas

TEmpresa (idEmp int, Empresa varchar 50)
y
TFactura (idFac int, idEmp int, imp money)

ahora si este aplicacion se llevara en varias empresa de forma independiente, es decir en cada empresa la tabla TEmpresa solo tendrá un solo articulo, y en una compañía que agrupa a todas estas empresas quiere tener el resultado de todas, yo pensee ponerle a la aplicacion un boton que diga Exporar Empresa y otro que diga importar, pero no tengo idea como implementarlo, por lo que agradeceria cualquier ayuda
Responder Con Cita
  #2  
Antiguo 10-11-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Exportar e importar datos

Hola:

Para la importacion e importacion de datos te recomendaria utilizar Excel dado que como funciona como una tabla te sera mas facil el tratamiento de estos procesos.

Para la exportacion debes crear un procedimiento almacenado que te devuelva los datos de la empresa que va a exportar y de ahi llenas la hoja de Excel y luego creas otro procedimiento almacenado para insertar esos datos el cual leera los datos de la hoja de Excel.

Te dare algun codigo con una muestras.

Para importar
Código:
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;
		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;
Para exportar
Código:
procedure TFormMenu.otal4Click(Sender: TObject);
var
  Excel, Libro: Variant;
  i: integer;
begin
  Excel:=CreateOleObject('Excel.Application');
  Excel.Visible := False;
  Excel.DisplayAlerts:= False;
  Excel.WorkBooks.Add('C:\Archivos de programa\Tienda\Inventario.xlt');
  Excel.WorkBooks[1].WorkSheets[1].Name := 'Productos';
  Libro := Excel.WorkBooks[1].WorkSheets['Productos'];
  with Inventario do
  begin
	Close;
	Open;
  end;
  try
	Inventario.First;
	i:= 2;
	while not (Inventario.Eof) do
	begin
	  Libro.Cells [i,1] := InventarioCodTrasval.Value;
	  Libro.Cells [i,2] := InventarioDescripcionPLU.Value;
	  Libro.Cells [i,3] := Inventariopreciocosto.Value;
	  inc(i);
	  Inventario.Next;
	end;
	Libro.SaveAs('C:\Archivos de programa\Tienda\Inventario actualizado');
	ShowMessage(' El fichero Inventario actualizado.xls ha sido creado exitosamente');
	Excel.Quit;
  except
	ShowMessage(' El fichero no pudo ser creado');
	Excel.Quit;
  end;
end;
Para la exportacion te recomiendo que trabajes con una plantilla de Excel porque te ahorraras el problema de tener que darle formato a los datos. Otra cosa que debes tener en cuenta es que en el uses de la Unit debes incluir Excel97, ComObj.

Espero que te sirva.

Saludos
Luis Garcia

_____________________________
La mejor manera de decir es hacer
Responder Con Cita
  #3  
Antiguo 10-11-2005
santi33a santi33a is offline
Miembro
 
Registrado: jun 2005
Posts: 208
Poder: 19
santi33a Va por buen camino
Wink Agradecido

Ok, Luis voy a probar y muchas gracias
Responder Con Cita
  #4  
Antiguo 10-11-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues llevo años haciendo exportaciones/importaciones y siempre han sido en formato texto, ocupa poco, es rápido, cómodo, lo puedes ver con cualquier editor y además es gratis. El formato xls es un formato propietario, complejo, cerrado, necesitas comprar el programa (o piratearlo) y además no puedes verlo con otro programa.

Aunque ultimamente estoy probando xml, que a fin de cuentas es texto formateado.

Última edición por Casimiro Notevi fecha: 10-11-2005 a las 19:31:30. Razón: Se me olvidó algo.
Responder Con Cita
  #5  
Antiguo 10-11-2005
Avatar de Xianto
Xianto Xianto is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nací en Neuquén (ARG), desde 2001 Spain
Posts: 151
Poder: 20
Xianto Va por buen camino
Hay una opción muy interesante a la hora de exportar pero depende de como tenga los locales el que abra el informe.
Con locales me resfiero a la configuración de la PC donde se abre el archivo, la cual puede tener como delimitador numerico de decimales la coma o el punto.

La idea es generar el reporte como si fuera una tabla html...

Código:
  
<table ....>
  <tr>
	<td>datos...</td>
  <tr>
</table>
Una vez generada, la tabla con los datos, simplemente la guardas como XLS y buala...

Pero recuerda, los locales son el problema !!!

Saludetes.
__________________
El diseño dira si tiene futuro...
Responder Con Cita
  #6  
Antiguo 10-11-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Xianto
[...] La idea es generar el reporte como si fuera una tabla html...
[...]Una vez generada, la tabla con los datos, simplemente la guardas como XLS y buala [...]
¿xls?, te recomiendo esto.
Responder Con Cita
  #7  
Antiguo 11-11-2005
Avatar de Xianto
Xianto Xianto is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nací en Neuquén (ARG), desde 2001 Spain
Posts: 151
Poder: 20
Xianto Va por buen camino
Creo que la idea de un foro es discutir un tema hasta llegar al fondo y aprender cosas nuevas o enseñarlas...

Mira esto:

Cita:
Empezado por Casimiro Notevi
Pues llevo años haciendo exportaciones/importaciones y siempre han sido en formato texto, ocupa poco, es rápido, cómodo, lo puedes ver con cualquier editor y además es gratis.
Esto simplemente significa que nunca te has cruzado con la necesidad de enviar informacion a un servidor ADAIA o a un SAP, etc...

Hay gente (clientes) que piden Excel, Word, Access, DBF , XML, Texto, CSV, etc... para sus sistemas o para ellos.

Al igual que tu, creo que lo mejor siempre es un formato simple como el texto, pero la realidad demuestra que el paga tiene la razón, jejejeje...

Por esto a la hora de exponer, nuestros enfoques tienen que ser múltiples y ayudar a quien sea con la mayor informacion posible, para que el se encamine con "la" opción que mejor se adapte a sus necesidades !!!

Saludetes.
__________________
El diseño dira si tiene futuro...
Responder Con Cita
  #8  
Antiguo 11-11-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No te quito la razón, la tienes, cuando es necesario hacer algo en el formato que sea, se hace.
Pero, en este caso, no se hace referencia a ningún formato específico, simplemente se pide hacer una sencilla exportación/importación de unos poquitos datos, para algo así creo que es recomendable algo sencillo, cómodo, rápido e independiente de otros programas. No hay necesidad alguna de usar formatos de otros programas. Opino, pienso, creo... que si me piden, por ejemplo, pasar un bmp a jpg desde delphi, lo más razonable es dar alguna solución cómoda e independiente de otros programas. En este caso, aconsejando el formato xls, es como si hubiese contestado: grabas el bmp en disco en formato gif, luego abres el photoshop (y lo compras o pirateas) y lo exportas a jpg, luego lo grabas a disco en ese formato, cierras el photoshop y abres el programa de importación donde podrás leer el archivo en el formato deseado, el jpg. Me parece una barbaridad poner un programa de por medio, cuando no es necesario.

Y vuelvo a repetir lo mismo, a veces hace falta y no queda más remedio que usar formatos de otros programas, por supuesto, y se hace.

En fin, es sólo una opinión y puedo estar equivocado en mi razonamiento, pero es lo que yo haría.

Saluditos.
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


La franja horaria es GMT +2. Ahora son las 13:28:12.


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