C# 连接进度数据库错误

C# connect Progress Database Error

我想用c#连接本地的进度数据库。

我的 C# 代码是:

 string connectionString = "DSN=OpenEdge Wire Protocol;Host = localhost; DB = E:\programs\DBs\TrDB\trnakdb; UID = connuser; PWD = 123456; PORT = 11112";
        DataTable dt = new DataTable();
        int rows;

        using (OdbcConnection connection = new OdbcConnection(connectionString))
        using (OdbcCommand command = connection.CreateCommand())
        using (OdbcDataAdapter adapter = new OdbcDataAdapter(command))
        {
            connection.Open();
            command.CommandText = "SELECT * FROM PUB.FTTEFBAS";
            rows = adapter.Fill(dt);
        }

        Console.WriteLine("adapter.Fill() returned {0}", rows);
        Console.WriteLine("The data table contains {0} rows and {1} columns.",
          dt.Rows.Count,
          dt.Columns.Count
          );
        foreach (DataRow dataRow in dt.Rows)
        {
            string babili = dataRow.ItemArray.ToString()+"####";
            for (int key = 0; key < dataRow.ItemArray.Length; ++key)
                babili += "\t" + key + "=>" + dataRow.ItemArray[key];

            Console.WriteLine(babili);
        }

但是报错:

System.Data.Odbc.OdbcException (0x80131937): ERROR [HY000] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Access denied (Authorisation failed) (7512)

我可以用这个用户名连接进度数据字典或数据管理工具。

如果我尝试 select 系统 tables,不会出现错误。但是当我尝试从 PUB 架构中列出任何 table 时,它会出错。

谢谢

米。亚辛·比雷尔

DBA 需要向您的用户 ID 授予 SQL 权限。字典等使用 4GL 权限,默认情况下是完全开放的。 SQL 默认情况下,赠款是限制性的。

如果您知道 DBA 用户 ID(通常是 "sysprogress")和密码,您可以尝试用它来证明您的连通性。并根据需要向用户授予权限。

您可能会发现此 kbase 有帮助:http://knowledgebase.progress.com/articles/Article/20143/p