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 22-12-2003
armando armando is offline
Miembro
 
Registrado: dic 2003
Posts: 74
Poder: 21
armando Va por buen camino
Lightbulb como utilizo like

Hola a todos estoy trabajando con delphi 5 y paradox
Mi pregunta es la siguiente
Como puedo hacer una consulta utilizando el parámetro like y una variable
Es decir hago lo siguiente

Sin variable
DMR.mitabla.CLOSE;
DMR. mitabla .SQL.CLEAR;
DMR. mitabla .SQL.Add('SELECT*');
DMR. mitabla .SQL.Add('FROM ent1.db');
DMR. mitabla .SQL.Add('WHERE ENTRADA');
DMR. mitabla .SQL.Add('LIKE'+QUOTEDSTR(''+EDIT1.TEXT+'%'));
DMR. mitabla .OPEN;

Y todo sale bien
Pero
Con variable

DMR.mitabla.CLOSE;
DMR. mitabla .SQL.CLEAR;
DMR. mitabla .SQL.Add('SELECT*');
DMR. mitabla .SQL.Add('FROM ent1.db');
DMR. mitabla .SQL.Add('WHERE STATUS='INVENTARIO' AND ');
DMR. mitabla .SQL.Add('WHERE ENTRADA ');
DMR. mitabla .SQL.Add('LIKE'+QUOTEDSTR(''+EDIT1.TEXT+'%'));
DMR. mitabla .OPEN;

ME DA ERROR

ES DECIR NO SE COMO DECLARAR UNA VARIABLE EN SQL
PORQUE SI LO HAGO DIRECTAMENTE SIN UTILIZAR LIKE SI ME DA EL RESULTADO
HAAAAAAAAAAAAA¡¡
Y TAMBIEN YA LO HICE DE LA SIGUIENTE MANERA

VAR
A:STRING;
Begin

DMR.QENTXL.CLOSE;
DMR.QENTXL.SQL.CLEAR;
DMR.QENTXL.SQL.Add('SELECT*');
DMR.QENTXL.SQL.Add('FROM ent1.db');
DMR.QENTXL.SQL.Add('WHERE STATUS=A AND');
DMR.QENTXL.SQL.Add('WHERE ENTRADA');
DMR.QENTXL.SQL.Add('LIKE'+QUOTEDSTR(''+EDIT1.TEXT+'%'));
DMR.QENTXL.OPEN;

PERO TAMBIEN ME MARCA ERROR
PERO QUIERO UTILIZAR ELCODIGO????

MIL GRACIAS ESPERO SU AYUDA
Responder Con Cita
  #2  
Antiguo 22-12-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Primero quiero recomendarte que leas la Guía de Estilo. Despues quiero recomendarte, que cuando te de error una consulta SQL, veas como esta a quedado finalmente, si observas como va a quedar este SQL, podemos marcar que va a dar error, porque tiene dos cláusulas WHERE:

Código:
SELECT*
FROM ent1.db
WHERE STATUS='INVENTARIO' AND 
WHERE ENTRADA LIKE '%'
Además esto va a darte un error de compilación en la línea:
Código:
DMR.mitabla.SQL.Add('WHERE STATUS='INVENTARIO' AND ');
que supongo que querías poner algo como:
Código:
DMR.mitabla.SQL.Add('WHERE STATUS=' + INVENTARIO + ' AND ');
siendo INVENTARIO una variable del tipo String. Si esta variable contiene una cadena, lo recomendable va a ser que escribas:
Código:
DMR.mitabla.SQL.Add('WHERE STATUS=' + QuotedStr(INVENTARIO) + ' AND ');
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 22-12-2003
armando armando is offline
Miembro
 
Registrado: dic 2003
Posts: 74
Poder: 21
armando Va por buen camino
PERDON, PERO ES MI PRIMERA PREGUNTA
PERO SI, LE ECHO UN VISTAZO A Guía de Estilo.
PERO SOBRE TODO
GRACIAS
DELPHI.COM.AR
ASI QUEDO MI CODIGO
DMR.MITABLA.CLOSE;
DMR.MITABLA.SQL.CLEAR;
DMR.MITABLA.SQL.Add('SELECT*');
DMR.MITABLA.SQL.Add('FROM ent1.db');
DMR.MITABLA.SQL.Add('WHERE STATUS=' +QuotedStr('CADENA' );
DMR.MITABLA.SQL.Add('ENTRADA');
DMR.MITABLA.SQL.Add('LIKE'+QUOTEDSTR(''+EDIT1.TEXT+'%'));
DMR.MITABLA.OPEN;
Responder Con Cita
  #4  
Antiguo 22-12-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Incisto con la Guía de Estilo!!!

PD: A simple vista tu código tiene un par de errores:

Te falta un paréntesis en la línea:
Código:
DMR.MITABLA.SQL.Add('WHERE STATUS=' +QuotedStr('CADENA' );
Debes agregar un operador, por ejemplo AND, antes de la seguna condición, por ejemplo:
Código:
DMR.MITABLA.SQL.Add('AND  ENTRADA');
Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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 15:05: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