Страница: 1 |
Страница: 1 |
Вопрос: просмотр состава таблиц в базе данных через ADO
Добавлено: 04.10.06 07:35
Автор вопроса: Сергей
Достаточно давно работаю с ADO, но не могу сделать простой вещи: как просмотреть имена таблиц допустим в базе Access. То есть мне надо перед обращением к таблице типа:
recordset.open "Имя таблицы", connection,....
узнать это "Имя таблицы". Как это сделать?
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Hunter2003
ICQ: 287314254
Вопросов: 14
Ответов: 72
Профиль | | #1
Добавлено: 05.10.06 08:15
Юзай ADOX - библа для работы со схемой БД. Подробнее узнаешь в Microsoft Data Access SDK
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 05.10.06 23:11
ReturnArray() As String) As Long '+
'Возвращаем массив ReturnArray с именами таблиц
'В случае успеха функция принимает значение 0, иначе номер ошибки
Set dbObj = New ADODB.Connection
Dim rsSchema As ADODB.Recordset
Dim dbConnectionString As String
On Error GoTo e
dbConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0ata Source=" & DataBasePath$ & ";" & _
IIf(Trim(Password) <> "", "Jet OLEDB:Database Password=" & Trim$(Password$) & ";", ""
ReDim ReturnArray(0)
dbObj.Open dbConnectionString
If dbObj.state = adStateOpen Then
Set rsSchema = dbObj.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "TABLE")
If Not rsSchema Is Nothing Then
Do While Not rsSchema.EOF
If UCase(Left(rsSchema!Table_name, 4)) <> "MSYS" Then
If UCase(Left(rsSchema!Table_name, 11)) <> "SWITCHBOARD" Then
NewTableName = rsSchema!Table_name
ReturnArray(UBound(ReturnArray)) = NewTableName
ReDim Preserve ReturnArray(UBound(ReturnArray) + 1)
End If
End If
rsSchema.MoveNext
Loop
End If
End If
'ReDim Preserve ReturnArray(UBound(ReturnArray) - 1)
GetTableArray = 0
rsSchema.Close
Set rsSchema = Nothing
Set dbObj = Nothing
Exit Function
e:
GetTableArray = Err.Number
Debug.Print Err.Description
 escriptionLastError = Err.Description
On Error GoTo 0: On Error Resume Next
Set rsSchema = Nothing
Set dbObj = Nothing
End Function
Номер ответа: 3
Автор ответа:
Сергей
Вопросов: 5
Ответов: 7
Профиль | | #3
Добавлено: 06.10.06 11:53
Офигеть! Спасибо огромное!
Номер ответа: 4
Автор ответа:
Сергей
Вопросов: 5
Ответов: 7
Профиль | | #4
Добавлено: 06.10.06 12:23
Еще раз спасибо HACKER! Листинг работает, но ты бы не мог объяснить что такое :
rsSchema!Table_name
я понимаю, что rsSchema - это рекордсет, а что это за приставка через "!"? почему она именно так называется Table_name?