Foxpro 5.0的数据表的Pack问题!!(100分)

  • 主题发起人 主题发起人 lycwg
  • 开始时间 开始时间
L

lycwg

Unregistered / Unconfirmed
GUEST, unregistred user!
我用以下程序Pack一个MicroSoft Visual Foxpro 5.0的数据表未能成功,
请高手指点!!
function PackTable(Table: TTable): Boolean;
var
Props : CURProps;
begin
if not Table.Active then
raise EDatabaseError.Create('Table必需已经打开');
if not Table.Exclusive then
raise EDatabaseError.Create('Table必需以独占方式打开');
Check(DbiGetCursorProps(Table.Handle, Props));//检测数据库类型
if (Props.szTableType = szDBASE) then
begin
Check(DbiPackTable(Table.DBHandle, Table.Handle, nil,
szDBASE,True));
Result := True;
end
else
raise EDatabaseError.Create('Table必需是dBASE或FoxPro类型');
Table.Open;
end

跟踪时发现问题所在是 Props.szTableType其值为'Micorsoft Visual
Forxpro Driver' 而非szDBASE的值('DBASE')
而我的ODBC配置里面的驱动程序是用的Microsoft Visual Foxpro Driver
(版本为6.00.8440.0 VFPODBC.DLL ),我试着将ODBC配置更换为Microsoft
Foxpro Driver或MicroSoft dBase Driver (其驱动程序均为:版本
4.00.4202.00 ODBCJT32.DLL ),系统报告对该数据类型的支持已更换为
Microsoft Visual Foxpro。应该说Microsoft Visual Foxpro的数据表
仍是文件型的数据库,可有其他方法进行Pack?(不会叫我必须换低版本的ODBC
驱动程序吧?! *^*)
 
我有一个pack *.dbf和*.db的demo,请查收你的邮箱。
 
To fstao:
我测试过你的Demo,编译时报错,未能找到LibOff.Pas文件!

大家帮帮忙,这个问题困绕我很久了!!!

 
To fstao:
我分析了你送的程序的Pack部份,它仍然只能支持dBase数据表,而无法Pack
Visual Foxpro 5.0的数据表,因为它实质上都是用的DBE的同一个函数。看来是
Delphi自身的问题,而不关ODBC驱动程序的事儿!


有谁知道其他方法,俺将感激不尽!!!!

 
请用Apollo VCL V5.1,它不但支持PACK,而且还支持记录级的锁定,
并且制作出来的程序不用BDE就可以运行。怎么样,满意了没?
下载:http://home.online.tj.cn/~kw/
 
多人接受答案了。
 
可以问一下Apollo VCL V5.1是什么东东么?
 

Similar threads

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