2

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

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

看似简单,却无解

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

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

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

有任何想法吗?

先感谢您!

阿里斯

4

2 回答 2

3

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

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

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

SELECT * FROM system.tables

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

于 2012-12-20T22:12:27.020 回答
2

谢谢你的反馈克里斯,

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

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

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

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

于 2012-12-22T18:03:57.580 回答