powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / После INSERT не возвращается recordet сохранённой процедуры.
4 сообщений из 4, страница 1 из 1
После INSERT не возвращается recordet сохранённой процедуры.
    #32031299
OCLiker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот процедура
CREATE PROCEDURE INS_ONE_XXX
@DATAS varchar(100),
@IDN bigint = 0 output
AS
SET @IDN = 0
SELECT @IDN=ISNULL(ID,0)FROM DOLZ WHERE NAME=@DATAS
if @IDN=0
BEGIN
INSERT INTO DOLZ (NAME) VALUES (@DATAS)
SET @IDN = SCOPE_IDENTITY()
END

SELECT @IDN AS ID
GO

А вот вызывающий её код VB:
Dim rec As New ADODB.Recordset
Dim K As Long
rec.Open "INS_ONE_XXX 'xx_data'", СurrentProject.Connection
MsgBox (rec("ID"))
End Sub

Так вот если 'xx_data' есть в таблице (т.е. INSERT не проходит) - всё нормально ID возвращается в виде recordet с одним полем ID и одной строкой.
Но если пошло по ветке с INSERT - труба. возвращается полностью пустой recordset без полей.
В тоже время в Query Analiser возврашаются в обоих случаях идентичные recordset.
Я уже варюсь. Кто может такое объяснить???

Проверялось даже вставкой SELECT 1 AS ID - тоже самое.
...
Рейтинг: 0 / 0
После INSERT не возвращается recordet сохранённой процедуры.
    #32031302
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле при "ветке с INSERT " вам возвращается 2 recordset-а, т.к. ЛЮБЫЕ запросы производят на свет какой-либо результат(например, INSERT - сколько записей было добавлено). Поэтому ваш SELECT @IDN AS ID просто находится в следующем рекордсете. Можете использовать его, а можете с помощью SET NOCOUNT ON вообще отключить возврат количества подвергшихся обработке столбцов в качестве результатов.
...
Рейтинг: 0 / 0
После INSERT не возвращается recordet сохранённой процедуры.
    #32031304
OCLiker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как достать другой recordset?
Можно пример?
...
Рейтинг: 0 / 0
После INSERT не возвращается recordet сохранённой процедуры.
    #32031307
OCLiker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всё разобрался. Спасибо!!!

Set rec = rec.NextRecordset
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / После INSERT не возвращается recordet сохранённой процедуры.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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