H
huhuhu
Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序运行时需要知道某些表是否存在,参照BDE的帮助用了如下方法,
(从BDE的例子中原版抄的)
Check(DbiOpenTableList(hTempDB, False, False, '*.*', hCursor));
while (DbiGetNextRecord(hCursor, dbiNOLOCK, @ListDesc, nil) = dbiErr_None) do
begin
if (UpperCase(ListDesc.szName) = UpperCase(TableName)) or (UpperCase(ListDesc.szName) = UpperCase('dbo.' + TableName)) then
begin
Result := True;
Break;
end;
end;
但是,只要运行了DbiOpenTableList函数后,程序就进入了不稳定状态,
具体表现为:
1。如果在DELPHI的IDE环境中,则在关闭数据库连接时就弹出异常
(Access Volation...)。
2。直接执行EXE文件不弹出异常,但程序会随机性的退出(没有任何提示)。
如果不检查表是否存在,那么一切正常。
可我不能不检查。快帮帮我,先谢过了。
(从BDE的例子中原版抄的)
Check(DbiOpenTableList(hTempDB, False, False, '*.*', hCursor));
while (DbiGetNextRecord(hCursor, dbiNOLOCK, @ListDesc, nil) = dbiErr_None) do
begin
if (UpperCase(ListDesc.szName) = UpperCase(TableName)) or (UpperCase(ListDesc.szName) = UpperCase('dbo.' + TableName)) then
begin
Result := True;
Break;
end;
end;
但是,只要运行了DbiOpenTableList函数后,程序就进入了不稳定状态,
具体表现为:
1。如果在DELPHI的IDE环境中,则在关闭数据库连接时就弹出异常
(Access Volation...)。
2。直接执行EXE文件不弹出异常,但程序会随机性的退出(没有任何提示)。
如果不检查表是否存在,那么一切正常。
可我不能不检查。快帮帮我,先谢过了。