|
|
|
новичок
      
участник
Last Login: 06.01.2002 12:10
Сообщ.: 3,
Visits: 34
|
|
Как получить, используя только SQL, список полей и их типы заданной таблицы? Где-то эта информация должна храниться, но как до нее добраться, используя только SQL - запрос?
|
|
|
|
|
Forum Guru
      
участник
Last Login: 22.06.2006 12:09
Сообщ.: 72,
Visits: 794
|
|
Сам я этого не делал, но могу дать наводку (ценное указание, а не деньги на спиртное ; )) ) Обычно так делается на SQL сервере. В любой базе Access (как и вообще в любой базе) есть несколько системных таблиц, где в частности хранятся имена всех таблиц базы, название колонок и типы данных. Обычно эти таблицы не видны - видимо потому что системные, но их можно заметить просматривая объекты TableDefs. Вот список этих таблиц: MSysACEs MSysModules MSysModules2 MSysObjects MSysQueries MSysRelationships Я так полагаю что вся информация о таблицах базы должна содержаться где то в последних трёх системных таблицах. Если тебе это действительно надо, покапайся, потом расскажешь ; )
|
|
|
|
|
Supreme Being
      
участник
Last Login: 18.11.2004 18:12
Сообщ.: 378,
Visits: 4 159
|
|
Информацию о таблицах (имена всех таблиц) можно получить в MSysObjects, поле Type=1
Информацию по конкретной таблице:
Function PP() Dim rst As New ADODB.Recordset Dim i As Long
rst.ActiveConnection = CurrentProject.Connection rst.Open "SELECT Группы.* FROM Группы" For i = 0 To rst.Fields.Count - 1 Debug.Print rst.Fields(i).Name, Select Case rst.Fields(i).Type Case adVarWChar Debug.Print "тексовый" Case adSmallInt Debug.Print "числовой" End Select Next i Debug.Print "всего полей " & i Set rst = Nothing End Function
|
|
|
|