alexroot
Дата: 21.07.2005 15:15:49
Используется ADO C++
После Recodset.AddNew Recordset.Update в Identity поле рекордсета - 0, в базе все нормально
Обнаружил что select IDENTITY не вызывается пока не подгрузяться данные из других таблиц (они у нас загружаются несколькими потоками при открытии программы)
профайлер при этом пишет SET NO_BROWSETABLE ON, INSERT.. ,а SELECT @@IDENTITY — нет
Полный лог профайлера:
SQL:BatchCompleted SET NO_BROWSETABLE ON App rgf 0 0 0 0 1376 59(spid) 2005-07-21 14:46:26.167
RPC:Completed exec sp_executesql N'INSERT INTO "ufa3".."INVEST" ("ID_LICENZ","INVEST","EDIZMC","SUMINP","SUMINF","DATAP","DATAF","PRIM") VALUES (@P1,@P2,@P3,@P4,@P5,@P6,@P7,@P8)', N'@P1 int,@P2 varchar(1),@P3 smallint,@P4 numeric(15,3),@P5 numeric(15,3),@P6 datetime,@P7 datetime,@P8 varchar(1)', 1169, '7', NULL, NULL, NULL, 'Jul 21 2005 12:00:00:000AM', NULL, NULL App rgf 0 23 0 10 1376 59 (spid) 2005-07-21 14:46:26.167
Audit Logout App rgf 0 40 0 20 1376 59 2005-07-21 14:46:26.157
Audit Login -- network protocol: TCP/IP
set quoted_identifier on
set implicit_transactions off
set cursor_close_on_commit off
set ansi_warnings on
set ansi_padding on
set ansi_nulls on
set concat_null_yields_null on
set language us_english
set dateformat mdy
set datefirst 7
App rgf 1376 59 2005-07-21 14:46:26.187
SQL:BatchCompleted SET NO_BROWSETABLE ON App rgf 0 0 0 0 1376 59 2005-07-21 14:46:26.187
SQL:BatchCompleted SELECT @@IDENTITY App rgf 0 0 0 0 1376 59 2005-07-21 14:46:26.197
Audit Logout App rgf 0 17 0 10 1376 59 2005-07-21 14:46:26.187
Но в ADO то 0, а когда данные подгружены SELECT @@IDENTITY следует сразу за INSERT