Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cambiar comillas dobles por dos simples (https://www.clubdelphi.com/foros/showthread.php?t=62693)

Besto 08-01-2009 16:02:12

Cambiar comillas dobles por dos simples
 
Hola,

necesito saber como reemplazar las comillas dobles por dos simples para guardar un string en la base de datos. Si guardo comillas dobles luego me da error al hacer una consulta con mysql.

He intentado el StringReplace pero me da error.

He estado buscando por los foros pero no he encontrado nada.

dec 08-01-2009 16:13:21

Hola,

Cita:

He intentado el StringReplace pero me da error.
¿Qué error?

jhonny 08-01-2009 16:14:07

Acabo de hacer la siguiente prueba y noté que reemplaza bien...

Código Delphi [-]
var
  sql: String;
begin
  sql :=  'select campo from campo = "ejemplo"';
  sql :=  StringReplace(sql, '"', '´', [rfReplaceAll]);
  ShowMessage(sql);
end;

Si no te funciona el hecho de adaptar dicho codigo, entonces... ¿Cual es el error que te muestra?

Besto 08-01-2009 16:20:05

En realidad el problema inicial que he tenido ha sido que al hacer una consulta si dentro del string tengo comillas dobles (por ejemplo 2" Lbs) la consulta me da un error de mysql. Yo entiendo que es porque encuentra la doble comilla y termina el string con lo que el resto queda dentro de la consulta sin estar entre comillas.

Se me habia ocurrido cambiar la doble comilla por dos simples pero de las que usa Delphi para indicar un string (') con lo cual el stringreplace tambien me falla.

Cualquier otra idea para evitar el error de la consulta me vendria bien.

cmm07 08-01-2009 16:31:47

tambien puedes hacer la consulta con QuotedStr() mira:
yo he trabajado mucho con MySQL y las consultas la hago así sin problemas
Código Delphi [-]
var
  sql: String;
begin
  sql :=  'select campo from tabla where campo = '+QuotedStr('Ejemplo');
  ShowMessage(sql);
end;

PD: Estoy migrando a SQL Express 2008

el que te dio jonny esta mal en relacion a lo que tú quieres hacer , debería ser así:

Código Delphi [-]
var
  sql: String;
begin
  sql :=  'select campo from campo = "ejemplo"';
  sql :=  StringReplace(sql, '"', '''', [rfReplaceAll]);
  ShowMessage(sql);
end;

aunque te recomiendo al 100% usar la funcion QuotedStr...

Caro 08-01-2009 16:37:19

Hola, el stringReplace no debería fallarte, sería bueno que pusieras el codigo que estas utilizando, pero no es necesario cambiar por las comillas simples creo, acabo de hacer una prueba y no da error al insertar o hacer una consulta con comillas dobles en mysql.

Código Delphi [-]
  ......
  Query.Sql := 'Select * from campo = '+QuotedStr('2"');
  ......

Saluditos

Besto 08-01-2009 16:44:47

A pesar de que lo habia probado y no me ha funcionado bien algo debia hacer mal, porque ahora he vuelto a probar con la funcion QuotedStr y parece que va bien.

Voy a hacer más pruebas, pero creo que funcionara. Lo malo es que ahora me tocará cambiar las comillas que usaba en las consultas por QuotedStr.

Muchas gracias a todos.


La franja horaria es GMT +2. Ahora son las 04:45:07.

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