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 01-05-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 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
  #2  
Antiguo 02-05-2008
Northern Northern is offline
Miembro
 
Registrado: ene 2006
Posts: 211
Poder: 19
Northern Va por buen camino
Puedes poner alggo como:

Código Delphi [-]
procedure TForm1.PonerFields(const Values: array of const);
var
  I: Integer;
begin
  for I := 1 to High(Values) do ADOTable1.Fields[i].AssignValue(Values[i]);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  ADOTable1.Append;
  PonerFields(['uno', 'dos', 'tres', 'cuatro']);
  ADOTable1.Post;
end;


for I := 1 to High(Values) lo empiezo en 1 y no en 0 por si está puesto como autoincremental.


Saludos
Responder Con Cita
  #3  
Antiguo 03-05-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 17
sdiaz1983 Va por buen camino
Buen Dia

Hombr Emuchisimas Gracia Spor Su Ayuda, Voy Aprobarlo Le Aviso Cualquier Cosa.

Mil Gracias
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
Insertar Datos a un campo de la base de datos desde un DBEdit saltamirano Varios 11 12-12-2007 17:29:35
Crear base de datos y cargar datos desde delphi Albano MySQL 4 17-05-2007 20:01:18
Herramienta case para diccionario de datos de base de datos firebird mcalmanovici Firebird e Interbase 1 11-02-2007 15:17:37
Guardar en 1 base de datos SQL, datos procedentes de 2 tablas distintas adaypr C++ Builder 1 05-09-2006 11:56:33
Reto Para Expertos En Base De Datos Y Tipos De Datos.... (blob) frankmch Conexión con bases de datos 2 08-09-2003 19:44:52


La franja horaria es GMT +2. Ahora son las 14:41:14.


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