ZeosLibを使ったFireBird 2.5 の接続サンプルです。
データベースは、初回にクリックした際に作成します
Delphi2005と 10.1 starterの両方で動作確認しました
// 1. 新規プロジェクトをそのまま保存してください
// exeの場所に データ test01.fdb が保存されます。
// 2. ZConnection1 , ZQuery1, DataSource1
// Button1, DBGrid1 を配置し 下記のコードを貼り付けます
// 3. Button1のクリックイベントを関連付けます
// 4. ZConnection1.Protocol バージョンが違う場合は手動で修正します
// 5. 実行して、ボタンを押すと テーブル1 が表示されます。
uses ZCompatibility;
procedure TForm1.Button1Click(Sender: TObject);
var
db_filename : string;
code_page : string;
begin
ZConnection1.Disconnect;
db_filename := ExtractFilePath(Application.ExeName) + 'test01.fdb';
{$IFDEF UNICODE}
code_page := 'cCP_UTF16';
{$ELSE}
{$IFDEF FPC}
code_page := 'cCP_UTF8';
{$ELSE}
code_page := 'CP943C';
{$ENDIF}
{$ENDIF}
ZConnection1.ClientCodepage := code_page;
ZConnection1.ControlsCodePage := cCP_UTF16;
ZConnection1.Protocol := 'firebird-2.5';
ZConnection1.Database := '127.0.0.1:' + db_filename;
ZConnection1.User := 'sysdba';
ZConnection1.Password := 'masterkey';
ZConnection1.AutoEncodeStrings := False;
if Not FileExists(db_filename) then
begin
with ZConnection1 do
begin
Properties.Clear;
Properties.Values['dialect'] := '3';
Properties.Values['codepage'] := code_page;
Properties.Values['createNewDatabase'] := 'CREATE DATABASE '
+ QuotedStr(Database)
+ ' USER ' + QuotedStr(User)
+ ' PASSWORD ' + QuotedStr(Password)
// + ' PAGE_SIZE 4096'
+ ' DEFAULT CHARACTER SET UNICODE_FSS;';
try
Connect;
ExecuteDirect('CREATE TABLE "テーブル1" ("名前" VARCHAR(100) CHARACTER SET UNICODE_FSS);');
if Not AutoCommit then
Commit;
ExecuteDirect('INSERT INTO "テーブル1" ("名前") VALUES(''緑茶'');');
ExecuteDirect('INSERT INTO "テーブル1" ("名前") VALUES(''紅茶'');');
ExecuteDirect('INSERT INTO "テーブル1" ("名前") VALUES(''珈琲'');');
if Not AutoCommit then
Commit;
finally
Properties.Values['createNewDatabase'] := '';
end;
end;
end;
if Not ZConnection1.Connected then
ZConnection1.Connect;
DBGrid1.DataSource := DataSource1;
DataSource1.DataSet := ZQuery1;
ZQuery1.Connection := ZConnection1;
ZQuery1.SQL.Text := 'SELECT * FROM "テーブル1";';
ZQuery1.Open;
end;
|