FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Incluir comillas y singos en consulta sql
Hola amigos. Resulta que tengo una consulta donde quiero buscar parte de un texto, seria where(sinopsis like "%detalle%"), donde detalle es la variable que contiene la frase a buscar. El problema es que si tengo una frase a buscar, con comilla y los 2 puntos, me salta el error de sintaxis, ejemplo:
casa de: d'amico es una frase que me trae problemas, la comilla o apostrofe sola no, pero si previamente tiene ( : ) ahi me genera el error. Supongo que habria que adaptar la cadena detalle, de manera de evitar el problema en la consulta. Espero sus ayudas, saludos. |
#2
|
||||
|
||||
o también:
Aunque yo me inclino más por usar parámetros.
__________________
Última edición por ContraVeneno fecha: 02-07-2010 a las 18:16:41. |
#3
|
||||
|
||||
Se me ocurre que podrías cambiar los caracteres que te dan problemas por el signo de interrogación.
En el caso que comentas quedaría de la siguiente forma ?d?amico, create una función por donde pasar los string y que te lo guarde en otra variable con los caracteres ya cambiados. Un saludo. |
#4
|
||||
|
||||
Había dejado abierto el hilo y no me he dado cuenta de que ContraVeneno ya te había contestado, sigue sus consejos que seguro serán más útiles que los mios.
Un saludo. |
#5
|
|||
|
|||
ok, probare con los parametros, ahora bien, necesito por favor que me guien un poco más para completar la instruccion, mi linea de consulta para el query (es de tipo TAdoquery) es:
detalle, que es un edit que captura en detalle.text lo que se quiere buscar query.sql.text:='select * from tabla where (det like "%'+detalle.text+'%")'; Ahi necesitaria ver como arreglarlo para probar |
#6
|
|||
|
|||
Acabo de descubrir que el problema es otro, dejo la linea exacta ya que estaba posteando un ejemplo gral
peli_q1.Active:=false; peli_q1.SQL.Clear; peli_q1.SQL.Text:='Select * from TPeliculas where(peli_tit like "%'+info.Text+'%")and(peli_titori like "%'+info.Text+'%") order by peli_titori'; peli_q1.Active:=true; el problema es la condicion doble ya que con peli_q1.Active:=false; peli_q1.SQL.Clear; peli_q1.SQL.Text:='Select * from TPeliculas where(peli_tit like "%'+info.Text+'%") order by peli_titori'; peli_q1.Active:=true; no genera error |
#7
|
||||
|
||||
No se que gestor de base de datos usas, pero cuando yo hago un consulta con un like para encontrar dentro de un campo una cadena de texto tengo que utilizar comillas simples, al copiar tu ejemplo me sale que son comillas dobles (esta de aquí->"%'+info.Text+'%"<-y esta de aquí), yo te aconsejaría que, igual que en el ejemplo que te ha puesto ContraVeneno utilizaras el quotedstr que te añade las comillas simples a la cadena de string que le pases a esta función, en tu caso la comparación yo la pondría de la siguiente forma.
Por cierto, intenta utilizar las etiquetas de delphi para cuando pongas código así se verá más claro tu mensaje. Un saludo. |
#8
|
|||
|
|||
Cita:
|
#9
|
||||
|
||||
Además de la última recomendación que te hago, ¿has probado a cambiar los caracteres que te daban problemas por signos de interrogación como te comentaba en mi primera aportación?
Yo creo que con estados dos opciones sumadas no deberías tener ningún problema. Un saludo. Última edición por ElDioni fecha: 06-07-2010 a las 17:33:35. |
#10
|
|||
|
|||
No entiendo a qué te referís con cambiar a signos de admiración, lo que sí es que sacando ( " ) y poniendo quotedstr (de hecho probe con el select tal cual vos armaste) no genera error pero no busca correctamente.
|
#11
|
|||
|
|||
Perdón amigos, no me hacia la búsqueda correctamente porque era peli_tit or peli_titori, estaba poniendo ''and'' por lo que era imposible que encuentre 2 títulos iguales.
La solución es entonces utilizar quotedstr y quitar ( " ). Mil gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
String Con comillas | agonzalez | Varios | 14 | 03-03-2017 07:46:41 |
Problemas con las comillas al conformar una consulta SQL | kman | Varios | 13 | 19-08-2006 20:06:40 |
Las comillas de marras! | IPQ | Firebird e Interbase | 3 | 15-06-2006 16:26:45 |
Comillas y fechas | Carlex | SQL | 6 | 26-01-2006 03:22:02 |
Problema con comillas en Consulta SQL | COCOL | SQL | 5 | 17-03-2005 01:45:47 |
|