Как я могу получить информацию о схеме для базы данных UniData/UniVerse?

У меня есть некоторый (ограниченный) опыт работы с базами данных UniData и UniVerse, и теперь я хочу работать с ними через.NET Framework. Похоже, что теперь работать с ними можно с помощью U2 Toolkit от Rocket Software для.NET.

Поскольку я буду получать доступ к базам данных, схемы которых я не знаю априори, мне нужно знать, как запрашивать базы данных не только для данных (которые будут представлены позже), но и для информации о самих базах данных, таких как имена существующих таблицы и их схемы.

Похоже, что, возможно, Rocket (или, возможно, именно IBM ранее владела технологией U2), некоторые из этих функций встроены в некоторые из их утилит, но мне действительно нужно делать это программно.

Есть идеи?

2 ответа

Решение

Вы можете получить доступ к базе данных U2 (UniData или UniVerse) с помощью U2 Toolkit для.NET следующими способами:

  1. SQL Access (UCI Server)
  2. Собственный доступ (UO-сервер)

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)

Вы можете использовать U2 Toolkit для.NET U2 Database Provider для.NET (ADO.NET Provider) для доступа к SQL

Собственный доступ

Для Native Access вам не нужно ничего делать.

Вы можете использовать U2 Toolkit для UO API.NET для Native Access.

Пример кода и справка по стилю MSDN

При установке продукта существует множество примеров кода в SQL Access и Native Access.

Лучшее для вас - установить U2 Toolkit для.NET V 1.2.1 и начать разработку кода. Вы можете запустить почти все образцы, так как он использует образец базы данных (учетная запись UniVerse 'HS.SALES' и учетная запись UniData 'demo')

Вы также можете прочитать справку U2 Toolkit для.NET V 1.2.1 в стиле MSDN, чтобы получить такую ​​информацию, как архитектура, доступ к учетной записи / схема получения, пример кода и т. Д.

введите описание изображения здесь

Я проверил GetSchema() класса U2Connection с демо-счетом UniData. Меня устраивает. Смотрите скриншот ниже.

введите описание изображения здесь

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 Tool (прочитайте руководство VSG)
  2. Запустите инструмент MDM (прочитайте руководство по MDM)
  3. Запустите командную строку из команды TCL:

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

введите описание изображения здесь

U2 Toolkit для.NET v1.3.0 поддерживает "ForeignKeys" и "ForeignKeysColumns" в API GetSchema(). Смотри ниже фиг.1, фиг2, фиг3 и фиг4.

Рисунок 1

fig2

Рис3

fig4

Другие вопросы по тегам