研究心得 dbase 文件格式 level 3 设置 ( 积分: 100 )

  • 主题发起人 主题发起人 icic_icic
  • 开始时间 开始时间
I

icic_icic

Unregistered / Unconfirmed
GUEST, unregistred user!
首先将Dbase Driver 降到Level3:
procedure TForm1.FormCreate(Sender: TObject);
var
MyReg: TRegistry;
begin
if not directoryexists('d:/work') then mkdir('d:/work');
MyReg := TRegistry.Create;
try
MyReg.RootKey := HKEY_LOCAL_MACHINE;
if MyReg.OpenKey('/SOFTWARE/Borland/Database Engine/Settings/DRIVERS/DBASE/TABLE CREATE',True)
then MyReg.WriteString('LEVEL','3');
finally
MyReg.CloseKey;
MyReg.Free;
inherited;
end;
end;
然后创建table:
procedure TForm1.create_my_table(table_name: string);
var
mytable:TTable;
begin
try
mytable:=TTable.Create(Self);
mytable.DatabaseName:=extractfiledir(table_name);
mytable.TableName:=extractfilename(table_name);
mytable.TableLevel:=3;
with mytable do
begin
close;
with fielddefs do
begin
clear;
with addfielddef do begin name:='SNAME';datatype:=ftstring;size:=12;end;
with addfielddef do begin name:='Pass';datatype:=ftboolean;end;
with addfielddef do begin name:='Test1;datatype:=ftstring; size:=8;end;
with addfielddef do begin name:='test2';datatype:=ftstring; size:=8;end;
with addfielddef do begin name:='Submited'; datatype:=ftboolean; end;end;
with addfielddef do begin name:='GRADE';datatype:=ftinteger;precision:=0;end;
end;
createtable;
end;
mytable.close;
finally
mytable.free;
end;
end;
实验结果,在程序里加上这句:
create_my_table('d:/mydb/vis/winner.dbf');
产生出来的dbase文件格式就是dbase3的,可以用VB,VF等打开了。
dbase曾经辉煌,但是今天,以dbase来作数据库,似乎已经没有人再这样做了。这篇文章献给仍然在使用dbase的大虾们。
很喜欢这个小巧的数据库,安装方便,小巧,快速,高效。可是迫于以上情况又不得不放弃。
很多时候,会遇见这样的问题,用delphi创建的数据表,到别的平台上都打不开,不管是visual foxpro,VB,还是Excel,或者Access,只有用Delphi自己带的Database Desktop才能打开。
不过现在已经解决了。原来只知道可以修改BDE设置,将Dabse Driver的Level降低到3就可以。但是当产品卖出去的时候,还要客户来手工设置BDE吗?
 

Similar threads

后退
顶部