您可以使用 U2 Toolkit for .NET 通过以下方式访问 U2 数据库(UniData 或 UniVerse):
- SQL 访问(UCI 服务器)
- 本机访问(UO 服务器)
SQL 访问
对于 SQL Access,您需要规范化 U2 帐户(获取架构)。为此,您可以使用以下工具:
- 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 Toolkit for .NET 的 U2 Database Provider for .NET (ADO.NET Provider) 进行 SQL 访问
本机访问
对于 Native Access,您无需执行任何操作。
您可以使用 U2 Toolkit for .NET 的 UO API for Native Access。
示例代码和 MSDN 样式帮助
安装产品时,有大量关于 SQL Access 和 Native Access 的示例代码。
对您来说最好的办法是安装 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);
}
}
看起来您的“模拟”帐户未标准化。你能运行“sql> select * from SQLTables;”吗?来自 TCL 命令。你看到以下内容了吗?如果没有,那么您可以执行以下操作之一:
- 运行 VSG 工具(阅读 VSG 手册)
- 运行 MDM 工具(阅读 MDM 手册)
从 TCL 命令运行命令行:
o Convert.sql STUDENT (Read Unidata Manual for convert.sql command)
o Grant privilege
o MIGRATE.SQL