可以使用U2工具包.NET通過以下方式訪問數據庫U2(UniData的或Universe):
- SQL訪問(UCI服務器)
- 本地訪問(UO服務器)
SQL Access
對於SQL Access,您需要規範化U2 Account(獲取架構)。對於這一點,你可以使用以下工具:
- HS.ADMIN(用於數據庫的UniVerse)(http://www.rocketsoftware.com/u2/products/u2-clients-and-db-tools/u2-resources/universe-11.1-clients/copy_of_uvodbc-v11r1.pdf/view)
- VSG(用於數據庫的UniData)
- MDM(爲的UniVerse數據庫和UniData的數據庫)
可以使用U2工具包.NET的U2數據庫提供的.NET(ADO.NET提供商)的SQL訪問
本地訪問
對於本機訪問,您不需要執行任何操作。
您可以使用U2 Toolkit for .NET的UO API進行本地訪問。
示例代碼和MSDN樣式幫助
有當您安裝的產品。SQL訪問和本地訪問噸的示例代碼。
最好的辦法是安裝U2 Toolkit for .NET V 1.2.1並開始開發一些代碼。您可以使用樣本數據庫運行幾乎所有樣本('HS.SALES'UniVerse帳戶和'演示'UniData帳戶)
您還可以閱讀U2 Toolkit for .NET V 1.2.1的MSDN樣式幫助以獲取以下信息建築,帳戶存取/獲取模式,樣本代碼等
我與的UniData的模擬賬戶試驗U2Connection類的的getSchema()。這個對我有用。請參閱下面的截圖。
private void button1_Click(object sender, EventArgs e)
{
try
{
U2ConnectionStringBuilder conn_str = new U2ConnectionStringBuilder();
conn_str.UserID = "user";
conn_str.Password = "pass";
conn_str.Server = "localhost";
conn_str.Database = "demo";
conn_str.ServerType = "UNIDATA";
conn_str.Pooling = false;
string s = conn_str.ToString();
U2Connection con = new U2Connection();
con.ConnectionString = s;
con.Open();
this.textBox2.AppendText("Connected......."+Environment.NewLine);
this.textBox2.AppendText("CALLING ....... DataTable dt = con.GetSchema(\"Tables\");"+Environment.NewLine);
DataTable dt = con.GetSchema("Tables");
this.dataGridView1.DataSource = dt.DefaultView;
con.Close();
}
catch (Exception e2)
{
this.textBox2.AppendText(e2.Message);
}
}
它看起來像你的「示範」的帳戶不被標準化。你可以從TCL命令運行「sql> select * from SQLTables」。你看到以下內容嗎? 如果沒有,那麼你可以做下列操作之一:
- 運行VSG工具(讀VSG手冊)
- 運行MDM工具(閱讀MDM手冊)從TCL命令
運行命令行:
o Convert.sql STUDENT (Read Unidata Manual for convert.sql command)
o Grant privilege
o MIGRATE.SQL
拉詹 - 感謝你的幫助。這當然讓我朝着正確的方向前進。我已經成功連接到本地數據庫,但是我正在尋找的具體事情(即以編程方式獲取所有表的列表)仍然沒有解決。 我想我需要使用GetSchema()方法,但是當我將它傳遞給U2MetaDataCollectionNames.Tables時,我沒有返回任何行。這是針對演示Unidata數據庫運行的。 – ksigmund
請參閱上面的答案。 –
再次感謝Rajan。使用UniVerse,我的頭腦更好。也許這是值得一個新的問題,但是有什麼辦法可以確定GetSchema方法返回的表是其他表的子表嗎? 例如,在HS.SALES中,有一個CUSTOMER表,其中包含,我相信一個MV_ORDERS表。當調用GetSchema時,其中兩個表是CUSTOMER(這很合理)和CUSTOMER_ORDERS。我可以根據命名慣例推斷他們的關係嗎? – ksigmund