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 11-10-2008
rochi rochi is offline
Miembro
 
Registrado: nov 2004
Ubicación: mvd, uruguay
Posts: 57
Poder: 20
rochi Va por buen camino
Automatizar seteo de parámetros para consultas

Hola ya vi como hacer una búsqueda incremental, ahora bien, lo que quisiera es tener una ComboBox donde el usuario seleccione por cual parámetro quiere buscar. Que al seleccionar, arme la sentencia SQL con el nombre del parámetro y el valor.

Es decir, para presentar el parámetro al usuario, quiero que vea la palabra "Código cliente", pero el nombre del campos es Cod_Cli, y es con la que debo 'armar' la sentencia SQL o CommandText.

¿Cómo resuelven uds estas cosas?.

Saludos, ro
Responder Con Cita
  #2  
Antiguo 11-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Hay dos formas:
- Ponerle en el combo el mismo nombre que tiene el campo, y otro listbox con los simbolos ">", "<", "="; después de eso un TEdit donde el usuario pondrá la cadena de búsqueda. Esos 3 controles se pueden crear tantas veces como el usuario quiera para marcar varios criterios de búsqueda a la vez (usando frames, por ejemplo).

- Hacer la interfaz más bonita, poniendo un grid pequeñito que muestre el código de cliente y el nombre; el usuario marcará el que quiera. Para las demás opciones de búsqueda, puedes usar RadioButtons, checkboxes etc

La última vez que hice algo así, ricé el rizo. Mediante la JVCL, creé un menú calcado a la pantalla de búsqueda de windows XP (sin el muñeco del perrito ). Potente y bonito.

El primer caso no resulta muy atractivo para el usuario final, (tampoco cómodo); el segundo caso, es más atractivo, pero tardarás más en hacerlo.

En cuanto a armar el SQL, yo parto en varias funciones el sql, (aunque el ejemplo es sencillo, en la realidad se complica bastante, y una sola rutina es enorme, con un montón de variables, lo prefiero así:
Código Delphi [-]
const campos = 'select campo1, campo2 campo3 from tabla ';
var TheSql :String;
       where :string;
begin
TheSql := campos + periodoFechas + Cliente + Pagado ;
end;

function Cliente :string;
begin
     Result :=  ' cliente  = ' inttostr(dbgrid.columns[0].Fieldbyname('cod_cli').asstring;
end;

function Pagado:string
begin
  if chkPagado.checked then
     result := ' and pagado = 1';
  else
   Result := '';
end;
Periodofechas obliga a elegir entre dos fechas (datetimepickers) así siempre me aseguro que tiene una condición en el where y las demás opciones que vienen por detrás, no darán error de sintaxis, como cliente y/o pagado, siempre incluyen el 'and' que une las cláusulas.


Hay algunos componentes de terceros que sirven para construir sqls, te pueden ayudar un poco más.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 11-10-2008 a las 11:32:54.
Responder Con Cita
  #3  
Antiguo 11-10-2008
rochi rochi is offline
Miembro
 
Registrado: nov 2004
Ubicación: mvd, uruguay
Posts: 57
Poder: 20
rochi Va por buen camino
Gracias por los ejemplos , voy a estudiarlos es una opción interesante. El tema que me cuesta evitar son los "if", para identificar el tipo de los parámetros: integer, string, etc, como que no queda otra, creería.
Salvo que en diferentes componentes tenga los diferentes tipos de parámetros.

Buscando encontré el JVDBComboBox, a c/campo le asocia un string, entonces hago mas amigable la selección del parámetro al usuario, ve 'código' y no 'cod_cli'. Pero tampoco me salvo de los "ifs" porque puede haber enteros o strings.

Saludos, ro
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
usar una misma sql para realizar varias consultas Patricio Varios 1 17-09-2008 19:13:07
consultas con y sin parámetros. fjardelphi Conexión con bases de datos 4 06-05-2005 22:49:15
Parametros en consultas Walterdf Conexión con bases de datos 2 09-03-2005 21:31:30
Programa para automatizar la inserción en BD?? burasu Firebird e Interbase 1 26-08-2004 16:03:28
Consultas SQL para Paradox azaagh Conexión con bases de datos 8 07-06-2004 22:36:14


La franja horaria es GMT +2. Ahora son las 16:05:53.


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