Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка при удалении записи (Ado, Access) / 8 сообщений из 8, страница 1 из 1
09.10.2003, 12:04
    #32288643
Tal
Tal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при удалении записи (Ado, Access)
День добрый!
Чего-то я не пойму че за портак.
в-общем имеется таблица при нажатии на баттон происходит копирование текущей записи в другую таблицу (типа таблица списанных документов) а потом из текущей таблицы эта запись удаляется.
в общем типа такого кода:

IF AdoQuery1.Fields[3].Value='НА СПИСАНИЕ' THEN
begin
AdoQuery4.Close;
AdoQuery4.SQL.Clear;
AdoQuery4.SQL.Add('INSERT INTO spisan (nazv,dat,prim,dats) VALUES (:nazv, :dat, :prim, :dats)');
AdoQuery4.parameters.paramByName('nazv').value:=AdoQuery1.Fields[1].Value;
AdoQuery4.parameters.paramByName('dat').Value:=AdoQuery1.Fields[2].Value;
AdoQuery4.parameters.paramByName('prim').Value:=AdoQuery1.Fields[5].Value;
AdoQuery4.parameters.paramByName('dats').Value:=date;
AdoQuery4.ExecSQL;


AdoQuery1.Delete;

Так вот, один раз все нормально работает (запись копируется, затем удаляется). Но если после этого например следующую запись удалить надо (на тот же баттон кликаю) выкидывает ошибку:

[Microsoft][Драйвер ODBC Microsoft Access]Недопустимое значение точности

Почему??? Ведь в первый раз нормально срабатывает.
...
Рейтинг: 0 / 0
09.10.2003, 12:33
    #32288688
Papka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при удалении записи (Ado, Access)
AdoQuery4.Prepared := True

Попробуй поставить это перед ExecSQL.
...
Рейтинг: 0 / 0
09.10.2003, 13:22
    #32288782
Cauchy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при удалении записи (Ado, Access)
Вообще-то для Access+ADO нужно использовать Jet, а не ODBC.
С Jet работает гораздо быстрее.
Возможно и ошибки не будет.
...
Рейтинг: 0 / 0
10.10.2003, 11:48
    #32289746
Tal
Tal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при удалении записи (Ado, Access)
Неа, не помогло Prepared.
Может с ODBC косяк какой. Может патч какой-нибудь надо поставить?
И почему он первый раз отрабатывает, а больше не хочет???
...
Рейтинг: 0 / 0
13.10.2003, 10:39
    #32290994
Mik Prokoshin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при удалении записи (Ado, Access)
Попробуйте сделать после AdoQuery1.Delete AdoQuery1.Next+AdoQuery1.Prev. Если так будет работать нормально - делайте ADOupdate с борланда+используйте TBetterADODataset, если нет - может быть проблема в join для AdoQuery1 ?
И еще уточните, где возникает ошибка - на AdoQuery4.ExecSQL или AdoQuery1.Delete
...
Рейтинг: 0 / 0
14.10.2003, 15:40
    #32292838
Tal
Tal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при удалении записи (Ado, Access)
to Mik Prokoshin
Проблема не в join для AdoQuery1, ибо нет его там вообще (джойна имеется в виду).
А ошибка вылазиет именно на AdoQuery4.ExecSQL.
И что самое интересное первый раз все отрабатывает, а во второй ошибку кидает.
Насколько я понял не срабатывает где-то на
AdoQuery4.Close;
AdoQuery4.SQL.Clear;
AdoQuery4.SQL.Add
Ибо прописав кусок INSERT INTO не в ран-тайм режиме, а в дизайнере в свойство SQL для AdoQuery все работает без ошибок. Видимо если в ран-тайме реализовывать SQL.Add, то он в первый раз и отрабатывает потому что там ничего не было и усе добавилось. А в следующие разы или Clear или Add не срабатывает.
Вот только почему?
...
Рейтинг: 0 / 0
14.10.2003, 16:08
    #32292911
Papka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при удалении записи (Ado, Access)
Такого не может быть, потому что такого не может быть никогда. Глюк скорее всего в проге.
...
Рейтинг: 0 / 0
14.10.2003, 16:36
    #32292961
denche
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при удалении записи (Ado, Access)
а вот так не проще будет???

IF AdoQuery1.Fields[3].Value='НА СПИСАНИЕ' THEN
begin
ADOConnection1.Execute('INSERT INTO spisan (nazv,dat,prim,dats) VALUES (' + AdoQuery1.Fields[1].AsString+', '+AdoQuery1.Fields[2].AsString+', '+AdoQuery1.Fields[3].AsString+', '+AdoQuery1.Fields[4].AsString+')');

AdoQuery1.Delete;

end;

и ошибок может меньше будет
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ошибка при удалении записи (Ado, Access) / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]