Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-03-2009
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
Busqueda generica en tabla y query

Hola que tal....
Normalmente para buscar un elemento en una tabla uso locate y para buscar un elemento en un query lo hago parametrizando la consulta...
Código Delphi [-]
query.params.paramvalues['NombreParametro']:=ValorABuscar;
ahora bien lo que quiero es hacer algo generico, me gustaria parametrizar las tablas algo asi

Código Delphi [-]
Function Buscar_Registro(CampodelaTabla:Variant;Tabla:TDataSet):boolean;
begin

  Abrir(Tabla);
    If Tabla.Locate(QuotedStr(CampodelaTabla),Codigo,[]) then  Result:=true
                  else
                  Begin
                  Application.MessageBox('Registro no encontrado','Aviso al Usuario',MB_ICONWARNING+MB_OK);
                  Result:=false;
                  End;

end;

el problema con este codigo es eso muchos parametros, lo que quisiera es poder parametrizar la tabla

Código Delphi [-]
Function Buscar_Registro(Valor:string;Tabla:TDataSet):boolean;
begin

  Tabla.Close
 Tabla.param.paramvalues(Quotedstr(NombreParametro):=valor
 Tabla.open;

if not Tabla.eof the  Result:=true
                  else
                  Begin
                  Application.MessageBox('Registro no encontrado','Aviso al Usuario',MB_ICONWARNING+MB_OK);
                  Result:=false;
                  End;

end;

el problema es que el tipo tabla no me acepta la propiedad params sin embargo si dentro de cualquier procedure hago esto

Código Delphi [-]
 Gente.Close
 Gente.param.paramvalues(Quotedstr(NombreParametro):=valor
 Gente.open;
funciona, la unica diferencia es que estoy llamando la tabla por su nombre y no de forma generica .....

Gracias por sus comentarios ....
Responder Con Cita
  #2  
Antiguo 19-03-2009
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Para el parámetro tabla puedes utilizar un tipo más generico, cómo por ejemplo el TComponent. Y para pasar diferentes parámetros a la consulta, puedes hacer una lista especial de registros.
Código Delphi [-]
procedure buscar_valor(ComponenteTabla: TComponent; Valor: Variant);
begin
  if ComponenteTabla.InheritsFrom('TQuery') then
     ComponenteTabla.params...
  else
     ComponenteTabla.Locate(... 
end;

[EDITO]
Cuando me refiero a una Lista Especial de Registros, quiero decir a un TList compuesto por punteros a tipos de datos formados Records;
Código Delphi [-]
Type
  Tparametros_para_procedimientos = record
    nombre_del_param: String;
    valor_del_param: Variant;
  end;

 Pparametros_para_procedimientos = ^Tparametros_para_procedimientos;
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web

Última edición por Chris fecha: 19-03-2009 a las 17:45:38.
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
QUICKREPORT tabla generica con registros variables el_luyi Impresión 0 18-06-2008 16:25:04
busqueda query mjjj Varios 3 29-09-2007 01:10:03
Busqueda en un Query carlosegs11 SQL 18 30-06-2007 00:53:42
Query restringir busqueda el_barto Conexión con bases de datos 12 24-06-2005 14:40:48
busqueda con un query davidgaldo Conexión con bases de datos 3 14-11-2003 02:14:09


La franja horaria es GMT +2. Ahora son las 22:12: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