![]() |
|
![]() ![]() ![]() |
|
kami |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 3 Всего: 72 |
Добрый день, уважаемые!
Столкнулся с непонятной мне проблемой в виде "EOLEException - BOF или EOF имеет значение True, либо текущая запись удалена." Но возникает оно на Parameters.Refresh, что как бы вообще не.
Реализация ReadFromDB почти идентичная:
Callstack указывает на: ADODB.RefreshFromADO ADODB.TParameters.InternalRefresh ADODB.TParameters.Refresh Меняем местами List1 и List2 - проблема исчезает, но это половинчатое решение - списков может быть несколько, часть с параметрами, часть без. Почему так и что можно сделать? Это сообщение отредактировал(а) kami - 26.11.2013, 13:37 |
||||
|
|||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 3 Всего: 72 |
Увы - нет. Пробовал и так, но sp гарантированно закрыта. Принудительное добавление sp.Close в оба (и по отдельности) метода ReadFromDB результата не дает, ошибка та же... P.S. изначально забыл сказать - используется D2010, Win7 со всеми обновлениями. |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
если есть демо проект с этой ошибкой, могу проверить на XE3 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
kami |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 3 Всего: 72 |
Думаю, что дело не в Delphi... хотя... Минимальная конфигурация (другой, к сожалению, нет), на которой воспроизводится это хозяйство: MySQL v5.6 + ODBC драйвер (ох, не помню версию, но вроде последняя - 5.2.6). В параметрах ODBC -подключения всё по умолчанию, кроме: Enable automatic reconnect и Allow multiple statements= True. Скрипт для БД:
Код приложения уместился в один обработчик события:
Это сообщение отредактировал(а) kami - 3.12.2013, 21:15 |
||||
|
|||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
MySQL у меня нет, пробовал на Firebird через ODBC, на Delphi XE3.
Conn - создавал в дизайне. в твоем коде не хватает conn.Connected := True; Ошибок не видел. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 3 Всего: 72 |
Оно автоматом выставится при первом sp.Open. Тогда - одно из двух. Либо мускул и его ODBC, либо Delphi 2010... (надеюсь, третье - кривые руки можно исключить). С Delphi и мускула я не слезу, так что... оставим всё как есть, благо это исключение вылезает только при отладке, даже не влияя на дальнейшее выполнение кода, правда - что происходит с самими параметрами при этом - не выяснял... Это сообщение отредактировал(а) kami - 4.12.2013, 08:45 |
|||
|
||||
Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 23 Всего: 54 |
Было исключение на Refresh, о том что нет коннекта. -------------------- Кольцов Виктор Владимирович |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 3 Всего: 72 |
А вот это странно. Ибо (по крайней мере в D2010) в TParameters.Refresh первым делом вызывается Command.SetConnectionFlag(cfParameters, True)и в нем железобетонно (при неактивном соединении) OpenConnection. Добавлено через 2 минуты и 27 секунд Да это легко проверить и в дизайнтайм - при любой манипуляции с параметрами, списком полей, при попытке выбрать из списка имя sp или выставить sp.Active - автоматом активируется ADOConnection. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |