А как сразу получить значее счетчика при добавлении записи в таблицу БД - 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