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

  • 主题发起人 主题发起人 flycat
  • 开始时间 开始时间
F

flycat

Unregistered / Unconfirmed
GUEST, unregistred user!
我用以下程序Pack一个MicroSoft dbase drive的数据表未能成功,
请高手指点!!
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 dbase Driver' 而非szDBASE的值('DBASE')
而我的ODBC配置里面的驱动程序是用MicroSoft dBase Driver (ODBCJT32.DLL ),
不能Pack(不会叫我必须换低版本的ODBC
驱动程序吧?! *^*)

 
你走的ODBC吧,你用BDE呢,不要用ODBC去连试试。
 
我用的数据库必须是dbase3.0,不用ODBC,数据格式就不对,金蝶的接口(只认DBASE3。0),我是服了!!
请各位大虾出手
 
多人接受答案了。
 
后退
顶部