А как сразу получить значее счетчика при добавлении записи в таблицу БД - VB
Формулировка задачи:
Использую такую процедуру для добавления записи в таблицу:
str_data,SQLInfo - мои типы, не суть
Вопрос в чем:
В таблице есть еще поле ID (счетчик), кот. назначается автоматически (и заранее неизвестно).
Я хочу переделать эту процедуру в функцию так чтоб
возвращалось RS!ID
для добаленной записи.
Возможно ли вернуть RS!ID сразу без повторного обращения типа
str_data,SQLInfo - мои типы, не суть
Вопрос в чем:
В таблице есть еще поле ID (счетчик), кот. назначается автоматически (и заранее неизвестно).
Я хочу переделать эту процедуру в функцию так чтоб
возвращалось RS!ID
для добаленной записи.
Возможно ли вернуть RS!ID сразу без повторного обращения типа
Решение задачи: «А как сразу получить значее счетчика при добавлении записи в таблицу БД»
textual
Листинг программы
Public Function AddLogStr_BD(str_data As GeneralLog) As Long 'добавление новой записи в the_table Dim SQLInfo As SQL_data Dim RS As ADODB.Recordset 'запись новой строчки в таблицу the_table SQLInfo = PrepareRecordLog(str_data) If (Len(SQLInfo.SQL_fields) > 0) And (Len(SQLInfo.SQL_values) > 0) Then 'добавление записи adoConn.BeginTrans adoConn.Execute "INSERT INTO the_table (" & SQLInfo.SQL_fields & _ ") VALUES(" & SQLInfo.SQL_values & ")" adoConn.CommitTrans Set RS = New ADODB.Recordset RS.Open "SELECT @@identity as cou", adoConn If RS.EOF = False Then 'если запись существует AddLogStr_BD = RS!cou End If 'уничтожение объекта RS RS.Close Set RS = Nothing ' my_JRO.RefreshCache adoConn ' Set RS = adoConn.Execute _ ' ("SELECT TOP 1 ID FROM the_table ORDER BY ID DESC") 'поледняя запись -максимальное значение индеса ' If RS.EOF = False Then 'если запись существует ' AddLogStr_BD = RS!id ' End If ' 'уничтожение объекта RS ' RS.Close ' Set RS = Nothing End If End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д