Собственно сабж. Есть вот такой код реляционной БД (с sqlite) (см. ниже) но в Лазарусе он не собирается, выдает
db.pas(9,24) Fatal: Circular unit reference between db and sqlite3conn
Сам код этой БД:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, sqlite3conn, sqldb, db, FileUtil, LResources, Forms,
Controls, Graphics, Dialogs, DBGrids, DbCtrls, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
ButtonCancel: TButton;
ButtonCommit: TButton;
Datasource1: TDatasource;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Label1: TLabel;
SQLite3Connection1: TSQLite3Connection;
SQLQuery1: TSQLQuery;
SQLTransaction1: TSQLTransaction;
procedure ButtonCancelClick(Sender: TObject);
procedure ButtonCommitClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1. Caption:='SQLite database with DBNavigator';
SQLite3Connection1.DatabaseName:='Student.db';
SQLite3Connection1.Connected:=true;
SQLTransaction1.Database:=SQLite3Connection1;
SQLQuery1.Database:=SQLite3Connection1;
SQLQuery1.SQL.text:='Select * FROM Student';
SQLQuery1.open;
DataSource1.DataSet:=SQLQuery1;
DBGrid1.DataSource:=DataSource1;
DBNavigator1.DataSource:=DataSource1;
DBEdit1.DataSource:=Datasource1;
DBEdit2.DataSource:=Datasource1;
DBEdit3.DataSource:=Datasource1;
DBEdit4.DataSource:=Datasource1;
DBEdit1.DataField:='StudentID';
DBEdit2.DataField:='First';
DBEdit3.DataField:='Second';
DBEdit4.DataField:='Form';
DBGrid1.AutoFillColumns:=true;
end;
procedure TForm1.ButtonCommitClick(Sender: TObject);
begin
SQLQuery1.Edit;
SQLQuery1.UpdateMode:=UpWhereChanged;
SQLQuery1.ApplyUpdates;
SQLTransaction1.Commit;
SQLQuery1.Close;
SQLQuery1.Open;
end;
procedure TForm1.ButtonCancelClick(Sender: TObject);
begin
SQLQuery1.Close;
SQLQuery1.Open;
end;
initialization
{$I unit1.lrs}
end.
Дело в том, что с самим Лазарусом знаком лишь поверхностно, но нужно разработать БД. Ну очень нужно.
Перемещено mono из general