А как сразу получить значее счетчика при добавлении записи в таблицу БД - VB

Узнай цену своей работы

Формулировка задачи:

Использую такую процедуру для добавления записи в таблицу:

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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.4 из 5
Похожие ответы