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 14-10-2021
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Cita:
Empezado por Ariqueño Ver Mensaje
buen dia bucabero.

Código Delphi [-]
    DM.miSQL.SQL.Add('LOAD DATA INFILE :P1');
    DM.miSQL.SQL.Add('INTO TABLE temporal_stock');
    DM.miSQL.SQL.Add('FIELDS TERMINATED BY ";"');
    DM.miSQL.SQL.Add('LINES TERMINATED BY "\r\n"');
    DM.miSQL.SQL.Add('IGNORE 1 LINES');
    DM.miSQL.SQL.Add('(id_prod,nombre,@num1)');
    DM.miSQL.SQL.Add('set final_sala=CONVERT(REPLACE(@num1,",","."),decimal(12,3) '); // problema
    DM.miSQL.ParamByName('P1').Value := edit2.Text;
    DM.miSQL.ExecSQL;

tengo un error de sentencia SQL no puedo usar cremillas simple por ser caracteres reservados del delphi.
como puedo pasar ese error? gracias ..
Hola!!

MySQL no diferencia entre comillas simples y comillas dobles, por lo que puedes usar indistintamente unas u otras.

Para usar en delphi las comillas simples dentro de una cadena entrecomillada, se hace poniendo dos veces la comilla simple por ejemplo

Código Delphi [-]
   DM.miSQL.SQL.Add('set final_sala=CONVERT(REPLACE(@num1, '','', ''.''),decimal(12,3) '); // problema


Por otra parte MySQL te dará error en esta línea
Código SQL [-]
    DM.miSQL.SQL.Add('LOAD DATA INFILE :P1');
puesto que la sentencia LOAD DATA INFILE es muy restrictiva y no acepta parámetros para el nombre del fichero ni integrarla en procedimiento y funciones almacenadas en la BBDD. Por lo que tendrás que poner el nombre del fichero directamente desde delphi
Responder Con Cita
  #2  
Antiguo 14-10-2021
Ariqueño Ariqueño is offline
Registrado
 
Registrado: feb 2021
Posts: 8
Poder: 0
Ariqueño Va por buen camino
Cita:
Empezado por bucanero Ver Mensaje
Hola!!

MySQL no diferencia entre comillas simples y comillas dobles, por lo que puedes usar indistintamente unas u otras.

Para usar en delphi las comillas simples dentro de una cadena entrecomillada, se hace poniendo dos veces la comilla simple por ejemplo

Código Delphi [-]
   DM.miSQL.SQL.Add('set final_sala=CONVERT(REPLACE(@num1, '','', ''.''),decimal(12,3) '); // problema


Por otra parte MySQL te dará error en esta línea
Código SQL [-]
    DM.miSQL.SQL.Add('LOAD DATA INFILE :P1');
puesto que la sentencia LOAD DATA INFILE es muy restrictiva y no acepta parámetros para el nombre del fichero ni integrarla en procedimiento y funciones almacenadas en la BBDD. Por lo que tendrás que poner el nombre del fichero directamente desde delphi
Código Delphi [-]
  DM.miSQL.SQL.Add('LOAD DATA INFILE :P1');
no eh tenido ningún problema con ese parametro en esa línea, pero sigo con los problemas con las comillas.
Responder Con Cita
  #3  
Antiguo 15-10-2021
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Hola!!

yo he probado con este código y a mi me funciona perfectamente

Código SQL [-]
  ZQuery1.SQL.Add('LOAD DATA LOCAL INFILE :P1');
  ZQuery1.SQL.Add('INTO TABLE `tablacsv`');
  ZQuery1.SQL.Add('FIELDS TERMINATED BY ";" ENCLOSED BY ''"'' ');
  ZQuery1.SQL.Add('LINES TERMINATED BY "\r\n"');
  ZQuery1.SQL.Add('IGNORE 1 LINES');
  ZQuery1.SQL.Add('(`id`, `asunto`, @num1, @num2)');
  ZQuery1.SQL.Add('SET `num1`=CONVERT(replace(@num1, ",", "."), decimal(10,3)), ');
  ZQuery1.SQL.Add('    `num2`=CONVERT(replace(@num2, '','', ''.''), decimal(10,3))');

  ZQuery1.ParamByName('P1').Value := Edit1.text;
  ZQuery1.ExecSQL;

como se aprecia en el código la línea de num1, usa las dobles comillas y para la línea de num2 las comillas simples. Por lo que las comillas no creo que sean el problema, pues se puede usar unas u otras independientemente

En cuanto a lo del parámetro P1 a mi también me ha funcionado usándolo desde el componente de QUERY de DELPHI :-).

Para poder ayudarte mas, indica el error exacto que obtienes
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
Longitud máxima de datos numéricos Drakyto Varios 1 15-05-2010 01:44:42
Sacar datos numericos jon_g461 MS SQL Server 3 18-11-2008 17:01:40
Validación de Datos Numéricos TelloClos Conexión con bases de datos 4 05-12-2007 03:40:44
Datos NumÉricos jadelphi Varios 1 31-03-2005 16:49:07
Usar datos no númericos en un TDBChart Er_Manué OOP 0 27-08-2003 19:58:48


La franja horaria es GMT +2. Ahora son las 04:27:48.


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