![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка "Key violation" при выполнении запроса. [D7, dBase, FoxPro]
SHort © (2005-02-04 16:27:00)Есть база данных (таблицы в файлах dbf), доступ к которой роисходит через компоненты Table и Query. Перед каждой операцией с любой таблицей она (таблица) открывается, после операции - закрывается.
При выполнении Query.Open происходит вышеуказанная ошибка.
Подскажите, как с этим бороться?
DSKalugin (2005-02-04 18:33:00) [1]Переменная R_DAT правильно инициализируется?
попробуй так
DM.QDnevn.ParamByName('PDATR').AsDate Time
Johnmen (2005-02-04 17:11:00) [2]>SHort
Индексы поубивай и попробуй ещё раз...
SHort (2005-02-04 17:03:00) [3]DM.DbKomun.Open;
DM.QDnevn.ParamByName('PDATR').AsDate:=R_DAT;
DM.QDnevn.Open; //Здесь ошибка
NewOperDnebnik.QuickRep1.Preview;
DM.QDnevn.Close;
DM.DbKomun.Close;
Сам запрос
SELECT SUMOP, DATOP, FIO, NSCH, WHAT, KBK, WHO, PROCPR, PROCKL, STORNO, SMEN, LSCHPOL, KBK, KPR, KCL
FROM OPERKOM Operkom
WHERE (STORNO IS NULL)
AND (DATOP = :PDATR)
ORDER BY NSCH
DSKalugin (2005-02-04 17:01:00) [4]Если эта операция выборка то Query.Open
Если модифицирующий запрос (insert, update, delete)
тогда Query.ExecSQL
В хэлпе по TQuery ясно сказано
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
For SELECT statements, call Open instead of ExecSQL.
DSKalugin (2005-02-04 17:00:00) [5]Если эта операция выборка то Query.Open
Если модифицирующий запрос (insert, update, delete)
тогда Query.ExecSQL
В хэлпе по TQuery ясно сказано
Call ExecSQL to execute the SQL statement currently assigned to the SQL property. Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).
For SELECT statements, call Open instead of ExecSQL.
Соловьев (2005-02-04 16:58:00) [6]
> Если было любое обращение к таблице преред выполнением запроса
> - появляется эта ошибка, а если запрос выполняется первым
> - все ОК, ни каких ошибок.
код приведи
SHort (2005-02-04 16:56:00) [7]Если было любое обращение к таблице преред выполнением запроса - появляется эта ошибка, а если запрос выполняется первым - все ОК, ни каких ошибок.
msguns (2005-02-04 16:41:00) [8]Не открывать таблицу.
А если серьезно, то того, что в сабже, хватит только на подколки или для пищи желающим поупражняться в телепатии и ясновидении.
msguns (2005-02-04 16:36:00) [9]Не открывать таблицу.
А если серьезно, то того, что в сабже, хватит только на подколки или для пищи желающим поупражняться в телепатии и ясновидении.