2012-10-18 39 views
4

我無法從u2.net工具包訪問UniData數據。我能夠連接好 - 已經通過「測試連接工具」和代碼進行過測試連接,兩個連接都可以正常工作。我的問題是,當我嘗試和填充數據集 - 使用示例代碼:我得到這個錯誤:通過.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(); 

1以上說明,我有一個ODBC連接設置。通過ODBC,我可以在SQL Server鏈接服務器內使用相同的憑據來成功訪問相同的查詢。 任何想法將不勝感激。

回答

1

默認情況下,UniData授予通過SQL訪問文件的權限。

您需要從數據庫運行CONVERT.SQL以授予文件權限。

您可以通過在命令行上運行HELP CONVERT.SQLreading the manuals來了解有關該命令的更多信息。

+0

所以即使我可以通過ODBC從SQL Server訪問數據 - 這並不意味着CONVERT.SQL已運行? – user1757494

+0

此問題是否解決?你能否請指定列名而不是*。例如:SELECT COL1 FROM THENAME; –

0

您可以運行TCL命令嗎?

select * from privilege;

你看到THENAME嗎?例如,請參閱封閉的VOC文件截圖。

enter image description here

enter image description here