4

我对 UniData 和 UniVerse 数据库有一些(有限的)经验,现在想通过 .NET 框架使用它们。现在看来,使用它们的方式是通过 Rocket Software 的 U2 Toolkit for .NET。

由于我将访问其架构我不知道先验的数据库,因此我需要知道如何查询数据库,不仅是数据(稍后会出现),而且是关于数据库本身的信息,例如现有的名称表及其模式。

看起来可能 Rocket(或者可能是之前拥有 U2 技术的 IBM)在他们的一些实用程序中内置了一些功能,但我真的需要能够以编程方式执行此操作。

有任何想法吗?

4

2 回答 2

5

您可以使用 U2 Toolkit for .NET 通过以下方式访问 U2 数据库(UniData 或 UniVerse):

  1. SQL 访问(UCI 服务器)
  2. 本机访问(UO 服务器)

SQL 访问

对于 SQL Access,您需要规范化 U2 帐户(获取架构)。为此,您可以使用以下工具:

  1. 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 )
  2. VSG(用于 UniData 数据库)
  3. 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 命令。你看到以下内容了吗?如果没有,那么您可以执行以下操作之一:

  1. 运行 VSG 工具(阅读 VSG 手册)
  2. 运行 MDM 工具(阅读 MDM 手册)
  3. 从 TCL 命令运行命令行:

     o    Convert.sql STUDENT (Read Unidata  Manual for convert.sql command)
     o    Grant privilege
     o    MIGRATE.SQL
    

在此处输入图像描述

于 2013-05-23T03:55:14.487 回答
1

U2 Toolkit for .NET v1.3.0 支持 GetSchema() API 中的“ForeignKeys”和“ForeignKeysColumns”。见下图 1、图 2、图 3 和图 4。

图。1

图2

图3

图4

于 2013-12-12T01:16:49.983 回答