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 09-02-2004
Novás Novás is offline
Miembro
 
Registrado: oct 2003
Ubicación: Galicia
Posts: 146
Poder: 21
Novás Va por buen camino
like '1*'

Hola a todos los forista:

Vereis, estoy trabajando con una base de datos Access y accedo a ella mediante BDE.

Cuanto intento ejecutar una consulta como la siguiente:

sql:='Select * from Productos where RefInterna like ' + '''' + TxtPatron.Text + '*' +'''';

para un valor 1 en TxtPatron.Text no saca ningún valor mientras q en la base de datos hay registros q empiecen por 1.

¿A qué puede ser debido? Muchas gracias...
__________________
Hay dos cosas infinitas: el Universo y la estupidez humana. http://www.cybertarjetas.net
Responder Con Cita
  #2  
Antiguo 09-02-2004
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Poder: 21
javiermorales Va por buen camino
Te lo digo de memoria, pero que recuerde debes poner la comilla simple y encerrada entre comillas simples.

sql:='Select * from Productos where RefInterna like ''' + TxtPatron.Text + '*'''

Ten en cuenta que son siempre comillas simples, aunque no recuerdo si son 3 ó 4 comillas lo que hay que poner.

sql:='Select * from Productos where RefInterna like '''' + TxtPatron.Text + '*''''

Un saludo
__________________
Se hace lo que se puede que siempre es menos de lo que se dice
Responder Con Cita
  #3  
Antiguo 09-02-2004
Avatar de javiermorales
javiermorales javiermorales is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 272
Poder: 21
javiermorales Va por buen camino
De todas maneras si no te dá ningún mensaje de error de sintaxis con lo que hacías, puede que se resuelva utilizando en lugar de * el %, recuerdo que en algún momento me encontré con un problema parecido.
__________________
Se hace lo que se puede que siempre es menos de lo que se dice
Responder Con Cita
  #4  
Antiguo 09-02-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
Solo añadir que, las comillas son 3 o 4 dependiendo de como se haga. Es decir, si lo haces como propone Novás son 4, pero si lo haces como propone Javier son 3. No obtante, para no liarse yo prefiero utilizar el QuotedStr o parámetros en la Query

Con QuotedStr quedaría algo así
Código:
sql := 'Select * from Productos where RefInterna like ' + QuotedStr(TxtPatron.Text + '%');
Con Parámetros quedaría algo así
Código:
Query.Sql.Text := 'Select * from Productos where RefInterna like :Texto';
Query.ParamByName('Texto').AsString := TxtPatron.Text + '%';
Responder Con Cita
  #5  
Antiguo 10-02-2004
jpcancino jpcancino is offline
Miembro
 
Registrado: ene 2004
Posts: 47
Poder: 0
jpcancino Va por buen camino
yo en vez de tanta comilla uso #39.
osea algo asi:

sql:='SELECT * FROM TABLA WHERE NOMBRE='+#39+EDIT1.TEXT+#39;

o en tu caso:

sql:='Select * from Productos where RefInterna like '+#39+ TxtPatron.Text +'%'+#39;

y es menos compicado en caso de que se te pierda una comilla

Saludos

PD: en codigo ascii #39 = '

Última edición por jpcancino fecha: 10-02-2004 a las 18:18:00.
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 06:15:44.


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