![]() |
|
Модераторы: Akina |
![]()
|
|
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Привет!
Это опять я. ;) У меня возникла такая проблема: 1. Создаю таблицу address в файле db1.mdb, такой структуры: id | name | family ---|---------|------------ 1 | Vasya | Pupkin Где id уникальный номер, который добавляется автоматически при добавлении новой записи в таблицу. 2. Создаю рядом файл db1.udl и связываю его с файлом db1.mdb который создал в первом пункте. 3. Затем в проект добавляю компоненты: a.) Microsoft ADO Data Control 6.0 b.) Microsoft DataGrid Control 6.0 4. Добавляю на форму: ADO Data Control - ( adoBase ), DataGrid Control ( grdTable ) и две кнопки Delete - (cmdDel), Exit - ( cmdExit ). 5. Компоненту adoBase назначаю следующие параметры: ConnectionString = путь к файлу .udl RecordSource = "SELECT * FROM address" 6. Компоненту grdTable назначаю следующие параметры: AllowUpdate = False DataSource = adoBase 7. Для всей этой бадяги пишу такой код:
Проблема, собственно, в процедуре обработки события cmdDel_Click. В общем, пользователь должен сначала выделить id той строки, которую необходимо удалить. Всё вроде работает, строка, действительно, удаляется, но после каждой удалённой строки я получаю такое сообщение об ошибке: Операция не допускается, если объект закрыт После чего VB указывает на эту строку кода: adoBase.Refresh Подскажите, пожалуйста, как это лечится?!!! Я уже несколько раз перечитал раздел в книге по данной теме, но ничего так и не понял. Несколько раз пробовал создавать аналогичное подключение. Результат тот же. Извините за такое длинное сообщение, просто хотелось изложить подробно, дабы не напрягать вас в таких мелочах, как какие компоненты я использовал и какие у них имена и т.п. Заранее спасибо, Денис Это сообщение отредактировал(а) korob2001 - 2.11.2004, 02:33 -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
Я не работаю с контролами типа ADODC, но предполагаю что проблема в том, что инструкция DELETE не возращает записи. Любопытно то, что у контрола нет метода Execute, который как раз таки и используется для выполнения SQL-инструкций, не возвращающих ни одной записи. Попробуй сделать так, как я предлагаю, может получится.
может быть это "криво", но только потому, что я никогда не использую контролы дла работы с базами. Лучше всего использовать ADO подключенную через References, дабы не было вот таких вот "тупиков". -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| boevik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1452 Регистрация: 31.5.2004 Где: Израиль Репутация: 12 Всего: 35 |
-Mikle-, выполнится только select.
-------------------- Никогда не говори никогда |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
блин, то есть при рефреше происходит выполнение запроса... логично конечно... но как человеку помочь? Может On Error Resume Next поставить? -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| REVOLT |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 180 Регистрация: 5.4.2004 Где: г. Бузулук Репутация: нет Всего: нет |
-Mikle-, это точно!
З.Ы свяжись со мной 256-824-960 |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| -Mikle- |
|
|||
![]() Невидимка Vingrad'а ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1672 Регистрация: 22.6.2003 Где: Казахстан, Астана Репутация: 8 Всего: 59 |
cardinal, он же не с объектами ADO работает, а с ADODC (контрол)
хотя ссылка очень полезная, лучше ему писать проги используя ADO -------------------- Если тебе плюют в спину, значит ты впереди... |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Спасибо. Я бегло просмотрел, похоже на то, что нужно. Сейчас внимательно почитаю. Если возникнут вопросы, буду писать их здесь.
Ещё раз спасибо. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Решил проблему таким способом:
Теперь всё работает. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |