Я предполагаю, что не все SQL созданы одинаково.Я погружаюсь в мир DSN и драйверов ODBC в c # и немного в этом разбираюсь.Я пытаюсь получить все таблицы в базе данных, определенной DSN, о которой я знаю только с помощью драйвера Transoft ODBC.Я могу подключиться к нему и получить обратно таблицы, используя код:
public void ConnectToData(String dsn)
{
System.Data.Odbc.OdbcConnection conn =
new System.Data.Odbc.OdbcConnection();
//conn.ConnectionString = "FIL=MS Access;DSN=" + dsn;
conn.ConnectionString = "DSN=" + dsn; //dsn equals "Company_Shared"
try
{
conn.Open();
MessageBox.Show("Connected!");
lstBoxLogs.Items.Add("Connected");
DataTable tableschema = conn.GetSchema("TABLES");
DataSet set = tableschema.DataSet;
// first column name
for (int i = 0; i < tableschema.Columns.Count; i++)
{
lstBoxLogs.Items.Add(tableschema.Columns[i].ColumnName);
}
lstBoxLogs.Refresh();
MessageBox.Show(tableschema.Columns.Count + " tables found");
}
catch (Exception ex)
{
MessageBox.Show("Failed to connect to data source: " + ex.GetBaseException().Message);
}
finally
{
conn.Close();
}
}
Он отлично соединяется и сообщает о таблицах, но не о тех таблицах, которые, как я знаю, я ищу в базе данных, возвращает следующее:
TABLE_QUALIFIER
TABLE_OWNER
TABLE_NAME
TABLE_TYPE
REMARKS
Я не уверен, как получить реальные имена таблиц из этой информации, поэтому я могу просто вывести все данные в каждомстол (это все, что я хочу сделать).Это связано с тем, что мне нужно прочитать, какой тип SQL использует база данных transoft, и делает ли это вызов conn.GetSchema("TABLES");
бесполезным?