Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-03-2005
COCOL COCOL is offline
Miembro
 
Registrado: feb 2005
Posts: 16
Poder: 0
COCOL Va por buen camino
Question 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...
Responder Con Cita
  #2  
Antiguo 16-03-2005
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
No se si funcionará, pero por qué no pruebas a poner QuotedStr(O'Neal)
Responder Con Cita
  #3  
Antiguo 16-03-2005
zemog76 zemog76 is offline
Miembro
 
Registrado: ene 2005
Ubicación: Elena - Cba. - Argentina
Posts: 11
Poder: 0
zemog76 Va por buen camino
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
__________________
Hasta luego.

Guillermo
Responder Con Cita
  #4  
Antiguo 16-03-2005
Avatar de unreal4u
unreal4u unreal4u is offline
Miembro
 
Registrado: nov 2004
Ubicación: Temuco, Chile
Posts: 105
Poder: 20
unreal4u Va por buen camino
Lightbulb

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
__________________
Código Delphi [-]
procedure Gracias; 
begin
 if Respuesta_a_Mensaje = TRUE then showmessage('Ojalá que te sirva')
 else showmessage('Gracias por responder... :-)');
end; // (c) unreal4u
Responder Con Cita
  #5  
Antiguo 16-03-2005
Avatar de unreal4u
unreal4u unreal4u is offline
Miembro
 
Registrado: nov 2004
Ubicación: Temuco, Chile
Posts: 105
Poder: 20
unreal4u Va por buen camino
Talking 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
__________________
Código Delphi [-]
procedure Gracias; 
begin
 if Respuesta_a_Mensaje = TRUE then showmessage('Ojalá que te sirva')
 else showmessage('Gracias por responder... :-)');
end; // (c) unreal4u

Última edición por unreal4u fecha: 16-03-2005 a las 15:54:18. Razón: de nuevo corrigo...
Responder Con Cita
  #6  
Antiguo 17-03-2005
COCOL COCOL is offline
Miembro
 
Registrado: feb 2005
Posts: 16
Poder: 0
COCOL Va por buen camino
Thumbs up Muchas gracias...solucione el problema..

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

StringReplace() de SysUtils

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 08:02:35.


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