powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Профи помогите советом начинающему в ADO
7 сообщений из 7, страница 1 из 1
Профи помогите советом начинающему в ADO
    #33248206
Kroket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть форма, на ней грид (ADO), и дата контрол ADODC.
В гриде делаем привязку к ADODC, чтобы он отображал данные.
Теперь код формы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Option Explicit
Public adoCnn As New ADODB.Connection
Public rsDict As New ADODB.Recordset

Form_Load()
    adoCnn.ConnectionString = "Provider=MSDAORA;Password=1;User ID=1;Data Source=Db"
    adoCnn.Open

    strSQL = "select * from Table1"
    rsDict.Open strSQL, adoCnn

    Set ADODC1.Recordset = rsDict

End Sub

Т.е. что получается создается объект rsDict ADODB.Recordset, который затем открываем. После присваиваем ссылку на этот рекордсет объекту ADODC1.
Получается две ссылки на один рекордсет. Это правильный подход?
Или можно непосредственно в ADODC сразу открыть рекордсет, не прибегая к rsDict? И если можно то как это правильно сделать?
...
Рейтинг: 0 / 0
Профи помогите советом начинающему в ADO
    #33248246
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KroketТ.е. что получается создается объект rsDict ADODB.Recordset, который затем открываем. После присваиваем ссылку на этот рекордсет объекту ADODC1.Получается две ссылки на один рекордсет.

И где вы здесь две ссылки разглядели?
Kroket
Или можно непосредственно в ADODC сразу открыть рекордсет, не прибегая к rsDict?
Нельзя.
...
Рейтинг: 0 / 0
Профи помогите советом начинающему в ADO
    #33248300
Kroket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответ.

Под двумя ссылками я имел в виду следующее. Когда мы открываем объект rsDict в памяти у нас создается структура представляющая собой рекордсет.
Затем мы присваиваем Set ADODC1.Recordset = rsDict. Теперь мы можем работать с рекордсетом как с помощью объектной переменной rsDict, так и с ADODC:

rsDict.MoveNext
ADODC.MoveNext

не важно какую переменную мы будем использовать, но если я правильно понимаю и в том и другом случае работа будет производится с одной и той же структурой? Может быть название ссылка здесь не совсем удачное.

И еще не подскажете как определить открыт рекордсет в настоящее время или нет?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Public rsDict As New ADODB.Recordset 

Form_Unload()
if not (rsDict Is Nothing) then
     rsDict.Close
     set rsDict = Nothing
endif
End Sub

Такой код не катит, так rsDict не Nothing, как я понимаю потому что был создан оператором New. А анализ нужен, так как при открытии формы рекордсет может открыться, а может и нет. Например если прав у пользователя нет.
...
Рейтинг: 0 / 0
Профи помогите советом начинающему в ADO
    #33248345
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
If rsDict.State =adStateOpen then rsDict.Close
...
Рейтинг: 0 / 0
Профи помогите советом начинающему в ADO
    #33248493
Kroket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сасибо большое
...
Рейтинг: 0 / 0
Профи помогите советом начинающему в ADO
    #33248498
Kroket
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в смысле спасибо
...
Рейтинг: 0 / 0
Профи помогите советом начинающему в ADO
    #33250757
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глюкавый ADODC в бобруйск, привязывай к гриду сам рекордсет.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Профи помогите советом начинающему в ADO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]