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 11-09-2008
LoganFenix LoganFenix is offline
Registrado
 
Registrado: sep 2008
Posts: 3
Poder: 0
LoganFenix Va por buen camino
Guardar datos de ADOquery

Hola soy nuevo en Delphi y estoy tratando de hacer un sistema de consultas jalando una base datos Excel, con este codigo logre que la base de datos se cargue en el Delphi ahora lo que necesito es que se se guarden los valores de cada campo en variables individuales. Desconozco la sentencia que se usa en Delphi para esto. ¿me podria ayudar?

Código Delphi [-]
unit Convertir;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids, ComCtrls, StdCtrls, typinfo;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ComboBox1: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    ListBox1: TListBox;
    StatusBar1: TStatusBar;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    ADOConnection1: TADOConnection;
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;

    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DisplayException(Sender: TObject; E: Exception);
    procedure ConnectToExcel;
    procedure FetchData;
    procedure GetFieldInfo;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//uses typinfo; //don't forget

procedure TForm1.FormCreate(Sender: TObject);
begin
  AdoConnection1.LoginPrompt := False;
  AdoQuery1.Connection       := AdoConnection1;
  DataSource1.DataSet        := AdoQuery1;
  DBGrid1.DataSource         := DataSource1;
  DBNavigator1.DataSource    := DataSource1;
  Application.OnException    := DisplayException;
end;

procedure TForm1.DisplayException(Sender: TObject; E: Exception);
begin
  StatusBar1.SimpleText := E.Message;
end;

procedure TForm1.ConnectToExcel;
var strConn :  widestring;
vCell:Variant;
begin
  strConn:='Provider=Microsoft.Jet.OLEDB.4.0;' +
           'Data Source=' + Edit1.Text + ';' +
           'Extended Properties=Excel 8.0;';

  AdoConnection1.Connected:=False;
  AdoConnection1.ConnectionString:=strConn;
  try
    AdoConnection1.Open;
    AdoConnection1.GetTableNames(ComboBox1.Items,True);
  except
    ShowMessage('Unable to connect to Excel, make sure '+
                'the workbook ' + Edit1.Text + ' exist!');
    raise;
  end;
 // vCell.WrapText := True;
end;(*ConnectToExcel*)


procedure TForm1.FetchData;
begin
  StatusBar1.SimpleText:='';

  ConnectToExcel;

  AdoQuery1.Close;
  AdoQuery1.SQL.Text:=Edit2.Text;
  try
    AdoQuery1.Open;
  except
    ShowMessage('Unable to read data from Excel, '+
                'make sure the query ' + Edit1.Text +
                 ' is meaningful!');
    raise;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  FetchData;
  
  //explained later
  GetFieldInfo;

end;

procedure TForm1.GetFieldInfo;
var
  i      : integer;
  ft     : TFieldType;
  sft    : string;
  fname  : string;
begin
  ListBox1.Clear;
  for i := 0 to AdoQuery1.Fields.Count - 1 do
  begin
    ft := AdoQuery1.Fields[i].DataType;
    sft := GetEnumName(TypeInfo(TFieldType), Integer(ft));
    fname:= AdoQuery1.Fields[i].FieldName;

    ListBox1.Items.Add(Format('%d) NAME: %s TYPE: %s',[1+i, fname, sft]));
  end;
end;


end.

Última edición por LoganFenix fecha: 11-09-2008 a las 16:29:51.
Responder Con Cita
  #2  
Antiguo 11-09-2008
Avatar de Ana María
Ana María Ana María is offline
Miembro
 
Registrado: ago 2008
Posts: 40
Poder: 0
Ana María Va por buen camino
No se si entendí bien tu pregunta, .... pero ensaya con esto depronto te sirve.
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;

  procedure DataSource1DataChange(Sender: TObject; Field: TField);
  private
  procedure CargarVariables;
    { Private declarations }
  public
    { Public declarations }
  end;

var
Form1: TForm1;
ValorCampo1ADOQuery : TipoCampo1;//Especificar el tipo de datos del //campo1
ValorCampo2ADOQuery : TipoCampo2;//Especificar el tipo de datos del //campo2
ValorCampoNADOQuery : TipoCampoN;//Especificar el tipo de datos del //campoN
//etc..etc...

implementation

{$R *.dfm}


procedure  TForm1.CargarVariables;
begin
ValorCampo1ADOQuery := ADOQuery1.FieldByName('Campo1').Value;
ValorCampo2ADOQuery := ADOQuery1.FieldByName('Campo2').Value;
ValorCampoNADOQuery := ADOQuery1.FieldByName('CampoN').Value;
// etc..etc
end;


procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
CargarVariables;
end;
Responder Con Cita
  #3  
Antiguo 12-09-2008
LoganFenix LoganFenix is offline
Registrado
 
Registrado: sep 2008
Posts: 3
Poder: 0
LoganFenix Va por buen camino
Muchas 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
Agregar Campo a ADOQuery para ingreso de datos mike_1979 SQL 4 21-08-2008 20:17:17
Como transferir datos de un ADOquery a un Formulario maru1981 OOP 10 30-07-2007 02:52:02
Modificar Datos con ADOQuery estopi Conexión con bases de datos 4 21-11-2006 16:25:56
ADOquery insertar datos sakuragi Conexión con bases de datos 3 08-12-2004 14:10:23
Pasar datos de un Adoquery a un ListBox1 danytorres Varios 6 09-05-2003 02:16:37


La franja horaria es GMT +2. Ahora son las 20:56:21.


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