18.11.2018, 18:26 [+3 UTC]
в нашей команде: 3 117 чел. | участники онлайн: 16 (рекорд: 19)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.55 (06.11.2018)

Общие новости:
24.09.2018, 16:49

Форум:
08.11.2018, 13:36

Последний вопрос:
18.11.2018, 18:06

Последний ответ:
18.11.2018, 17:58

Последняя рассылка:
18.11.2018, 17:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
08.01.2011, 12:41 »
Посетитель - 356874
Спасибо за помощь! [вопрос № 181765, ответ № 265280]
21.11.2016, 20:30 »
svrvsvrv
Большое спасибо за помощь. Очень логичное и доступное объяснение. [вопрос № 190048, ответ № 274284]

РАЗДЕЛ • Pascal / Delphi / Lazarus

Создание программ на языках Pascal, Delphi и Lazarus.

[администратор рассылки: Зенченко Константин Николаевич (Модератор)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 684
Степанов Иван /REDDS
Статус: 4-й класс
Рейтинг: 26
Асмик Гаряка
Статус: Советник
Рейтинг: 6

Перейти к консультации №:
 

Консультация онлайн # 67530
Раздел: • Pascal / Delphi / Lazarus
Автор вопроса: Staram
Отправлена: 18.12.2006, 14:46
Поступило ответов: 1

Уважаемые эксперты по Дельфи!
Может кто сталкивался с ситуацией: при выполнении программы в строке помеченной звездочкой(*) происходит ошибка.
Project XXX raised exception class EAccessViolation with message 'Access violation at adress 77C4809E in module 'msvcrt.dll'. Write of ardess YYY'

Если же стоку *ADOSQL.SQL.Append('where X.b=:inPR') заменить на *ADOSQL.SQL.Append('where X.b=1') - все работает без проблем.

Delphi2006, MSSQL2000+SP3, msvcrt.dll(7.0.2600.2180), msado15.dll(2.81.1117.0)

Приложение:

Состояние: Консультация закрыта

Ответ # 132318 от Вадим Исаев ака sir Henry (Старший модератор)

Здравствуйте, Staram!
Закомментируйте вот эту строчку:
ADOSQL.Parameters.Clear;
Должно заработать.


Консультировал: Вадим Исаев ака sir Henry (Старший модератор)
Дата отправки: 18.12.2006, 19:18

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 67530

Посетитель

ID: 28535

# 1

= общий = | 19.12.2006, 09:57 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Здравствуйте, Sir Henry! Вы немного не внимательны: ADOSQL.Parameters.Clear практически никакой смысловой нагрузки не несет. В даннном примере ей и очищать нечего, компонент только создан! Ошибка происходит в момент Append (или Add).


Посетитель

ID: 28535

# 2

= общий = | 19.12.2006, 10:34 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

PS: При использовании Oracle всё работает.

Вадим Исаев ака sir Henry
Старший модератор

ID: 425

# 3

= общий = | 23.12.2006, 21:32 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Да уж, действительно, невнимателен. smile В таком случае у Вас все равно та же проблема, только с другого бока.В строке: ADOSQL.Parameters.ParamByName('inPR').Value возможно происходит обращение к параметру которого нет в списке. Попробуйте принудительно создать параметр с этим именем и посмотреть, что будет. ADOSQL.Parameters.CreateParameter('inPR', ftInteger, pdInput, 4, 1);

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)


Посетитель

ID: 28535

# 4

= общий = | 26.12.2006, 12:52 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

:) *ADOSQL.SQL.Append('where X.b=:inPR'); Ошибка происходит тут. Не ближе, и не дальше. Из самой среды дельфи можно выкрутиться - не использовать параметры, а просто добавлять значение. Но, данные запросы вываливают точно такую же ошибку , например в FastReport - а там уже проблематично проделать все ручками.

Вадим Исаев ака sir Henry
Старший модератор

ID: 425

# 5

= общий = | 26.12.2006, 17:04 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Т.е. создавать параметр вручную Вы категорически отказываетесь?

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)


Посетитель

ID: 28535

# 6

= общий = | 26.12.2006, 17:24 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Ну зачем так категорично? Нет, не отказываюсь - даже пробовал. Но результат все тот же, точнее нет результата.


Посетитель

ID: 28535

# 7

= общий = | 26.12.2006, 17:33 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

PS: Ошибка происходит раньше чем идет выполнение команды ADOSQL.Parameters.ParamByName('inPR').Value:=1; Т.е. до инициализации парамтре значением дело не доходит. Ошибка в строке *ADOSQL.SQL.Append('where X.b=:inPR');

Вадим Исаев ака sir Henry
Старший модератор

ID: 425

# 8

= общий = | 26.12.2006, 20:15 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Не питайте ложных иллюзий, что при ошибке "Access violation..." у Вас показывается строка с ошибкой. Подумаю еще. Если что-нибудь придумаю, то напишу Вам.

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

Вадим Исаев ака sir Henry
Старший модератор

ID: 425

# 9

= общий = | 26.12.2006, 20:19 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Попробуйте на двух разных машинах запустить Вашу программу, будет ли выскакивать эта ошибка.

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)


Посетитель

ID: 28535

# 10

= общий = | 27.12.2006, 09:19 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

На другой машине пробовал - эффект тот же (единственно не удалось попробовать на другой ОС), все эксперименты делались на WinXP. Даже пробовал на Дельфи 6 и на другой машине - все там же и та же ошибка. Неужели я что-то делаю такое экстраординарное? Неужели никто раньше не бился лбом о подобное?

Вадим Исаев ака sir Henry
Старший модератор

ID: 425

# 11

= общий = | 27.12.2006, 10:14 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

О подобном глюке я только от Вас первый раз услышал. smile И судя по молчанию других экспертов, они тоже с таким не сталкивались. Здесь видимо проглядывает ошибка взаимодействия OLE DB провайдера с установленной у Вас библиотекой msvcrt.dll (это run-time библиотека для Си\Си++). Попробуйте скачать с сайта Микрософт последнюю версию MDAC и установить ее у себя.

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

Вадим Исаев ака sir Henry
Старший модератор

ID: 425

# 12

= общий = | 27.12.2006, 10:17 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Ссылка: http://www.microsoft.com/downloads/details.aspx?familyid=78CAC895-EFC2-4F8E-A9E0-3A1AFBD5922E&displaylang=ru

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)


Посетитель

ID: 28535

# 13

= общий = | 27.12.2006, 10:40 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

:) В вопросе я привел версию MDAC (у меня как раз и установлена 2.80sp1). Искал обновления на MDAC2.80sp1 но ничего не нашел подходящего. В этом направлениии я прокопал в первую очередь!!! Т.к. научен "EOleException with message '[Microsoft][Драйвер ODBC dBase] Непредвиденная ошибка драйвера внешней базы данных (15877)'" - которая решилась благодаря сайту Микрософта [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase]"BDE"=dword:00000002

Вадим Исаев ака sir Henry
Старший модератор

ID: 425

# 14

= общий = | 27.12.2006, 11:26 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Видимо я неправильно выразился. Не могло ли быть так, что какая-то установка испортила вот эту самую версию MDAC2.80sp1? Может быть стоит еще раз установить этот MDAC?

=====
Я только в одном глубоко убеждён - не надо иметь убеждений! :)

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 1.09371 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.55 от 06.11.2018