Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 01-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Si vas a buscar por muchos parámetros, yo construiría varias funciones para no complicar mucho el código:


Código Delphi [-]

procedure SqlPrincipal;
begin

query1.Sql.Text := 'Select * from tabla WHERE '+ 
                          casa_comercial;
end;

function casa_comercial:string;
var tmp:string;
begin
 if editcasaComercial.text = EmptyStr then
    result := emptyStr ; // devolvemos una cadena vacia
 else
   result := ' casa_comercial = ' + quotedStr(editcasaComercial.text);

  tmp := orden_compra;
  if tmp <> emptystr then
    result := result + ' and ' + tmp;
 // concatenamos con AND, OR, o lo que haga falta las diferentes condiciones

 tmp := carta_orden;
  if tmp <> emptystr then
    result := result + ' and ' + tmp;
 // concatenamos con AND, OR, o lo que haga falta las diferentes condiciones
  
end;
    
end;

function orden_compra:
begin
  if editOrdenCompra.text = emptystr then
    result := emptystr
  else
    result := ' orden_compra = '+ quotedStr(editOrdencompra.Text);
end;


function carta_orden:
begin
  if editCartaOrden.text = emptystr then
    result := emptystr
  else
    result := ' carta_orden = '+ quotedStr(editCartaOrden.Text);
end;

Vamos el famoso "divide y vencerás". Cada función se encarga de una pequeña parte (cada condición) y despues devuelve el string con el SQL que corresponde con esa condición.

En este caso es mejor no usar parámetros (parambyname), los parámetros no aportará mejora alguna, porque de una ejecución a otra varía la SQL y con ello el número de parámetros.

Antes de hacer un Query1.Open, haz un Memo1.Lines.Add(query1.Sql.Text) para ver que toda la SQL está correcta, los apostrofes, las uniones con "and" y "or", los espacios en blanco, etc. Así no te mareas mucho

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: 01-06-2006 a las 20:29:37.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Novato (Busqueda de registros con TEdit y DBGrid) enecumene Conexión con bases de datos 3 27-05-2006 20:04:12
busqueda por distintos parametros raffagia Varios 10 26-08-2005 11:45:51
busqueda por dos parametros rolando_s Conexión con bases de datos 1 03-03-2005 12:12:20
Pregunta de novato.. pero de muy novato CFPA86 PHP 1 08-08-2004 06:53:42
Muy Novato miguel_fr SQL 5 09-04-2004 15:54:00


La franja horaria es GMT +2. Ahora son las 18:36:55.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi