Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не исполняется запрос в коде, Acess Vilation 
:(
    Опции темы
bartram
Дата 28.7.2005, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: нет
Всего: 29



Петрович, я сделал пример вот посмотри всё вроде нормально но ошибка smile
http://bartram.com.ru/files/my/db.zip

Не знаю что делать smile


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Петрович
Дата 28.7.2005, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



Приведенный тобой пример у меня прекрасно работает. Только пришлось добавить в конец TForm1.Button1Click оператор sql1.Open.
Так что проблема где то у тебя в системе/настройках/пакетах и пр.
В таком случае, могу лишь посоветовать подключить модули с отладочной информацией и пошагово пройтись в sql1.Open что бы понять какое действие конкретно вызывает ошибку.
Ну и конечно можно попробовать переустановить Jet.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
bartram
Дата 28.7.2005, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: нет
Всего: 29



Цитата
Так что проблема где то у тебя в системе/настройках/пакетах и пр.

Блин Делфи не давно же переставил, что опять ? smile smile


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
bartram
Дата 31.7.2005, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: нет
Всего: 29



Переустановка Делфи и Системы не помогла smile


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Петрович
Дата 31.7.2005, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: 6
Всего: 55



Дык я думаю что надо не делфи переставлять, а скорее всего мс-офис. Свежий JET обычно с ним идет, или с SP виндов.
А можно просто снять с сайта микрософта максимально свежий движок JET (кажется называется что-то вроде то вроде MDAC)



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
SergeBS
Дата 1.8.2005, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



bartram
Есть у меня предположение, переходящее в уверенность, что у тебя где-то косяки с активизацией.
В design-то работает:
Цитата

Приведенный тобой пример у меня прекрасно работает. Только пришлось добавить в конец TForm1.Button1Click оператор sql1.Open


И шагай еще вперед, к мелкомягким в гости. smile

Цитата

Набор программного обеспечения разработчика для доступа к данным Microsoft (Microsoft Data Access Software Development kit) (dasdksa.exe, 36 MB) с сайта Microsoft. Если Вы имеет модем со скоростью передачи 28 KB, то имеются файлы меньшего размера, доступные для загрузки, но которые не являются полным комплектом SDK. Переходите к http://www.microsoft.com/data/download.htm. Там Вы найдете как полный SDK, так и файлы меньшего размера.

Точнее, на март там лежал
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 кб. Вначале имеет смысл ее запустить - напишет, что у тебя не так smile.
Сам понимаешь - ссылки могут устареть. Но там все прозрачно видно, где что лежит. Есть только какой-то провокационный запрос, не помню какой. С ним проблемы не было. Имена файлов должны остаться те же.

Но скорее причина-таки в активизации. Как-нибудь к вечеру сдую твой пример и посмотрю.

PM MAIL   Вверх
SergeBS
Дата 1.8.2005, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



bartram
Твой пример как готовый exe (с добавлением, есс-но sql1.open) - работает.
В Delphi - ругается типа
Acces violation ... - ну ты сам знаешь smile
А теперь лекарство:
sql1.ParamCheck = false
(у тебя true - нафига не знаю, ты же параметры явно ввалил.).
И будет работать и при запуске из-под IDE.
IMHO Delphi тут не при чем. У меня Офис 97, а я полагаю у Петровича - 2000. Эти Access-ы резко различаются по глючизму. smile

PM MAIL   Вверх
SergeBS
Дата 7.8.2005, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 11
Всего: 22



bartram
Вдогонку:
Я тут в DelphiKingdom статейках немного полазил по своим делам, а заодно и по твоей проблеме нашлось:

ADO.OLEDB.JET.Access Violation при передаче неполного параметра

Цитата

Некоторый, вполне типичный, код заполнения запроса в процессе выполнения вызывает Access Violation, притом, что согласно документации все должно работать корректно.

Пример кода:
Допустим, есть база данных в MS Access 2000, имеющая таблицу main и в ней целочисленное (INT) поле id в качестве главного ключа. Так же есть компонент ADOQuery1: TADOQuery, для доступа к базе данных. Максимальное значение поля id может быть получено следующим кодом:

ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT max(id)'); // -- Сбой здесь !!!
ADOQuery1.SQL.Add('AS idmax');
ADOQuery1.SQL.Add('FROM main');
ADOQuery1.Active:=true;


Как у тебя, короче. Лечение - формировать строку запроса за 1 раз, т.е. не 3 ADD, а 1. До ADDа запрос сформировать в строке. Подробнее - в статье.

PM MAIL   Вверх
bartram
Дата 7.8.2005, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: нет
Всего: 29



SergeBS, спасибо тебе за беспокойства но я уже решил свою проблему вот так:
Код

procedure TStatRegion.Button1Click(Sender: TObject);
begin
sql1.SQL.Text := 'SELECT rg.name, Count(cr.ID_Region)' +' FROM Corespondents AS cr LEFT JOIN Region AS rg ON cr.ID_Region=rg.ID'
                  +' WHERE cr.ID_Contry ='+ ListContry.Text
                  +' GROUP BY rg.Name'
                  +' ORDER BY rg.Name';
sql1.Open;
end;


Спасибо Петровичу smile


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Петрович
Дата 7.8.2005, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 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, ошибка не возникает.


--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
bartram
Дата 7.8.2005, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1606
Регистрация: 22.2.2004
Где: Russia, Samara

Репутация: нет
Всего: 29



Цитата
Кстати, под Delphi 6, ошибка не возникает.

Вот это для меня загадка smile


--------------------
В каждом из нас спит гений, но с каждым днем все крепче ;-)
bartram.ru
Twitter
user posted image 

PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0501 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.