我们在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();
执行最后一个语句时发生异常捕获
答案 0 :(得分:1)
我们尝试了来自Rocket软件的驱动程序Universe端正在工作,它正在将数据发送到客户端,但客户端无法理解协议或导致异常的一些错误。我们确认服务器通过检查TCP数据包来响应查询数据。但我们运气不好。
因此我们决定创建我们自己的软件,该软件在Universe Pick Basic中开发,它将通过ssh连接到外部系统,并创建一个客户端和服务器都能理解的新协议。我们成功了,现在我们可以将数据导出并导入到Universe中。
答案 1 :(得分:0)
官方Universe 9.6不支持与U2 Toolkit for .NET一起使用。根据{{3}}(第6页):
<强>支持的UniData和宇宙的版本强>
您仍然可以使用直接ODBC或UniObjects从数据库中提取数据。如果您计划使用ODBC,除了启用RPC之外,请确保已按documentation为ODBC配置了Universe帐户。在编写C#代码之前,我经常使用Rocket's ODBC documentation验证我的ODBC设置。