Ver Mensaje Individual
  #1  
Antiguo 01-05-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Reputación: 17
sdiaz1983 Va por buen camino
Talking Clase Que Guarde Datos En Base De Datos

Compañeros del foro, muy buen dia, antes que nada quiero mostrarles un codigo de una clase que llevo que lo que busca es guardar datos de una base de datos:

Código Delphi [-]
unit capturar;
interface
uses Classes, DBTables, QControls, SysUtils,Windows, Messages, Variants,Graphics, Controls, Forms, Dialogs, StdCtrls;
  type
  Tcapturar=class(TWidgetControl)
  private
    QryCapturar: TQuery;
    Parametro : String;
    Contarcampos: Integer;
  Public
    property Parametr: String read Parametro write Parametro;
    procedure contar(RutaArch,Tabla: shortstring);
    procedure consultar(RutaArch,Tabla,Campo,Param: shortstring);
    procedure grabar(RutaArch,Tabla: shortstring;  edits: array of string);
  end;
implementation
procedure TCapturar.contar(Rutaarch,Tabla: shortstring);
    begin
    if QryCapturar= nil then QryCapturar:=TQuery.Create(owner);
    QryCapturar.DatabaseName:=RutaArch;
    QryCapturar.SQL.Text:='select * from '+Tabla+'';
    QryCapturar.RequestLive:=True;
    QryCapturar.Active:=True;
    if(QryCapturar.RecordCount>0) then
       begin
       Showmessage(IntToStr(Qrycapturar.FieldCount));
       Contarcampos:=QryCapturar.FieldCount;
       end
       else
       begin
       Showmessage(IntToStr(QryCapturar.FieldCount));
       Contarcampos:=QryCapturar.FieldCount;
       end;
    end;
Procedure TCapturar.consultar(RutaArch,Tabla,Campo,Param: shortstring);
 begin
   Parametro:=Param;
   if QryCapturar= nil then QryCapturar:=TQuery.Create(owner);
   QryCapturar.Active:=False;
   QryCapturar.DatabaseName:=RutaArch;
   QryCapturar.SQL.Text:='select * from '+Tabla+' where '+campo+'=:P1';
   QryCapturar.Params[0].AsString:=Parametro;
   QryCapturar.RequestLive:=True;
   QryCapturar.Active:=True;
   if(QryCapturar.RecordCount>0) then
    begin
     MessageDlg('REGISTROS YA EXISTE EN EL SISTEMA',mtError,[mbOk],0);
    end;
  end;
   procedure TCapturar.grabar(RutaArch,Tabla: shortstring;  edits: array of string);
    begin
       if QryCapturar= nil then QryCapturar:=TQuery.Create(owner);
       QryCapturar.Active:=True;
       QryCapturar.DatabaseName:=RutaArch;
       QryCapturar.AppendRecord([Edits[0],Edits[1],Edits[2]]);
       MessageDlg('REGISTRO GUARDADO CORRECTAMENTE',mtInformation,[mbOk],0);
       QryCapturar.Active:=False;
    end;
end.

Hasta ahi la clase me guarda datos pero si yo tengo solo tres edits, y los campos que tengo en la base de datos son tres, la pregunta que les queria hacer es como hago para que con el metodo que ya esta que cuenta los campos lo puedo usar en conjunto con el metodo de guardar para que me guarde los campos de acuerdo a lo que obtiene ese metodo.

Me explico un poco, o sea que ese metodo de guardar sea general, o sea que yo no conozca previamente el numero de campos sino que el sistema haga ese calculo y en base a eso guarde los datos necesarios.

mil gracias por su ayuda


Sergio Diaz Ribero
Responder Con Cita