与Universe 9.6的ODBC连接

时间:2013-06-24 19:19:18

标签: c# odbc universe

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

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

  

查询 - SELECT * FROM DEBTOR

     

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

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

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

用于连接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();

执行最后一个语句时发生异常捕获

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

官方Universe 9.6不支持与U2 Toolkit for .NET一起使用。根据{{​​3}}(第6页):

<强>支持的UniData和宇宙的版本

  • 的UniData 7.1或更高版本
  • 的UniVerse 10.3或更高

您仍然可以使用直接ODBC或UniObjects从数据库中提取数据。如果您计划使用ODBC,除了启用RPC之外,请确保已按documentation为ODBC配置了Universe帐户。在编写C#代码之前,我经常使用Rocket's ODBC documentation验证我的ODBC设置。