【问题标题】:Advantage Database Server .net provider tables not showingAdvantage Database Server .net 提供程序表未显示
【发布时间】:2012-12-03 21:56:24
【问题描述】:

我尝试通过 .net 数据提供程序连接到优势数据库服务器,但我无法浏览表、视图、存储过程 (VS2010)。

虽然我看不到表格,但我可以通过新查询进行查询并手动编写选择

看似简单,却无解

连接字符串: 数据源=TestAuth;用户 ID=adssys 提供者: 用于 Advantage 数据库服务器的 .NET Framework 数据提供者 状态: 打开 类型: Advantage 数据库服务器 版本: 11.0.0.1

在 2 个不同的数据库服务器上尝试过,但我无法检索表

在 Eclipse 上通过 jdbc 连接的类似问题

有什么想法吗?

提前致谢!

阿里斯

【问题讨论】:

    标签: .net eclipse jdbc advantage-database-server


    【解决方案1】:

    有几种方法可以使用 Visual Studio 2010 获取表列表。最简单的方法是使用服务器资源管理器并创建与 Advantage 数据字典的数据连接。连接打开后,您可以在服务器资源管理器中查看表、视图和存储过程的列表。

    如果您想在代码中获取表格列表,您可以使用 AdsConnection 对象的 GetTableNames()GetDDObjects() 方法。 GetTableNames 返回一个表和视图名称的数组。 GetDDObjects 返回指定对象类型的数组。

    更通用的方法是使用 system.tables。您可以使用 SQL 语句打开此表,它将返回有关数据库中所有表的信息。请参阅下面的示例。

    SELECT * FROM system.tables
    

    GetDDObjects 和 system.tables 仅在连接到数据字典时可用。 GetTables 将返回字典或空闲表连接上的列表表。

    【讨论】:

      【解决方案2】:

      感谢您对克里斯的反馈,

      发现问题,连接设置错误。

      查询 SELECT * FROM system.tables 会引发错误 5125“Advantage 没有与指定句柄关联的数据字典。AdsCommand 查询执行失败”。所以这解释了什么是错的,我使用了别名而不是数据字典

      服务器资源管理器上的表已正确填充

      连接字符串: 用户 ID=adssys;Initial Catalog="C:\Program Files\Advantage 11.0\Help\ADS_DATA\IW.add"; 用户 ID=adssys 提供程序:用于 Advantage 数据库服务器的 .NET Framework 数据提供程序状态: 打开 类型: Advantage 数据库服务器版本:11.0.0.1

      【讨论】:

        猜你喜欢
        • 2013-07-07
        • 1970-01-01
        • 2011-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-04
        • 1970-01-01
        相关资源
        最近更新 更多