Как я могу получить информацию о схеме для базы данных UniData/UniVerse?
У меня есть некоторый (ограниченный) опыт работы с базами данных UniData и UniVerse, и теперь я хочу работать с ними через.NET Framework. Похоже, что теперь работать с ними можно с помощью U2 Toolkit от Rocket Software для.NET.
Поскольку я буду получать доступ к базам данных, схемы которых я не знаю априори, мне нужно знать, как запрашивать базы данных не только для данных (которые будут представлены позже), но и для информации о самих базах данных, таких как имена существующих таблицы и их схемы.
Похоже, что, возможно, Rocket (или, возможно, именно IBM ранее владела технологией U2), некоторые из этих функций встроены в некоторые из их утилит, но мне действительно нужно делать это программно.
Есть идеи?
2 ответа
Вы можете получить доступ к базе данных U2 (UniData или UniVerse) с помощью U2 Toolkit для.NET следующими способами:
- SQL Access (UCI Server)
- Собственный доступ (UO-сервер)
SQL Access
Для 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 для.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. Вы видите следующее? Если нет, то вы можете сделать одно из следующих действий:
- Запустите VSG Tool (прочитайте руководство VSG)
- Запустите инструмент MDM (прочитайте руководство по MDM)
Запустите командную строку из команды 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.