フォーラム


ゲスト  

ようこそ ゲスト さん。このフォーラムに投稿するには 登録が必要です。

ページ: [1]
トピック: [FireDAC] uInMemTableUtils
DEKO
管理者
投稿数: 2651
[FireDAC] uInMemTableUtils
on: 2015/06/02 04:05 Tue

FireDAC のインメモリデータベースを簡単に使うためのユニットを作ってみました。
# 2009 以降で動作します。TFD~ / TAD~ いずれでも動作すると思います。

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, DB, uInMemTableUtils;

type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private 宣言 }
InMemTable: TInMemoryTable;
public
{ Public 宣言 }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
// インメモリテーブルの準備
InMemTable := TInMemoryTable.Create(Self);
// メモリーテーブルを登録
InMemTable.AddDataSet(0, 'TEST'); // テーブル名は 'TEST'
// メモリーテーブルの準備
with InMemTable.MemTables[0] do
begin
FieldDefs.Add('ID' , ftInteger , 0, False);
FieldDefs.Add('Name', ftWideString, 20, False);
CreateDataSet;
end;
// 接続
InMemTable.Connect;
// DBGrid にデータソースを設定
DBGrid1.DataSource := InMemTable.DataSources[0]; // DataSources[0] は Queries[0] のデータソース
// 選択クエリーを実行
with InMemTable.Queries[0] do
begin
SQL.Clear;
SQL.Add('SELECT * From TEST');
Open;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
// 挿入クエリーを実行
with InMemTable.Queries[1] do
begin
SQL.Clear;
SQL.Add('INSERT INTO TEST (ID, NAME) VALUES (1, "ABC")');
ExecSQL;
end;
// 表示用のクエリーを更新
InMemTable.Queries[0].Refresh;
end;

end.

 
こんな感じで使えます。

Download: http://ht-deko.minim.ne.jp/software/uInMemTableUtils_100.zip

このユニットはハラヘッタウェアとなっています。
http://ht-deko.minim.ne.jp/delphiforum/harahettaware/

DEKO
管理者
投稿数: 2651
Re: [FireDAC] uInMemTableUtils
on: 2015/06/02 05:45 Tue

動作環境です。

  • FireDAC は 2009~XE4 まで同一バージョンですので、XE で動作確認を行ってあります (TAD~)。
  • XE5 以降、XE8 までは個別に動作確認してあります (TFD~)。

実行時にエラーになるようでしたら、最新版を再度ダウンロードしてください m(_ _)m
# クソのようなリファクタリングがアカンのや…orz

ページ: [1]
WP Forum Server by ForumPress | LucidCrew
バージョン: 1.7.5 ; ページロード: 0.022 sec.