sql - 通过 .net 访问 UniData

标签 sql .net u2 unidata u2netdk

我在从 u2.net 工具包访问 UniData 数据时遇到问题。我能够正常连接 - 已经使用“测试连接工具”测试了连接,并且在代码中,两个连接都工作正常。我的问题是当我尝试填充数据集时 - 使用示例代码:我收到此错误:

[U2][UCINET][UNIDATA]:You have no privilege on file THENAME

代码如下:

           U2Connection con = new U2Connection();
        try
        {
            U2ConnectionStringBuilder conn_str = new U2ConnectionStringBuilder();
            conn_str.UserID = "id";
            conn_str.Password = "pwd";
            conn_str.Server = "srv2";
            conn_str.Database = "DB.XXX";
            conn_str.ServerType = "UNIDATA";
            conn_str.RpcServiceType = "udserver";


            con.ConnectionString = conn_str.ToString();
            con.Open();
            DataTable schema = con.GetSchema();
            U2DataAdapter da = new U2DataAdapter("SELECT * FROM THENAME ", con);
            DataSet ds = new DataSet();
            da.Fill(ds);
        }
        catch (Exception ex)
        {
            string lStr = ex.Message;
        }
        finally
        {
            con.Close(); 

还要注意一点,我有一个 ODBC 连接设置。通过 ODBC,我可以在 SQL Server 链接服务器内使用相同的凭据来成功访问相同的查询。 任何想法将不胜感激。

最佳答案

默认情况下,UniData 授予通过 SQL 访问文件的权限。

您需要从数据库运行CONVERT.SQL以授予该文件权限。

您可以通过在命令行上运行 HELP CONVERT.SQLreading the manuals 来了解有关该命令的更多信息。 .

关于sql - 通过 .net 访问 UniData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12962989/

相关文章:

PHP Mysqli - INSERT 在实际查询中导致尾随逗号

c# - 如果我只能定义一个 GetEnumerator,为什么要实现 IEnumerable(T)?

u2 - UniVerse RetrieVe 如何查询文件中所有列的值?

mysql - 结合 3 个表(Union 或 JOIN)的结果获得正确的产品 bij

mysql - 两个 ORDER BY 子句和一个 LIMIT

c# - 在 EF 6 中自动生成时间戳(代码优先): conversion of a datetime2 data type to a datetime data is an out-of-range value

error-handling - UniData EXECUTE的 'RETURNING'子句。错误编号列表?

mysql - 省略以特定字符开头的结果

c# - 同一个整数可以有多个枚举值吗?