|
|
|
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
|
|||
|---|---|---|---|
|
#18+
щас попробую ссылку найти "на себя" -)) а пока кратко: дело в том, @IDENTITY - ГЛОБАЛЬНАЯ переменная на сервере, и мгновенно портится, любом следующем добавлении в любую таблицу. ТАК (как спрошено) пытаются делать, когда прямо в триггер встраивают "журналирование" в таблицу, в которой есть собственное поле IDENTITY. Опять же, ни на что не претендуя, СЧИТАЮ сие ПЛОХОЙ ПРАКТИКОЙ - и чужими победами в этом вопросе совсем не восторгаюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:08 |
|
||
|
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
|
|||
|---|---|---|---|
|
#18+
вот длинный поток, в котором для меня эта тема (при идентити в триггерах прочих интересных местах), наверно впервые, была раскрыта в полном цвете. /topic/55716&pg=-1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:14 |
|
||
|
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
|
|||
|---|---|---|---|
|
#18+
Ох ты е-мое, прочитал ссылку и наконец-то понял, зачем ставить set nocount on. Victosha, большое спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2004, 15:37 |
|
||
|
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
|
|||
|---|---|---|---|
|
#18+
А почему вообще происходила ошибка? 1.Вот этой командой exec sp_executesql N'UPDATE "Dolina".."tDrafts" SET "NameDraft"=@P1 WHERE "NumDraft"=@P2 AND "NumOrder"=@P3 AND "StrNum"=@P4 AND "NumHighLevel"=@P5 AND "NameDraft"=@P6 AND "DateDesign" IS NULL AND "NormWork" IS NULL AND "Quantity"=@P7 AND "Comment" IS NULL AND "FullQuantity" IS NULL' , N'@P1 nvarchar(5),@P2 int,@P3 varchar(5),@P4 nvarchar(2),@P5 int,@P6 varchar(3),@P7 smallint' , N'asd**', 21109, '77785', N'as', 21106, N'asd', 1 Access пытается обновить запись в таблице ,которую ищет используя значения всех полей источника записей до изменения. И не находит 2. .Вот этой командой exec sp_executesql N'SELECT * FROM (tDrafts) WHERE NumDraft=@P1', N'@P1 int', 21109 проверяет по ключу – есть ли запись с таким ключом в таблице .Есть. Из чего делается вывод ,что запись была изменена. А такая команда синхронизации может и не работать,лучше все поля указать в ней явно. При вставке новой записи вставляется то,что вводиться через форму или Null, если можно и поля нет на форме.Если на сервере какие то значения будут изменены,например триггером,то Access при последующем обновлении этой записи выдаст ошибку,т.к. значения всех полей источника записей до изменения он берет на своей стороне и синхронизацию при вставке,по-моему,не делает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 13:24 |
|
||
|
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
|
|||
|---|---|---|---|
|
#18+
Акцесс САМ не так много умеет делать. Он больщей частью ПОРУЧАЕТ это делать кому-то другому. Синхронизацию для него делает АДО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 13:26 |
|
||
|
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
|
|||
|---|---|---|---|
|
#18+
А я где-то читал,что он работает через OLE DB напрямую ,пропуская ADO.и,по-моему,все команды серверу формирует программа,которая называется Access ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 13:44 |
|
||
|
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
|
|||
|---|---|---|---|
|
#18+
2 Maligor а ты грохни библиотеку ADO из common files и посмотри - ничего он без адо не делает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 13:47 |
|
||
|
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
|
|||
|---|---|---|---|
|
#18+
c OLE DB он работает настолько напрямую, насколько это вообще возможно для приложения, взаимодействующего с ОБЪЕКТНЫМ внешним миром через OLE Automation. Здесь прямее АДО пути нет - он (АДО) для того писан был. Упоминаемый Вами контекст означает, что акцесс не задействует при работе с АДО напрямую слой ОДБС, что означает некий выигрыш по памяти/производительности/надежности. В действительности это определяется НАСТРОЙКОЙ соединения. ЗЫ АДО синхронизацию тоже не само делает - он это OLE DB драйверу рано или поздно поручить обязан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 13:56 |
|
||
|
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
|
|||
|---|---|---|---|
|
#18+
А если весь свой код убрать и грохнуть? И разве ADO не интерфейс к OLE DB? Если так ,то синхронизацию для него делает OLE DB.И все команды серверу формирует программа,которая называется Access. И к данному вопросу это отношения не имеет,я имею ввиду-кто делает,а имеет отношение ,что делается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 14:00 |
|
||
|
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
|
|||
|---|---|---|---|
|
#18+
2 Maligor Возможно, Вы правы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 14:05 |
|
||
|
Проблема при работе с ADP (Скопировать в буфер, Отменить изменения, Сохранить)
|
|||
|---|---|---|---|
|
#18+
2 Geo вот случайно увидел /topic/93519&hl=%40%40identity#683475 что - этот поток - продолжение того? или сам по себе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2004, 14:48 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32526126&tid=1674492]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 465ms |

| 0 / 0 |
