Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ошибка при удалении записи (Ado, Access)
|
|||
|---|---|---|---|
|
#18+
День добрый! Чего-то я не пойму че за портак. в-общем имеется таблица при нажатии на баттон происходит копирование текущей записи в другую таблицу (типа таблица списанных документов) а потом из текущей таблицы эта запись удаляется. в общем типа такого кода: 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]Недопустимое значение точности Почему??? Ведь в первый раз нормально срабатывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 12:04 |
|
||
|
Ошибка при удалении записи (Ado, Access)
|
|||
|---|---|---|---|
|
#18+
AdoQuery4.Prepared := True Попробуй поставить это перед ExecSQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 12:33 |
|
||
|
Ошибка при удалении записи (Ado, Access)
|
|||
|---|---|---|---|
|
#18+
Вообще-то для Access+ADO нужно использовать Jet, а не ODBC. С Jet работает гораздо быстрее. Возможно и ошибки не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2003, 13:22 |
|
||
|
Ошибка при удалении записи (Ado, Access)
|
|||
|---|---|---|---|
|
#18+
Неа, не помогло Prepared. Может с ODBC косяк какой. Может патч какой-нибудь надо поставить? И почему он первый раз отрабатывает, а больше не хочет??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2003, 11:48 |
|
||
|
Ошибка при удалении записи (Ado, Access)
|
|||
|---|---|---|---|
|
#18+
Попробуйте сделать после AdoQuery1.Delete AdoQuery1.Next+AdoQuery1.Prev. Если так будет работать нормально - делайте ADOupdate с борланда+используйте TBetterADODataset, если нет - может быть проблема в join для AdoQuery1 ? И еще уточните, где возникает ошибка - на AdoQuery4.ExecSQL или AdoQuery1.Delete ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2003, 10:39 |
|
||
|
Ошибка при удалении записи (Ado, Access)
|
|||
|---|---|---|---|
|
#18+
to Mik Prokoshin Проблема не в join для AdoQuery1, ибо нет его там вообще (джойна имеется в виду). А ошибка вылазиет именно на AdoQuery4.ExecSQL. И что самое интересное первый раз все отрабатывает, а во второй ошибку кидает. Насколько я понял не срабатывает где-то на AdoQuery4.Close; AdoQuery4.SQL.Clear; AdoQuery4.SQL.Add Ибо прописав кусок INSERT INTO не в ран-тайм режиме, а в дизайнере в свойство SQL для AdoQuery все работает без ошибок. Видимо если в ран-тайме реализовывать SQL.Add, то он в первый раз и отрабатывает потому что там ничего не было и усе добавилось. А в следующие разы или Clear или Add не срабатывает. Вот только почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2003, 15:40 |
|
||
|
Ошибка при удалении записи (Ado, Access)
|
|||
|---|---|---|---|
|
#18+
Такого не может быть, потому что такого не может быть никогда. Глюк скорее всего в проге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2003, 16:08 |
|
||
|
Ошибка при удалении записи (Ado, Access)
|
|||
|---|---|---|---|
|
#18+
а вот так не проще будет??? 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; и ошибок может меньше будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2003, 16:36 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32292911&tid=2116450]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
83ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 453ms |

| 0 / 0 |
