![]() |
|
|
![]()
|
|
| bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: нет Всего: 29 |
Сабж!!
Делаю запрос:
В Дизайн тайм всё работает, а в Run time нет Подскажите что делать? |
|||
|
||||
| DEER |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 749 Регистрация: 12.4.2005 Где: г. Рязань Репутация: нет Всего: 13 |
У меня была такая же проблема....
Я до сих пор грешу на саму Дельфю.... Я боролся с этим так: компилировал проект, а потом запускал экзесшку из под эксплорера, почему то так работало -------------------- |
|||
|
||||
| Bes |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
во первых все таки не
sql1.Open; а sql1.active:=true; а во вторых в T-SQL-е не допускается такая конструкция Group by order by и нечего тут грешить на дельфю тут надо пользоваться СКУЛ командой having если я вас правильно понял конечно |
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
По поводу Open и Active ты не прав. Оба варианта это по сути синонимы. По поводу 'Group by order by' не скажу, точно не знаю. Но bartram утверждает что из дизайн-тайма такой запрос выполняется.
А что значит "в Run time нет"? Так прямо и пишет "Не работаю"? На всякий случай сразу спрошу: А ты компонент sql1-то создал? -------------------- Все знать невозможно, но хочется |
||||
|
|||||
| kobra |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
order by - сортировщик а having - филтр. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
Допускается. Ошибку в студию! Код должен работать. Если не работает то причина в доступе к базе данных... -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: нет Всего: 29 |
Петрович, говорит Acess Volatiion и что какая то ошибка в модуле таком то... адресе таком то..., и в библиотеке MsJet4.0
|
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
sql1 - это какого типа переменная?
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| Bes |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
точно точно сорри просто я такую проблему решил с помощью having правда group by order by так и не заработала
да мы тут просто с Бартрамом спорили по этому поводу это к прошлой теме, помоему эти два метода даже реализованы одинаково просто для меня логичнее для тэйбла использовать Опен Клозе а для Квери Актив типа подключаю отключаю а тэйбл он все время прицеплен поэтому я его открываю закрываю - так просто условности P.S. будет интересно выяснить причину ошибки а то я так и не допер Это сообщение отредактировал(а) Bes - 26.7.2005, 08:17 |
||||
|
|||||
| bartram |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: нет Всего: 29 |
|
||||
|
|||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
bartram, а sql1 это компонент лежащий на форме, или ты его создаешь динамически?
И вообще, постарайся сделать как можно более простую форму на которой можно продемонстрировать ошибку, и выложи ее сюда. В приведенном коде, вроде ничего криминального не видно. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| kobra |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 730 Регистрация: 15.6.2005 Где: Грузия, Тбилиси Репутация: 1 Всего: 9 |
попробуи отклучить от sql1 TDataSource и правер что будет.
|
|||
|
||||
| Bes |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 806 Регистрация: 8.12.2004 Репутация: 2 Всего: 7 |
у меня получилось действительновсе работает видно крепко я тормознул
испытывал на SQLServer2000 Delphi6 ADOQuery запрос
попробовал и с Активе и с Опен все сработало Это сообщение отредактировал(а) Bes - 26.7.2005, 12:53 |
||||
|
|||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
bartram
1. Попробуй то же самое запихнуть в ADOCommand, если сработает - ну понятно, что в корзину отправить 2. Допустим не сработало - версию MDAC в студию. А то я через ADOCommand еще и не такой изврат устраивал, и либо и в design и в run - везде работало, либо нигде (почему не работало - сам догадайся). Да, Query у тебя подключен самостоятельно? Если нет - Connection ? И конечно для страховки выполни запрос в Query Analyzer - там он проходит? |
|||
|
||||
| bartram |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: нет Всего: 29 |
Лежит на форме
Он подключён к коннекшн
Ладно сделаю |
||||||
|
|||||||
| bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: нет Всего: 29 |
Петрович, я сделал пример вот посмотри всё вроде нормально но ошибка
http://bartram.com.ru/files/my/db.zip Не знаю что делать |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Приведенный тобой пример у меня прекрасно работает. Только пришлось добавить в конец TForm1.Button1Click оператор sql1.Open.
Так что проблема где то у тебя в системе/настройках/пакетах и пр. В таком случае, могу лишь посоветовать подключить модули с отладочной информацией и пошагово пройтись в sql1.Open что бы понять какое действие конкретно вызывает ошибку. Ну и конечно можно попробовать переустановить Jet. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: нет Всего: 29 |
Блин Делфи не давно же переставил, что опять ? |
|||
|
||||
| bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: нет Всего: 29 |
Переустановка Делфи и Системы не помогла
|
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Дык я думаю что надо не делфи переставлять, а скорее всего мс-офис. Свежий JET обычно с ним идет, или с SP виндов.
А можно просто снять с сайта микрософта максимально свежий движок JET (кажется называется что-то вроде то вроде MDAC) -------------------- Все знать невозможно, но хочется |
|||
|
||||
| SergeBS |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
bartram
Есть у меня предположение, переходящее в уверенность, что у тебя где-то косяки с активизацией. В design-то работает:
И шагай еще вперед, к мелкомягким в гости.
Точнее, на март там лежал URL: http://download.microsoft.com/download/c/f...48/MDAC_TYP.EXE 5.3 Мб, MDAC V 2.8 Еще полезно URL: http://download.microsoft.com/download/8/4...91a7/cc_pkg.exe Эта фигатура покажет, какая у тебя версия MDAC (а это не только ADO, а еще и DAO и ..., ну неважно). Весит 220 кб. Вначале имеет смысл ее запустить - напишет, что у тебя не так Сам понимаешь - ссылки могут устареть. Но там все прозрачно видно, где что лежит. Есть только какой-то провокационный запрос, не помню какой. С ним проблемы не было. Имена файлов должны остаться те же. Но скорее причина-таки в активизации. Как-нибудь к вечеру сдую твой пример и посмотрю. |
||||
|
|||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
bartram
Твой пример как готовый exe (с добавлением, есс-но sql1.open) - работает. В Delphi - ругается типа Acces violation ... - ну ты сам знаешь А теперь лекарство: sql1.ParamCheck = false (у тебя true - нафига не знаю, ты же параметры явно ввалил.). И будет работать и при запуске из-под IDE. IMHO Delphi тут не при чем. У меня Офис 97, а я полагаю у Петровича - 2000. Эти Access-ы резко различаются по глючизму. |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 11 Всего: 22 |
bartram
Вдогонку: Я тут в DelphiKingdom статейках немного полазил по своим делам, а заодно и по твоей проблеме нашлось: ADO.OLEDB.JET.Access Violation при передаче неполного параметра
Как у тебя, короче. Лечение - формировать строку запроса за 1 раз, т.е. не 3 ADD, а 1. До ADDа запрос сформировать в строке. Подробнее - в статье. |
|||
|
||||
| bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: нет Всего: 29 |
SergeBS, спасибо тебе за беспокойства но я уже решил свою проблему вот так:
Спасибо Петровичу |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
SergeBS Прав. Проблема возникает тогда, когда в sql1.SQL присвоен не полный запрос. Тогда, если ParamCheck = True, компонент пытается выполнить синтаксический разбор SQL-оператора для определения наличия в нем параметров. Так вот, почему-то, при работе из-под IDE Delphi 7, при разборе 'SELECT rg.name, Count(cr.ID_Region)' вызникает эта ошибка.
Выходов два. Либо присваивать весь оператор целиком (как в последнем посте), либо цстановить компоненту ParamCheck = False. Кстати, под Delphi 6, ошибка не возникает. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| bartram |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1606 Регистрация: 22.2.2004 Где: Russia, Samara Репутация: нет Всего: 29 |
Вот это для меня загадка |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |