Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problema con comillas en Consulta SQL (https://www.clubdelphi.com/foros/showthread.php?t=19487)

COCOL 16-03-2005 03:39:16

Problema con comillas en Consulta SQL
 
Hola... tengo el siguiente problema...

Quiero insertar datos en un campo tipo alfanumérico...
pero delphi no me deja hacerlo cuando quiero insertar por ejemplo:

Insert Into Tabla(Nombre) Values (' O'Neal ')
y si se dan cuenta pues hay 3 comillas simples en una misma cadena...
y logicamente me marca error...


¿Cómo puedo resolver esto? si yo no se cuando algun usuario va ingresar
un nombre con comilla " ' "

Ojala me puedan ayudar... gracias...

Ivanzinho 16-03-2005 09:39:07

No se si funcionará, pero por qué no pruebas a poner QuotedStr(O'Neal)

zemog76 16-03-2005 13:00:34

A mi me pasó lo mismo. La forma en que lo solucioné fue cambiar la comilla simple por dos comillas simples, antes de pasar la cadena a la sentencia SQL.

Espero que te sea útil.


Guille

unreal4u 16-03-2005 15:41:14

aunque lo que yo siempre he ocupado es:

Código Delphi [-]
cadena := 'Insert Into Tabla(Nombre) Values (O ' + #39 + ' Neal)';

donde CHR(39) (ó #39) es el que corresponde a la comilla simple

unreal4u 16-03-2005 15:51:01

corrección respuesta anterior
 
Lo siento, no habia leido bien tu msg ... lo que puedes hacer también, es buscar ese caracter, y reemplazarlo por #39, hay una función que hace eso, pero en este momento no dispongo de delphi para buscarla, en todo caso, debería estar dentro de strings. En ese caso, mejor deberías hacer lo siguiente:

Código Delphi [-]
cadena := #39 + 'O' + #39 + 'Neal' + #39;
Insert Into Tabla(Nombre) Values (cadena);
Ahora, te recomiendo que mejores esto un poco y elimines la primera y la última comilla, esto lo puedes hacer primero haciendo un trim, luego ver si hay una comilla simple en la posición 0 (hay una función que te devuelve la posición de un caracter), y ver si hay otra en la "lenght(cadena) - 1", y después reemplazas simplemente las comillas restantes en el resto del string por " + #39 + " y listo. Si no puedes encontrar la función en la ayuda de delphi (porque ahora me acuerdo que parece que no la pillé), te recomiendo la JVC, donde estoy completamente seguro que existe esa función (Pues, porque la he ocupado antes).

Disculpen el desorden, pero después de 2 meses de vacaciones sin ni siquiera ver un computador, a uno se le olvidan algunas cosas jajaja

COCOL 17-03-2005 01:45:47

Muchas gracias...solucione el problema..
 
Gracias compañeros... pude resolver el problema utilizando la siguiente función:

StringReplace() de SysUtils

:D


La franja horaria es GMT +2. Ahora son las 16:20:03.

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