Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-04-2011
oktubre oktubre is offline
Miembro
 
Registrado: sep 2010
Posts: 10
Poder: 0
oktubre Va por buen camino
consulta sobre indices autonumericos

Hola de nuevo, ya que estoy aprovecho para preguntar varias cosas, ayer me fue bien con la ayuda que me dieron así que aquí traigo otra.

haciendo unas cosultas dinámicas me encontré con que no puedo hacer la siguiente consulta a PARADOX

Código SQL [-]
 
SELECT * FROM tabla WHERE UPPER(campo) LIKE UPPER("%1%")
tampoco funcionan el clásico de Mysql " LIMIT 0,1"

Parece ser que de Simple Query Laguage de simple esta teniendo poco.

la unica forma de consultar con LIKE es a un campo que no sea índice principal. el Upper directamente no funciona.

hay modo de suplir esto?
Responder Con Cita
  #2  
Antiguo 17-04-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola oktubre.

No tengo experiencia en Paradox, pero si bién es sabido que no es una maravilla, suponía que tampoco podía ser tan desastroso. Así que leí un poco sobre la sintáxis SQL que soporta.Y obtuve estos resultados sobre la tabla parts.db que viene en los ejemplos de Delphi 7.
Cita:
el Upper directamente no funciona
La sentencia UPPER funcionó perfectamente:
Código Delphi [-]
procedure TForm1.btAlfaClick(Sender: TObject);
begin
  with Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM parts');
    SQL.Add('WHERE UPPER(Description) LIKE UPPER(:PATRON)');
    ParamByName('PATRON').AsString:= Edit1.Text+'%';
    Open;
  end;
end;

Cita:
la unica forma de consultar con LIKE es a un campo que no sea índice principal.
En cuanto al índice también lo pude consultar con la cláusula LIKE, y funcionó correctamente.
Lo que hay que tener en cuenta que si se trata de un campo numérico hay que hacer la conversión correspondiente, ya que LIKE se usa para comparar una expresión de cadena de caracteres con un modelo.
Código Delphi [-]
procedure TForm1.btNumClick(Sender: TObject);
begin
  with Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM parts');
    SQL.Add('WHERE CAST(PartNo AS VARCHAR(4)) LIKE :PATRON');  // (PartNo es la clave primaria )
    ParamByName('PATRON').AsString:= Edit1.Text+'%';
    Open;
  end;
end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 19-04-2011 a las 06:33:16.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pregunta sobre índices en tablas DBF salvica Tablas planas 12 16-06-2008 23:52:31
Autonumericos crc2005 Tablas planas 7 23-10-2006 21:02:19
Consulta sobre Indices marceloalegre SQL 1 13-07-2005 17:19:08
Tengo una duda sobre indices adr_001 Varios 2 14-11-2003 08:07:47
Autonumericos NuncaMas Tablas planas 1 14-10-2003 20:15:37


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


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