I try manual zeoslib and work fine, if I all put in event on click.
I have second example but don' t work.
unit Unit2;
interface
uses
Classes, SysUtils,sqldb,db,Types,Dialogs,ZConnection,
ZDataset, ZSqlProcessor, ZStoredProcedure,DBGrids;
type
connectiom=class(TObject)
public
function q(query: string): TDataSet;
private
c : TZConnection;
qu : TZQuery;
ds : TDataSource;
end;
implementation
function connectiom.q(query: string): TDataSet;
begin
c := TZConnection.Create(nil);
qu:=TZQuery.Create(nil);
ds:=TDataSource.Create(nil);
c.Catalog:='postgres';
c.Database:='postgres';
c.HostName:='127.0.0.1';
c.Password:='postgres';
c.port:=5432;
c.Protocol:='postgresql-8';
c.User:='postgres';
qu.Connection:=c;
qu.SQL.Text:=query;
ds.DataSet:=qu;
c.Connect;
q.Active:=true;
end;
end.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
DBGrids, ZConnection, ZDataset, unit2, db;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
DBGrid1: TDBGrid;
procedure Button1Click(Sender: TObject);
private
p : connectiom;
ds : TDataSource;
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
p:=connectiom.Create;
ds:=TDataSource.Create(nil);
ds.DataSet:= p.q('select * from my_table');
DBGrid1.DataSource:= ds;
end;
end.
what is wrong in unit1?
Is unit2 correct?
Can function return dataset?