Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Ошибка "Key violation" при выполнении запроса.   Найти похожие ветки 

 
SHort   (2005-02-04 16:27) [0]

Есть база данных (таблицы в файлах dbf), доступ к которой роисходит через компоненты Table и Query. Перед каждой операцией с любой таблицей она (таблица) открывается, после операции - закрывается.
При выполнении Query.Open происходит вышеуказанная ошибка.

Подскажите, как с этим бороться?


 
msguns ©   (2005-02-04 16:36) [1]

Не открывать таблицу.
А если серьезно, то того, что в сабже, хватит только на подколки или для пищи желающим поупражняться в телепатии и ясновидении.


 
msguns ©   (2005-02-04 16:41) [2]

Не открывать таблицу.
А если серьезно, то того, что в сабже, хватит только на подколки или для пищи желающим поупражняться в телепатии и ясновидении.


 
SHort   (2005-02-04 16:56) [3]

Если было любое обращение к таблице преред выполнением запроса - появляется эта ошибка, а если запрос выполняется первым - все ОК, ни каких ошибок.


 
Соловьев ©   (2005-02-04 16:58) [4]


> Если было любое обращение к таблице преред выполнением запроса
> - появляется эта ошибка, а если запрос выполняется первым
> - все ОК, ни каких ошибок.

код приведи


 
DSKalugin ©   (2005-02-04 17: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.


 
DSKalugin ©   (2005-02-04 17:01) [6]

Если эта операция выборка то 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.


 
SHort   (2005-02-04 17:03) [7]

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


 
Johnmen ©   (2005-02-04 17:11) [8]

>SHort

Индексы поубивай и попробуй ещё раз...


 
DSKalugin ©   (2005-02-04 18:33) [9]

Переменная R_DAT правильно инициализируется?
попробуй так
DM.QDnevn.ParamByName("PDATR").AsDateTime



Страницы: 1 вся ветка

Текущий архив: 2005.03.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
3-1107705851
Asail
2005-02-06 19:04
2005.03.06
Вопрос по DBGridEh...?


4-1106033614
volser
2005-01-18 10:33
2005.03.06
Как по хендлу SysListView32 получитьсписок всех его элементов?


1-1108547754
Slonco
2005-02-16 12:55
2005.03.06
Как войти в режим редактирования?


1-1108805565
Kladbische
2005-02-19 12:32
2005.03.06
Иконка в ListBox.


14-1108102012
MBo
2005-02-11 09:06
2005.03.06
Пятничная разминка заскорузлых нейронов и аксонов :)