![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновляемый запрос в старой программе. [D7, XP]
DimonS © (2010-10-18 05:26:00)Доброго времени суток всем.
В общем, ситуация банальная: непонятно с какого перепугу в программе начала выскакивать ошибка "В операции должен быть использован обновляемый запрос". Программка простая как три байта, написана еще лет шесть назад и до последнего времени работала без нареканий. Простая БД на Access со списком техники и норм расхода ГСМ. Ошибка появляется при изменении записи.
ADOCommand1.CommandText:='update Tehnica set Norma_Ch=:N where id=:id';
ADOCommand1.Execute;
Элементарный запрос, работавший больше пяти лет исправно. База не перемещалась и не изменялась. Причем ошибка выскакивает даже если база локально на диске лежит. Программка написана еще на Д6.
Поиском в инете пользоваться умею, но толкового ничего не нашел, даже на офсайте:
1. Перекрестный запрос (исключено).
2. Не полный доступ к базе (исключено).
3. Установить BDE (установлен изначально).
4. Установить новые версии драйверов (не ставятся, пишет, что установлены последние).
5. Конфликт с самой виндой/версией обновлений.
Склоняюсь к последнему варианту, похоже, что после переустановки винды все и произошло. Но что делать - ума не приложу. Винда лицензионная, менять ее никто не разрешит. Хотя что-то подредактировать в ней не возбраняется, но что именно?
Anatoly Podgoretsky (2010-10-19 11:12:00) [1]
> Да там всего-то две строки :))
Не глупи, добавь еще пятнадцать, а то что это за проект, одно горе.
Германн (2010-10-19 02:53:00) [2]
> Да там всего-то две строки :))
Во всех модулях, задействованных в проекте?
:)
Ну тогда это супер-проект!
DimonS (2010-10-19 02:46:00) [3]
> В 17-й строке - это точно известно.
Да там всего-то две строки :))
Германн (2010-10-19 02:03:00) [4]
> В чем был глюк неизвестно.
В 17-й строке - это точно известно. Неизвестно только в каком модуле. :)
DimonS (2010-10-19 01:58:00) [5]
> Вряд ли ошибка в этих двух строка и снос компоненты это
> доказал.
Самое интересное, что даже строку подключения не менял, она при создании формы присваивается. Тупо бросил ADOConnection на форму, обозвал его так же, как снесенный и все. В чем был глюк неизвестно.
Anatoly Podgoretsky (2010-10-18 11:22:00) [6]Вряд ли ошибка в этих двух строка и снос компоненты это доказал.
sniknik (2010-10-18 11:07:00) [7]> в инете несколько раз этот совет встречал.
там рядом должно бы быть написано про isam paradox/dbase, которые его используют.
DimonS (2010-10-18 10:17:00) [8]В общем, вопрос закрыт. Незнаю, что программке не нравилось, просто тупо снес и заново установил ADOConnection создал заново подключение и все заработало, ошибки не выдает.
DimonS (2010-10-18 09:50:00) [9]
> sniknik ©
Про BDE я не с потолка же взял, в инете несколько раз этот совет встречал. Но он нужен в любом случае, т. к. используется несколькими программами.
И про 895 результатов я вкурсе, в них же и копался.
Ладно, про устаревший метод встреча, попробую обойти его.
sniknik (2010-10-18 09:36:00) [10]> База ридонли не стала, в самом Access табличка отлично изменяется.
> Попытка использовать устаревшийметод OpenQueryDef для запроса, находящегося в базе данных, открытой с доступом только для чтения.
> написана еще лет шесть назад.
> Программка написана еще на Д6.
связи не видишь? как вариант, один из возможных.
> Именно так и искал. И не только такими словами.
> "В операции должен использоваться обновляемый запрос" [5]
и только в этой ветке написал
> "В операции должен быть использован обновляемый запрос" [5]
и все одно не нашел.
разницы не видишь? по твоему варианту 2 найденных результата по правильному 895.
кстати
> 3. Установить BDE (установлен изначально).
а это нафига? (и это важно, т.к. если используется парадокс то он может использоваться в режиме ридонли, по умолчанию выбирает если есть BDE то нет, но можно включить режим явно даже при установленном)
DimonS (2010-10-18 08:10:00) [11]
> sniknik © (18.10.10 08:05) [5]
База ридонли не стала, в самом Access табличка отлично изменяется.
> "В операции должен использоваться обновляемый запрос"
Именно так и искал. И не только такими словами.
sniknik (2010-10-18 08:08:00) [12]вот из справки "ненаходящейся ошибки"
Попытка использовать устаревший метод OpenQueryDef для запроса, находящегося в базе данных, открытой с доступом только для чтения.
DimonS (2010-10-18 08:06:00) [13]
> MonoLife © (18.10.10 07:43) [4]
Провайдер - Microsoft.Jet.OLEDB.4.0.
ADOConnection.Mode=cmShareDenyNone.
Запуск, естественно, с полными правами.
В том-то и дело, что не работает на других компах. На других эта ошибка и вылезла, проверил на своем - то же самое...
sniknik (2010-10-18 08:05:00) [14]> Поиском в инете пользоваться умею, но толкового ничего не нашел, даже на офсайте:
а если писать ошибку как она есть, без коверканий... - "В операции должен использоваться обновляемый запрос"
и еще в справке самого аксесса посмотри, там тоже есть...
> База не перемещалась и не изменялась.
но стала ридонли, например.
MonoLife (2010-10-18 07:43:00) [15]Какой провайдер используется?
Запускается "под админом"
Работает ли программа на другом компьютере?
DimonS (2010-10-18 07:09:00) [16]
> MonoLife © (18.10.10 06:15) [2]
Ясно, что они инициализируются, просто не написал сюда.
id - поле-счетчик, ключевое, N - числовое.
MonoLife (2010-10-18 06:15:00) [17]А где инициализация параметров N, ID?
MonoLife (2010-10-18 06:15:00) [18]А где инициализация параметров N, ID?