Ver Mensaje Individual
  #2  
Antiguo 14-02-2010
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.940
Reputación: 27
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Pues una buena manera de entender las cosas, especialmente si tienes el codigo fuente, es copiar & pegar y empezar a compilar y a depurar paso a paso, o seguir el tutorial al dedillo. De esa manera, con el tiempo, empezaras a comprender el metodo general.

Supongamos que tenemos 2 tablas, Clientes & Productos. Hago 1 clase que se encarge de todo lo que es conexion a BD, y luego heredo de ella asi:

Código Delphi [-]
type
TConexionBD =  class(TObject)
private
   function ExeSql(Sql:String):TDataSet;
public
   function RetornarSql:String;abstract;
   function RetornarWhere(ABuscar:String):String;abstract;
   function RetornarOrder:String;abstract;

  function Buscar(ABuscar:String):TDataSet;
end;

TClientes = class(TConexionBD)
/.... En la implementacion ../

function TClientes.RetonarSql:String
begin
    Result := 'SELECT Codigo,Nombre FROM Cliente';
end;

function TClientes.RetonarWhere(ABuscar:String):String
begin
    Result := 'Codigo Like "%' + ABuscar +'" OR Nombre Like "%' + ABuscar +'"';
end;

/* etc... */

Asi que la idea es que se crea una interface generica de acceso a los datos y en cada clase/forma (dependiendo como lo hagas) se implementa los detalles especificos, ya que como sabars, los campos de una tabla varian con respecto a las otras. Asi, es muy facil hacer ajustes especificos y terminan siendo sencillos.

Luego, el formulario de busqueda solo hace algo como:

Código Delphi [-]
  ClaseABuscar : = RetonarClase...
  dsResultados.datasource := ClaseABuscar.Buscar("jorge");
__________________
El malabarista.
Responder Con Cita