【问题标题】:Code sample for freeing advantage database server table释放优势数据库服务器表的代码示例
【发布时间】:2013-09-30 05:56:49
【问题描述】:
【问题讨论】:
标签:
delphi
advantage-database-server
【解决方案1】:
Ace.pas 将AdsDDFreeTable 定义为
function AdsDDFreeTable( pucTableName: PAceChar;
pucPassword: PAceChar ):UNSIGNED32; {$IFDEF WIN32}stdcall;{$ENDIF}{$IFDEF LINUX}cdecl;{$ENDIF}
同样的Ace.pas定义PAceChar:
type
PAceChar = PAnsiChar;
因此,对函数的调用应该相当简单:
var
TableName: AnsiString;
begin
TableName := 'C:\Data\MyTable.adt`;
if AdsDDFreeTable(PAnsiChar(TableName), nil) <> ADS_FREETABLEFAILED then
ShowMessage('Table removed from datadictionary')
else
// Call ADSGetLastError to retrieve reason for failure;
end;
【解决方案2】:
除了@Ken 的解决方案 (+1),还有一个名为 freeadt.exe 的独立命令行实用程序,它可以从关联的数据字典中释放 ADT 表。我相信它是用Advantage Data Architect 安装的。
如果您从不带参数的命令行运行它,它会显示使用信息。不过,一般来说,您可以给它一个文件夹名称(以处理所有表)或一个特定文件作为参数。