T
t365
Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi对一个DBC数据库中的DBF表做删除操作,
DBC通过ODBC访问
下面是PackTable过程
procedure Tform1.PackTable(Table: TTable);
var
Props:CURProps;
begin
if not Table.Active then
raise EDatabaseError.Create('数据库没有打开');
if not Table.Exclusive then
raise EDatabaseError.Create('必须以独占方式打开');
Check(DbiGetCursorProps(Table.Handle, Props));
if (Props.szTableType = szFoxPro) then
DbiPackTable(Table.DBHandle, Table.Handle, nil, szFoxPro,True) ;
else
raise EDatabaseError.Create('表不是FoxPro表')
Table.Open;
end;
在一个按钮的单击事件中主调用Packtable
procedure TForm1.Button1Click(Sender: TObject);
begin
packtable(table1);
end;
table1在创建时己打开,但在按下Button1做Packtable时总是提示“表不是FoxPro表”
也就是说 Props.szTableType = szFoxPro 的条件为假,明明我的是FoxPro表
怎么会提示 不是FoxPro表,为什么呢?请朋友们帮忙告诉我啊!
我用szDBASE也式过了,不行。
我现在想可能是Delphi只能对自由表进行packtable的操作,
要想对DBC数据库中的表pack,可能需要先把表从dbc库中分离
出来,pack完之后再加到dbc库中,但我不知道怎么分离和添加
谁能告诉我?多谢啊!
DBC通过ODBC访问
下面是PackTable过程
procedure Tform1.PackTable(Table: TTable);
var
Props:CURProps;
begin
if not Table.Active then
raise EDatabaseError.Create('数据库没有打开');
if not Table.Exclusive then
raise EDatabaseError.Create('必须以独占方式打开');
Check(DbiGetCursorProps(Table.Handle, Props));
if (Props.szTableType = szFoxPro) then
DbiPackTable(Table.DBHandle, Table.Handle, nil, szFoxPro,True) ;
else
raise EDatabaseError.Create('表不是FoxPro表')
Table.Open;
end;
在一个按钮的单击事件中主调用Packtable
procedure TForm1.Button1Click(Sender: TObject);
begin
packtable(table1);
end;
table1在创建时己打开,但在按下Button1做Packtable时总是提示“表不是FoxPro表”
也就是说 Props.szTableType = szFoxPro 的条件为假,明明我的是FoxPro表
怎么会提示 不是FoxPro表,为什么呢?请朋友们帮忙告诉我啊!
我用szDBASE也式过了,不行。
我现在想可能是Delphi只能对自由表进行packtable的操作,
要想对DBC数据库中的表pack,可能需要先把表从dbc库中分离
出来,pack完之后再加到dbc库中,但我不知道怎么分离和添加
谁能告诉我?多谢啊!