请问怎么样动态创建一个数据库呢?(50分)

  • 主题发起人 主题发起人 stallone
  • 开始时间 开始时间
S

stallone

Unregistered / Unconfirmed
GUEST, unregistred user!
通常设计数据库时,像table name database name indexfieldname等都是预先给好了,虽然这样方便,但是缺乏灵活性,
我想根据find框里反馈的信息,随用户的需要生成数据库,
打个比方,用户在find框中输入123,则调出文件名为123的数据库,如果是345,就是345,依此类推
我做的数据库类型是*.db格式的,但是在开发过程中总是说active的条件不充分.
有哪位老师能上上课?就根据这个find事件生成数据库,讲解一下?解除我的困惑?
thanks anyway~
 
看你的意思似乎不是创建而是打开。
首先你的目录下面要有相应的数据库。
在设计时先放一个Table1,设置各个参
数是它能够正常打开。
在运行时操作如下:

table1.close;
table1.tablename:=find.text;
table1.open;
 
好象没这么简单吧,还有indexfieldname等值呢?
我的意思的确是打开,呵
 
动态创建数据库
procedure TDataModule1.CreateAlarmDB;
begin
AlarmDB.Databasename:=DBdir;
AlarmDB.TableName:='AlarmDB.db';
AlarmDB.TableType:=ttparadox;
AlarmDB.Active:=false;
if not AlarmDB.Exists then
begin
with AlarmDB do
begin
with FieldDefs do
begin
clear;
Add('AlarmIndex',ftAutoInc,0,true);
Add('NetMark',ftstring,10,true);
Add('Address',ftsmallint,0,true);
Add('Equipmenttype',ftstring,20,true);
Add('AlarmType',ftstring,10,true);
Add('Alarmtent',ftstring,30,true);
Add('AlarmDate',ftdate,0,true);
Add('AlarmTime',ftTime,0,true);
Add('Manager',ftstring,10,true);
end;
with IndexDefs do
begin
Clear;
Add('', 'AlarmIndex', [ixPrimary,ixUnique]);
end;
CreateTable;
end;
end;
end;
 
chenzheng770101, 这段代码我也有,呵呵~只是并不能解决俺的实际问题啊..
当123被打开后,再想打开345,
系统会报错说找不到原有的field and indexfieldname,
因此关键就在于清除再重置这两个东东啊~~~
我试过table1.indexfieldname:=clear;等等,好象作用都不大
 
用Sql語句就可以實現.

Create Table "Your TableName"
as
(
欄位名 ,類型及長度 , 其它定議
欄位名 ,類型及長度 , 其它定議


)
 
用sql语句实现
Create Table "TableName"
as
(議
)
 
嗯,谢谢各位,我的问题已经通过其它途径解决了,呵~

其实我问得有点词不达意,应该是打开,而不是创建,

thanks.anyway..
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部