Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 30-05-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por TheRafa Ver Mensaje
el problema es al cargarlo en ejecución, que donde debe ir una comilla me mete dos comillas simples
Pero es que eres tú mismo quien mete la otra comilla:

Código Delphi [-]
for I := 1 to Length(Cad) do
    begin
        Aux := Aux+Cad[i];
        if Cad[i] = '''' then Aux := Aux+'''';
    end;

Si Cad[i] es una comilla, la línea

Código Delphi [-]
Aux := Aux+Cad[i];

la pone en Aux, PERO, la siguiente línea:

Código Delphi [-]
if Cad[i] = '''' then Aux := Aux+'''';

la vuelve a poner.

La verdad es que no tienes porqué agregar nada. En Delphi pones doble comilla simple para que el compilador entienda que es una comilla, ya que en pascal las cadenas van entre comillas simples. Pero esto sólo es necesario cuando escribes la cadena directamente en el código Delphi.

En tu función CadenaSQL, ya recibes una cadena y lo que deberías hacer con esas comillas sería, en todo caso, "escaparlas" con una diagonal \ o con el caracter de escape de tu manejador de bases de datos, pero no colocando una comilla extra porque éso sólo Delphi lo entiende, no el gestor de bases de datos.

Por otro lado, "escapar" tú mismo ese tipo de caracteres no es para nada recomendable. Por ello es que debes usar parámetros. Y cuando digo parámetros no mer refiero a valores que se pasen en tiempo de ejecución, sino a valores que se pasan a la sentencia SQL.

Algo así (aunque depende un poco de los componentes que uses para acceder a BD):

Código Delphi [-]
Query.SQL.Text := 'select * from usuario where nombre = :nombre';
Query.ParamByName('nombre').AsString := 'Donald';
Query.Open;

LineComment Saludos
Responder Con Cita
 



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
Funciones para limpiar y buscar una cadena en otra cadena o en un fichero xaguilars Trucos 1 29-07-2007 22:20:14
Funcion para borrar la cadena que aparesca repetida dentro de otra cadena flystar Varios 1 02-07-2007 23:51:10
Funcion para buscar cadena dentro de otra cadena y el numero de veces flystar Varios 3 02-07-2007 22:48:08
Preparar BD sin dependencias Deiv Varios 10 24-01-2007 02:17:17
Preparar pagina en PReport ElCherchu Impresión 5 23-06-2003 16:15:52


La franja horaria es GMT +2. Ahora son las 01:22:34.


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