如何获取有关UniData / UniVerse数据库的架构信息?

时间:2013-05-22 15:29:37

标签: multivalue u2 universe unidata u2netdk

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

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

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

  1. SQL Access(UCI服务器)
  2. 原生访问(UO服务器)
  3. SQL Access

    对于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数据库)
    4. 您可以使用U2 Toolkit for .NET的U2数据库提供程序for .NET(ADO.NET Provider)进行SQL访问

      原生访问

      对于Native Access,您无需执行任何操作。

      您可以使用U2 Toolkit for .NET的UO API进行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样式帮助,以获取架构,帐户可访问/获取架构,示例代码等信息。

      enter image description here

      我已经使用UniData的模拟账户测试了U2Connection Class的GetSchema()。这个对我有用。见下面的屏幕截图。

      enter image description here

      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;“from TCL Command。你看到以下了吗? 如果没有,那么您可以执行以下操作之一:

      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
        
      4. enter image description here

答案 1 :(得分:1)

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

Fig1

Fig2

Fig3

Fig4