还是有关数据库的问题,请指教。(100分)

  • 主题发起人 主题发起人 wwwbbb
  • 开始时间 开始时间
W

wwwbbb

Unregistered / Unconfirmed
GUEST, unregistred user!
提问:
1、怎样打开已存的各类本地数据库,能
动态的增字段吗?
2、要不要倒入与倒出?
3、BDE中别名配好后目录有变化怎么办?
 
1。要动态增加字段,再用户没有打开数据库上,用SQL ALTER TABLE 进行
2。不需要
3。用SESSION 读取ALIAS 参数,修改然后保存
 
1、能
动态增字段对需要计算时将是自讨苦吃。
2、不要。
3、用BDE Administrator 的DataBases页选中要改的别名。
修改Path 为新目录,保存。ok
 
1、2、要打开不同类的数据库,最好先建好不同的别名及其相关的配置;
动态增字段时需要数据表独占。
我的做法是先把原数据表改名,再按新的结构创建原名的新表(可用Table的
FieldDefs.Add和CreateTable),最后尽量把原表的数据复制到新表中,并删
除原表即可。
3、arm和黄耀彰的做法都可以。
如果是Paradox,可考虑用INI文件记录目录,然后用该目录作为数据集的
DatabaseName,不用别名,修改非常方便,。
 
如果是paradox数据,
我认为没有必要配置BDE,直接用DataBase控件,
程序中所有的table,query直接连database控件,
在含有DataBase控件的Form上的Create事件中登入如下:
dataBase1.Connected:=False;
Database1.DatabaseName:=你自己定义一个在程序中使用的别名;
Database1.DriverName:= 'STANDARD';
Database1.Params.Clear;
Database1.Params.Add('PATH='+ExtractFilePath(Application.ExeName)+'db/');
DataBase1.Params.Add('ENABLE BCD=FALSE');
DataBase1.Connected:=True;
这样的话程序移植就不用修改了,无论在什么机器,什么路径都一样
 
1、要动态增加字段,再用户没有打开数据库上,用SQL ALTER TABLE 进行
2、不需要倒入倒出
3、修改BDE别名(ACCESS):
var list:TStringList;
begin
list:=TStringList.Create;
with list do
begin
Clear;
Add('DATABASE NAME=C:/TEST/YOURDATABASE.MDB');
end;
Session.ModifyAlias('youraliasname',list);
list.free;
...
end;

以上修改只是在内存中,若要永久地保存到BDE配置文件中,请调用SaveConfigFile函数。
 
多人接受答案了。
 
后退
顶部