foxer_juan,
Cita:
|
Empezado por foxer_juan
...Mi dilema esta en que no puedo copiar los datos de las consultas a variables...
|
Cita:
|
Empezado por foxer_juan
...el campo 'direccion' de la tabla 'contactos' es de tipo char (100)...
|
Te comento:
1- El ejemplo mostrado en el
Msg #3,
Realiza una consulta a una BD SQLite 3 por medio de ZeosLib y tiene por finalidad mostrar la conexión y visualización de datos así como brindar un medio para probar la BD en cuestión.
2- La asignación de datos de una BD a un tipo TDataSet, String, Integer, Double, TDateTime, etc es igual que con cualquier tipo de variable, es decir:
Código Delphi
[-]
VariableX := ZQuery1.FieldByName('VariableX').Value;
2- Te sugiero revisar el link propuesto en el
Msg #3, en el se hacen asignaciones
de campos de una BD SQLite 3 a campos de un TDataSet.
Revisa este código:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset,
ZAbstractConnection, ZConnection;
type
TForm1 = class(TForm)
ZConnection1: TZConnection;
ZQuery1: TZQuery;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Edit4: TEdit;
Label5: TLabel;
Edit5: TEdit;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ZConnection1.Database := ExtractFilePath(Application.ExeName) + '\' + 'TestDB.s3db';
ZConnection1.Protocol := 'sqlite-3';
ZConnection1.Connect;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
with ZQuery1 do
begin
Connection := ZConnection1;
Close;
Sql.Clear;
if Edit5.Text <> EmptyStr then
begin
Sql.Text := 'Select * from Users Where CodUser = :P1';
ParamByName('P1').Value := Edit5.Text;
end
else
begin
Sql.Text := 'Select * from Users';
end;
Open;
if (ZQuery1.RecordCount >= 1) then
begin
Edit1.Text := FieldByName('CodUser').Value;
Edit2.Text := FieldByName('Name').Value;
Edit3.Text := FieldByName('Address1').Value;
Edit4.Text := FieldByName('Address2').Value;
end
else
MessageDlg('No existen datos a consultar',mtInformation,[mbOK],0);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text := EmptyStr;
Edit2.Text := EmptyStr;
Edit3.Text := EmptyStr;
Edit4.Text := EmptyStr;
Edit5.Text := EmptyStr;
end;
end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32,
Consulta una BD SQLite 3 y muestra su resultado en componentes TEdits, como se muestra en la siguiente imagen:
La estructura y datos de la BD SQLite 3 del ejemplo es la siguiente:
Espero sea útil
Nelson.