0

我们有一个在 Universe DBMS 9.6 上运行的遗留系统。我们正在尝试从中导出数据,并且我们启用了 rpc 守护程序,以便我们可以通过 odbc 进行连接。

现在我们能够连接到服务器,但我们无法运行任何查询。我们收到以下错误

查询 - SELECT * FROM DEBTOR

异常 - UniVerse/SQL:语法错误。意外的符号。令牌是“;”。扫描的命令是 SELECT

Universe 中有两种类型的数据库,即基于表的数据库和基于文件的数据库。但是我们能够查询基于表的数据库,但我们不能查询基于文件的数据库,并且有一些配置可以查询基于文件的数据库。我们被困在这个地方。

在 c# 中使用 u2Client 库来访问数据库。任何帮助表示赞赏

用于连接 Universe 的代码

 U2ConnectionStringBuilder conn_str = new U2ConnectionStringBuilder();
 conn_str.UserID = "id";
 conn_str.Password = "pwd";
 conn_str.Server = "serverIP";
 conn_str.Database = "DBNAME";
 conn_str.ServerType = "UNIVERSE";
 conn_str.Pooling =false;
 conn_str.AccessMode = "Uci";
 conn_str.RpcServiceType = "uvserver";
 string s = conn_str.ToString();
 U2Connection con = new U2Connection();
 con.ConnectionString = s;
 con.Open();
 Console.WriteLine("Connected.........................");
 U2Command xmd = new U2Command("SELECT * FROM TABLE_NAME", con);
 var op = xmd.ExecuteReader();

执行最后一条语句时捕获异常

4

2 回答 2

1

我们尝试了 Rocket 软件 Universe 端的驱动程序正在工作,它正在向客户端发送数据,但客户端无法理解协议或导致异常的某些错误。我们确认服务器通过检查 TCP 数据包以数据响应查询。但我们运气不好。

因此,我们决定创建自己的软件,该软件在 Universe Pick Basic 中开发,该软件将通过 ssh 连接到外部系统,并创建了一个客户端和服务器都能理解的新协议。我们成功了,现在我们可以将数据导出和导入到 Universe。

于 2013-08-07T15:56:38.107 回答
0

官方不支持将 Universe 9.6 与 U2 Toolkit for .NET 一起使用。根据文档(第 6 页):

支持的 UniData 和 UniVerse 版本

  • UniData 7.1 或更高版本
  • 宇宙 10.3 或更高版本

您仍然可以直接使用 ODBC 或 UniObjects 从数据库中提取数据。如果您打算使用 ODBC,除了启用 RPC 之外,请确保您已根据Rocket 的 ODBC 文档为 ODBC 配置了 Universe 帐户。在编写 C# 代码之前,我经常使用Excel 的外部数据访问工具验证我的 ODBC 设置。

于 2013-06-25T18:17:42.490 回答