Список таблиц в ADO
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Собственно требуется получить спискок таблиц используя ADO (ActiveX Data Objects) в С++(используется MS VS2005). Есть подобный код, делающий это на VB. Побробывал его переписать - неработает . Подскажить как собственно этот код написать.
Вот собственно:
Private mvarTables As New StringList 'собственный класс для работы со строками
...
Set data = New ADODB.Connection
With data
mvarTables.Clear
If .State <> adStateClosed Then .Close
.ConnectionString = "Provider=microsoft.jet.OLEDB.4.0;Data Source=" & FileName & ";User ID=" & xset.Login & ";Password=" & xset.Password & ";"
.Open
Set list = .OpenSchema(adSchemaTables, _
Array(Empty, Empty, Empty, "TABLE"))
End With
DataMembers.Clear
DataMembers.Add "!__LIST"
list.MoveFirst
Do Until list.EOF = True
mvarTables.Add list("TABLE_NAME")
list.MoveNext
Loop
CurrentTable = mvarTables.Item(1)
Вызывает сложность выделенное жирным - преобразование в обычный массив не помогает. Хотя нашел еще один вариант - может быть будет работать
Private mvarTables As New StringList 'собственный класс для работы со строками
...
Set data = New ADODB.Connection
With data
mvarTables.Clear
If .State <> adStateClosed Then .Close
.ConnectionString = "Provider=microsoft.jet.OLEDB.4.0;Data Source=" & FileName & ";User ID=" & xset.Login & ";Password=" & xset.Password & ";"
.Open
Set list = .OpenSchema(adSchemaTables, _
Array(Empty, Empty, Empty, "TABLE"))
End With
DataMembers.Clear
DataMembers.Add "!__LIST"
list.MoveFirst
Do Until list.EOF = True
mvarTables.Add list("TABLE_NAME")
list.MoveNext
Loop
CurrentTable = mvarTables.Item(1)
Вызывает сложность выделенное жирным - преобразование в обычный массив не помогает. Хотя нашел еще один вариант - может быть будет работать
Все решение проблемы нашел. Покопался в одном из прошлых MSDN. Как раз с этим сейчас проблем нет...