![]() |
|
![]() ![]() ![]() |
|
stark3 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.8.2013 Репутация: нет Всего: нет |
Приветствую
При запуске из Delphi (F9) ошибка: "Project Project1.exe raised exception class EOleException with message 'Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом'" Но все работает При запуске ехе-ка ошибки, соответственно, нет Код:
Перепробовал много разных вариантов, но всегда эта ошибка Что это может быть? БД - mysql, для поля date_montaz - тип DATE, при создании параметра вручную в ADOQuery.Parameters все так же |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 3 Всего: 72 |
Вот здесь засада. Проходил это, ответ кажется нашел на sql.ru - когда создавался АДО типа DATE не было. Емнип, если попробовать посмотреть на параметры этого запроса в designtime, то типом параметра окажется строка. Для совместимости юзайте DATETIME Имеется ввиду - ALTER TABLE ALTER COLUMN тра-ля-ля Это сообщение отредактировал(а) kami - 5.12.2013, 15:29 |
|||
|
||||
stark3 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.8.2013 Репутация: нет Всего: нет |
kami,
напомню, что параметр срабатывает, в гриде даты те, что надо. но... появляется эта ошибка есть у меня такой тип в таблице, переделал:
не помогло Выяснилось, что ошибка появляется только 1 раз при первом открытии ADOQuery, потом работает без нареканий даже при смене значения даты То же самое происходит при работе с другими типами - int, string и т.д. Может ну его в try-finally? Но это как-то не по феншую(( Это сообщение отредактировал(а) stark3 - 5.12.2013, 16:03 |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 3 Всего: 72 |
||||
|
||||
Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: 1 Всего: 6 |
Попробуй вставлять дату прямо в текст запроса, без использования параметра, преобразовав её в строку.
--------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
stark3 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.8.2013 Репутация: нет Всего: нет |
kami,
гм, напрашивается вопрос, как сделать, чтоб ошибка не появлялась? ведь преобразовывает правильно, но долбаная ошибка не исчезает. Может это баг среды? или драйвера мускл? Попробовал так, все равно((
Добавлено через 2 минуты и 53 секунды Агрох, сейчас у меня так во всем проекте сделано - работает без нареканий Но хотелось бы использовать параметры, т.к. например, не слишком изящно каждый раз любую дату конвертить через formatdatetime в америкосовский формат СУБД |
|||
|
||||
Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: 1 Всего: 6 |
Ткну пальцем в небо.
Разницы по идее быть не должно, но всё же. Вместо ADOQuery_Eh1.Active:=true; напиши ADOQuery_Eh1.Open; --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 3 Всего: 72 |
||||
|
||||
Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: 1 Всего: 6 |
Точно. Now же возвращает datetime а не date. kami, ты об этом?
Только наверно лучше будет datetime в delphi преобразовать в date, а не в таблице использовать datetime вместо date. --------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
stark3 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.8.2013 Репутация: нет Всего: нет |
Агрох, без изменений
kami, я ж пробовал) Ну хорошо, уходим от дат и времени. Это тоже выдает ошибку, но работает:
|
|||
|
||||
Агрох |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 6.4.2013 Где: Москва Репутация: 1 Всего: 6 |
А если текст запроса и параметры указать заранее, а не динамически тоже самое выдаст? Т.е. кинуть компонент на форму и настроить.
Попробуй ещё все значения параметров при присвоении преобразовывать в стринг.
--------------------
Putin here, Putin there, Putin almost everywhere! |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 3 Всего: 72 |
Протестировал у себя:
Я же говорил - нужен тип датавремя. правда, не там хотел поменять, но все же ![]() И все равно - рекомендую в самой таблице сделать тип не DATE, а DATETIME. Иначе при автоматическом распознавании типов полей опять может всплыть бяка. |
|||
|
||||
БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: нет Всего: 17 |
Загляните сюда: http://www.delphikingdom.com/asp/answer.asp?IDAnswer=56405 (См. сообщение от 25-10-2007 16:48) |
|||
|
||||
stark3 |
|
||||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.8.2013 Репутация: нет Всего: нет |
Указывал в ADOQuery.SQL текст запроса и параметр в .Parameters в desigbtime - все сработало без ошибки (но мне так не нужно) В любом другом случае (т.е., например, запрос в динамике, параметр - в query) ошибка(( Строки как только не преобразовывал, все одно... Добавлено через 2 минуты и 44 секунды
Спасибо, но еще раз повторюсь, давайте забудем про дата-время) Вон с integer тоже не пашет Добавлено через 6 минут и 37 секунд
Спасибо Но все же, думаю, это не очень правильно. Я лучше через прямую подстановку в запрос буду делать, чем отключу сообщения о НЕкритических ошибках Да и дело уже не в "работает-не работает", а почему возникает эта ошибка |
||||||||||||
|
|||||||||||||
stark3 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 1.8.2013 Репутация: нет Всего: нет |
Всем спасибо, похоже выяснил в чем дело
Вроде как это глюк ODBC прова - использую драйвер от MySQL и ставлю его на каждый комп Буду и дальше подставлять в запрос данные, без параметров... К сожалению(( Это сообщение отредактировал(а) stark3 - 6.12.2013, 09:01 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |