16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"テーブルの項目の一覧を得る"
この発言に対し以下のコメントが寄せられています
#01052 裏目小僧 さん RE:テーブルの項目の一覧を得る
仕様書を書くのに、指定ディレクトリにあるテーブルの項目名と型名と長さを
一気にgetできると楽ちん と思ってさくっと作りました。 便利なので上げて
おきます。(文字列型のDataSizeは格納できるバイト数+1になります。)
フォームにTTable,FileListBox,TSaveDialog,ボタンを一つずつ
配置します。
unit ListMakers;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, FileCtrl, Db, DBTables,typinfo{GetEnumNameのために必要};
type
TForm1 = class(TForm)
Table1: TTable;
FileListBox1: TFileListBox;
SaveDialog1: TSaveDialog;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
f:textFile;
i,c:integer;
curr,dir:string;
begin
if SelectDirectory('DBディレクトリを指定して下さい','',Dir)then
begin
FileListBox1.Directory:=Dir;
Table1.DatabaseName:=dir;
if SaveDialog1.Execute then
begin
Screen.Cursor:=crHourGlass;
try
assignFile(f,SaveDialog1.Filename);
rewrite(f);
try
WriteLn(f,dir+' のテーブル構造一覧');
for i:= 0 to FileListBox1.Items.Count-1 do
begin
Table1.TableName:=FileListBox1.Items[i];
Table1.Open;
try
WriteLn(f,Table1.TableName);
for c:= 0 to Table1.FieldCount-1 do
begin
with Table1.Fields[c] do
begin
curr:=FieldName+#9+
GetEnumName(TypeInfo(TFieldType),Ord(DataType))+
#9+IntToStr(DataSize);
WriteLn(f,curr);
end;
end;
finally
Table1.Close;
end;
WriteLn(f,'');
end;
finally
closeFile(f);
end;
finally
Screen.Cursor:=crDefault;
end;
end;
end;
end;
end.
☆☆☆ かわいいコードにゃ旅をさせよう いざサンプル蔵へ!! ☆☆☆
00/04/01(土) 14:31 凛(MXB01744)
Original document by 凛 氏 ID:(MXB01744)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|