Небольшая проблема с ADODC

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Небольшая проблема с ADODC

Сообщение MOV » 31.03.2004 (Ср) 10:59

В свойствах самого контрола (MS ADO Data Control) проверка подключения к атблице (подключаюсь через ODBC) проходит нормально.
Когда же запускаешь программу :( , при первом же обращении к Adodc (например: Adodc1.Recordset.MoveFirst) VB выдает ошибку:

Run time error 91
Object variable or with block variable not set

"Переменная объекта или переменная блока With не задана"

И он не может подключиться к атблице, а когда сначала ставишь

Adodc1.Refresh

А потом уже начинаешь работать с Recordset, все идет нормально.
Но проблема в том, что подключение к таблице методом Refresh занимает дико много времени.:shock:
Может кто знает как Adodc подключить по другому (может существует метод типа Adodc1.Open не существует :( ) :( ?

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 31.03.2004 (Ср) 15:07

ну вы, молодой человек, и извращенец :shock:... подключать ADODC к ODBC-источнуику данных... или подругому никак?
значит так, по порядку:
1. правой кнопкой мыши по ADODC щелкнули. выбрали ADODC Properties ->
2. в окне свойств ставим переключатель Use Connection String и жмем кнопку Build... ->
3. в появившемся окне выбираем Microsoft Jet 4.0 OLE DB Provider -> переходим на следующую вкладку (кнопка Next) ->
4. в поле Select or enter a database name вводим путь до нашей базы, или указываем, предварительно нажав кнопку с многоточием ->
5. проверяем подключение и, если все в порядке, жмем OK
6. вернувшись в окно свойств, переходим на вкладку RecordSource и настраиваем тип и источник записей для нашего ADODC
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 31.03.2004 (Ср) 20:43

Все бы хорошо, да поключаться то мне все равно надо к ODBC :cry:
И Microsoft Jet 4.0 OLE DB Provider здесь не помогает :cry:
К стати такая же ерунда, елси просто подключаться с помощью контрола Data к Dbf-нику (то есть выскакивает такая же ошибка), только у него это решается, если обращаться к Recordset не из события Form_load, а например по клику кнопки.
А в Adodc это не помогает :cry: :cry: :cry:

Rainbow
Человек-радуга
Человек-радуга
 
Сообщения: 543
Зарегистрирован: 13.05.2003 (Вт) 14:16

Сообщение Rainbow » 01.04.2004 (Чт) 18:21

А я нашла, почему у тебя ругался adodc :)
Дело в том, что этот контрол служит источником данных для других контролов - он предназначен для связывания с ними. Поскольку ты, видимо, его еще никуда не успел привязать, то он и не открывал коннекцию и, соответсвенно, не инициализировал рекордсет.

В принципе, как ты сегодня заметил в своей новой теме, действительно можно открывать объект рекордсет, а потом его подсовывать уже тем, кому это надо - хоть тому же adodc.
Учиться - значит открывать для себя то, что уже знаешь. <...> Учить - значит напоминать другим о том, что они знают это также хорошо, как и ты. <...> Лучше всего ты учишь тому, чему тебе самому больше всего надо научиться. (Р. Бах)

MOV
Постоялец
Постоялец
 
Сообщения: 414
Зарегистрирован: 13.03.2004 (Сб) 15:13
Откуда: Санкт-Петербург

Сообщение MOV » 01.04.2004 (Чт) 18:38

"Поскольку ты, видимо, его еще никуда не успел привязать, то он и не открывал коннекцию и, соответсвенно, не инициализировал рекордсет"

Да это я тоже понял потом :) .

Так что по новой теме, как быстрее работать? Может кто знает как работать со свойством Rs.Seek, это может помочь?


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot и гости: 2

    TopList