データベースと接続せずにデータセットにデータを入れるには?

解決


もじゃもじゃ  2011-02-22 02:52:05  No: 40061

お世話になります。
windows7、Delphi2010

いちいちデータベースにテーブルを作らずに、
ソース上でデータの入ったデータセットを作りたいのです。
(ちょっとしたルックアップに使いたい、グリッドにテストデータを表示、等)

// ※うごきません!
var
  tb : TTable;

procedure TForm1.FormCreate(Sender: TObject);
begin

  tb := TTable.Create(Self);
  tb.Open;

  tb.Append;
  tb.FieldByName('CODE').AsInteger  := 1;
  tb.FieldByName('NAME').AsString   := '男';
  tb.Post;

  tb.Append;
  tb.FieldByName('CODE').AsInteger  := 2;
  tb.FieldByName('NAME').AsString   := '女';
  tb.Post;

end;
// ※うごきません!

イメージはこんな感じなのですが可能でしょうか?
よろしくお願いします。


igy  2011-02-22 07:01:31  No: 40062

>いちいちデータベースにテーブルを作らずに、

手軽に、ということでしたら、(テーブルは作ることになりますが、)

・Firebird Embeded Server
・InterBase To-Go Edition
・SQLite

などでは、だめですか?

あと、MyBaseとか・・・(あまり使っていないので、ご希望のことができるかわかりませんが・・)
http://hp.vector.co.jp/authors/VA028375/delphi/db.html


DEKO  2011-02-22 07:37:53  No: 40063

こんにちは。

[#150:To use TClientDataset as memory dataset (Scalabium Software)]
http://www.scalabium.com/faq/dct0150.htm

なんてどうでしょうか?コードを要約したものを、
http://ht-deko.minim.ne.jp/ft1102.html#110221_02
にアップしておきました。


もじゃもじゃ  2011-02-24 18:14:29  No: 40064

回答ありがとうございます。

>igyさん
その3つは使ったことないですが、
お手軽さという意味ではAccessをよく使います。
エディタがウンコなのがたまにきずです。

>DEKOさん
ページ拝見しました、バッチリできました。
TClientDatasetですか・・・こちらも使ったことが無いので色々いじくってみます。

お二人ともありがとうございました。


もじゃもじゃ  2011-02-24 18:23:58  No: 40065

物理ファイルが出来ちゃうので質問の趣旨とは違ってくる気もしますが
このようにしても出来ました。

var
  i: Integer;
  dt: TTable;
begin
  dt := TTable.Create(Self);
  // テーブルのあるフォルダをフルパスで指定
  dt.DatabaseName := ExtractFileDir(ParamStr(0)) + '\DB';
  // テーブル名
  dt.TableName := 'test';
  // Paradox テーブルを指定
  dt.TableType := ttParadox;

  // テーブル用の項目を指定
  dt.FieldDefs.Add('CODE', ftInteger, 0, false);
  dt.FieldDefs.Add('NAME', ftString, 20, false);

  // 以上の定義を使ってテーブルを作成
  dt.CreateTable();
  dt.Open;

  for i := 1 to 100 do
  begin
    dt.Append;
    dt.FieldByName('CODE').AsInteger  := i;
    dt.FieldByName('NAME').AsString   := 'Code' + IntToStr(i);
    dt.Post;
  end;
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加