Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-10-2010
vicvil vicvil is offline
Miembro
 
Registrado: may 2003
Ubicación: Chile
Posts: 157
Poder: 22
vicvil Va por buen camino
Problema con Load Data Local Infile

Tengo el siguiente problema:

Estoy tratando de llenar una tabla de mysql con la instruccion Load Data Infile
y para ello estoy usando una Open Dialog para que el usuario indique donde está el archivo a recuperar y lo hago de la siguiente forma

if OpDg.Execute then
begin
sql:= OpDg.FileName;
sql:= StrTran(sql,'\','/'); **esto transforma el \ por / **
qry:= TZQuery.Create(Application);
qry.Connection:= ZConnection1;
qry.sql.clear;
qry.sql.add('load data infile '+ sql + 'Replace into table Tabla1 fields terminated by '','' lines terminated by ''\r\n''');
qry.ExecSQL;
qry.close;
qry.free;
end;

pero me arroja el siguiente error Incorrect token followed by ":". He seguido el error y este se da dentro del Zeos en el ZSqlStrins.
Que estoy haciendo mal que no me resulta con el Open Dialog pero si lo hago poniendo directamente la ruta me funciona bien.
Responder Con Cita
  #2  
Antiguo 29-10-2010
vicvil vicvil is offline
Miembro
 
Registrado: may 2003
Ubicación: Chile
Posts: 157
Poder: 22
vicvil Va por buen camino
bueno me respondo a mi mismo y por si a alguien le pasa lo mismo...

No se si será una pifia del Zeos pero cuando se le da la ruta a traves del opendialog toma la ruta como un ttWord y va tomando caracter por caracter la información y al llegar al caracter ":" manda el error, es decir en "C:" ya se cae.
Al contrario de darle la ruta directamente ''C:/Ruta/archivo.txt'' lo toma como ttQuoted es decir toma toda la ruta como uno solo.
Por lo tanto tuve que arreglar la variable sql antes del query de la siguiente forma

sql:= 'load data local infile ' + '''' + OpDg.FileName + '''';

es decir ponerle comillas dobles antes y despues al Opendialog para que lo tome como ttQuoted y no como ttWord y ahi se solucionó el problema.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
local-infile es una directiva o es un comando? Alexis De la Cr MySQL 4 05-07-2008 20:44:18
Problema con Data Module FerCastro Conexión con bases de datos 11 18-01-2008 22:03:32
Problema con load data albarchi MySQL 4 10-02-2005 14:59:05
Problema con el data module Gustavo Gowdak Conexión con bases de datos 3 29-07-2004 16:05:37
load data infile DJ VMan MySQL 1 26-07-2003 22:40:37


La franja horaria es GMT +2. Ahora son las 10:52:13.


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