【问题标题】:Code sample for freeing advantage database server table释放优势数据库服务器表的代码示例
【发布时间】:2013-09-30 05:56:49
【问题描述】:

我有一组包含在 Advantage Database 数据字典中的表。字典不再可用,表格也打不开。

我想使用代码(不是 Advantage Data Architect)释放这些表。

我能找到的唯一参考是帮助中列出的一个名为 ADSDDFreeTable 的函数。

该函数的文档位于此链接:

http://devzone.advantagedatabase.com/dz/WebHelp/Advantage11.1/index.html?ace_adsddfreetable.htm

但它没有提供代码示例,我无法理解如何使用它。

谁能提供一个代码示例来说明如何使用此函数(使用变量,而不是文字,用于文件名等)

非常感谢!

【问题讨论】:

    标签: delphi advantage-database-server


    【解决方案1】:

    Ace.pasAdsDDFreeTable 定义为

    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 安装的。

    如果您从不带参数的命令行运行它,它会显示使用信息。不过,一般来说,您可以给它一个文件夹名称(以处理所有表)或一个特定文件作为参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 2010-10-31
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      • 2016-01-22
      相关资源
      最近更新 更多