Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   exportar fichero de excell a mysql (https://www.clubdelphi.com/foros/showthread.php?t=36723)

coletaun 21-10-2006 19:32:28

exportar fichero de excell a mysql
 
Hola a todos:

Tengo el sigiente codigo:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  Excel, Libro: Variant;
  i: integer;
  cliente,telefono: string;
begin
  Excel:=CreateOleObject('Excel.Application');
  Excel.Visible := False;
  Excel.DisplayAlerts:= False;
  Excel.WorkBooks.Add('C:\mail_sms\telefonos.xlt');
  Excel.WorkBooks[1].WorkSheets[1].Name := 'telefonos';
 Libro := Excel.WorkBooks[1].WorkSheets['telefonos'];
                       cliente:='1234';

                                i:=1;
                               repeat

                    telefono:=Libro.Cells[i,1];
                            i:=i+1;
 
                                tabla.SQL.Clear;
                                          tabla.SQL.Add(' INSERT INTO `cola_xml` (`COLA`, `CLIENTE`,`FECHA` ) VALUES('+Quotedstr(telefono)+', '+Quotedstr(cliente)+',now())');
                                       tabla.execsql;
 
                           until Excel.Cells[i,1].value = 0;

          ShowMessage(' El fichero de telefonos.xlt ha sido creado exitosamente');
 Excel.Quit;
 

end;

Cuando recoge los datos y los inserta en la tabla cola_xml, lo hace perfectamente, hasta que encuentra un registro en la celda que contiene algun espacio, caracter de texto etcc.

me da el siguiente mensaje de error :

"could not comvert variant of type(olestr) into tyoe (double) "

¿como meto en el campo de la tabla mysql cualqueir valor de las celdas con cualquier caracter?

Gracias de antemano

dec 21-10-2006 20:18:06

Hola,

A lo mejor no acierto en absoluto, pero, se me ocurre que hay algún problema con las comillas, o sea, que tú estás escribiendo algo así:

Código Delphi [-]
'+Quotedstr(telefono)+'

Y eso está resultando en comillas sobre comillas... no sé si me explico. Pienso que deberías utilizar la función "QuotedStr" o usar las comillas simples, pero, no ambas cosas a la vez.

Por otro lado se me ocurre (porque el error que te aparece da para pensarlo) que hay algún problema de tipos... que acaso no puedes entrecomillar un tipo "double", ni "integer", por ejemplo, que estos valores hay que insertarlos (en VALUES) "tal cual".

coletaun 21-10-2006 20:38:03

problema de tipos
 
Efectivamente es un problema de tipos, pues el error lo da antes de insertar el registro en la tabla, eb:

telefono:=Libro.Cells[i,1];
al extraer el dato de ta tabla de excell, es decir si hay un telefono asi: 654 654432 con un caracter vacio, da el error, pero antes de insertarlo en el registro, al leer 654 654432 en vez de 654654432.

Si todos los registro de la tabla de excel son numericos y no tienen ningun espacio, no da ningun error.

Gracias

nosferatu177 26-06-2007 23:02:18

exportar fichero excel a mysql
 
Cita:

Empezado por coletaun
Efectivamente es un problema de tipos, pues el error lo da antes de insertar el registro en la tabla, eb:

telefono:=Libro.Cells[i,1];
al extraer el dato de ta tabla de excell, es decir si hay un telefono asi: 654 654432 con un caracter vacio, da el error, pero antes de insertarlo en el registro, al leer 654 654432 en vez de 654654432.

Si todos los registro de la tabla de excel son numericos y no tienen ningun espacio, no da ningun error.

Gracias

hola, oye me gustaria saber si ya pudiste solucionar tu problema, lo q pasa es q yo estoy en una situación parecida(exportar datos de un archivo de excel a una tabla de mysql), solo q no se por donde comenzar :o; si solucionaste el problema podrias poner un ejemplo de como exportar datos desde este tipo de archivos :), de antemano muchas gracias


La franja horaria es GMT +2. Ahora son las 01:46:52.

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