Delphi 最吸引人的特點之一就是它的強大的數據庫訪問能力,通過database desktop 工具可方便的建立、編輯數據庫。由於實際原因我們往往需要在程序運行狀態下動態建立某個數據庫。
如果你讓用戶用database desktop 工具手工建立數據表那麼你寫的程序將會打大折扣,不過你不用擔心Delphi完全可以用語言來完成此功能,為我們提供方便。我在學習和實踐中總結出兩種方法,我叫做table法和sql法。下面通過簡單的實例來描述動態數據庫建立的過程。
一、 Table方法:
1、(以建立paradox數據表為例假設庫名為ljh.db)。新建一工程文件zhoudf.dpr.在unit1中的uses語句中加入db,dbtables單元。
2、在面板上選取button元件置於form1表中,雙擊button1輸入如下代碼。
Procedure Tform1.Button2Click(Sender: Tobject);
var table1:ttable; begin table1:=ttable.create(self);
with table1 do begin active:=false;
tablename:='ljh.db';
tabletype:=ttparadox; with fIElddefs do {此方法為ljh.db增加字段} begin clear;
add('yj',ftdate,0,false);
add('zp', ftstring,10,false); {增加具體的字段名、類型}
add('zdm',ftinteger,0,false);
end;
With indexdefs do {此方法為ljh.db增加索引字段} Begin Clear;
Add('yjindex','yj',[ixprimary]);
end;
createtable;
end;
end;
二、sql方法: 在面板上選取button元件置於form1表中,雙擊button2輸入如下代碼。
Procedure Tform1.Button2Click(Sender: Tobject);
var table2:tquery; begin table2:=tquery.create(self);
with table2 do begin with sql do begin clear;
add('create table "ljh.db"');
add('(yj date,'); {注意引號中的‘(’}
add('zp char(10),');
add('zdm int)'); {注意引號中的 ')'}
end;
execsql;
sql.clear;
sql.add('create index yj on "ljh.db" (yj)'); {此sql語句為ljh.db增加索引字段}
execsql;
end;
end;
* 編譯此程序即可。 * 需要注意的是用sql方法建庫如果庫已存在會產生錯誤提示,用table方法則不需考慮。