Метод AddNew (ADO)
Создает новую запись для обновляемого объекта Recordset.
Синтаксис
recordset.AddNew FieldList, Values
Параметры
набор записей
Объект набора записей.
FieldList
Необязательный. Одно имя или массив имен или порядковых позиций полей в новой записи.
значений
Необязательный. Одно значение или массив значений для полей в новой записи. Если fieldlist является массивом, значения также должны быть массивом с одинаковым числом элементов; в противном случае возникает ошибка. Порядок имен полей должен соответствовать порядку значений полей в каждом массиве.
Замечания
Используйте метод AddNew для создания и инициализации новой записи. Используйте метод Поддерживает с adAddNew (значение CursorOptionEnum), чтобы проверить, можно ли добавлять записи в текущий объект Recordset.
После вызова метода AddNew AddNew новая запись становится текущей записью и остается текущей после вызова метода update. Так как новая запись добавляется в набор записей , вызов MoveNext после обновления будет перемещаться в конце набора записей, что делает EOF True. Если набор записей не поддерживает закладки, возможно, вы не сможете получить доступ к новой записи после перехода на другую запись. В зависимости от типа курсора может потребоваться вызвать метод Requery, чтобы сделать новую запись доступной.
При вызове AddNew при редактировании текущей записи или при добавлении новой записи ADO вызывает метод Update для сохранения изменений, а затем создает новую запись.
Поведение метода AddNew зависит от режима обновления объекта Recordset, а также от того, передаете ли аргументы Fieldlist и Значения.
В режиме немедленного обновления (в котором поставщик записывает изменения в базовый источник данных после вызова метода update Update), вызывая метод addNew AddNew без аргументов, свойству EditMode значение adEditAdd (значение EditModeEnum). Поставщик кэширует любое значение поля локально. Вызов метода Update записывает новую запись в базу данных и сбрасывает свойство EditMode на adEditNone (значение EditModeEnum). Если передать аргументы Fieldlist и Значения, ADO немедленно отправляет новую запись в базу данных (вызов обновления не требуется). Значение свойства EditMode не изменяется (adEditNone).
В режим пакетного обновления (в котором поставщик кэширует несколько изменений и записывает их в базовый источник данных только при вызове метода UpdateBatch updateBatch), вызывая метод AddNew без аргументов, свойство EditModeadEditAdd. Поставщик кэширует любое значение поля локально. Вызов метода обновления Update добавляет новую запись в текущую Набор записей, но поставщик не публикует изменения в базовой базе данных или сбрасывает EditMode в adEditNone, пока не вызовете метод UpdateBatch. Если передать аргументы Fieldlist и Значения, ADO отправляет новую запись поставщику для хранения в кэше и задает EditModeadEditAdd; Необходимо вызвать метод UpdateBatch, чтобы опубликовать новую запись в базовой базе данных.
Пример
В следующем примере показано, как использовать метод AddNew с включенным списком полей и списком значений, чтобы узнать, как включить список полей и список значений в виде массивов.
create table aa1 (intf int, charf char(10))
insert into aa1 values (2, 'aa')
Dim cn As New adodb.Connection
Dim rs As New adodb.Recordset
Dim cmd As New adodb.Command
cn.ConnectionString = "Provider=SQLOLEDB;Data Source=alexverb2;uid=sa;pwd=<password>;"
cn.Open
rs.Open "select * from xxx..aa1", cn, adOpenKeyset, adLockOptimistic
Dim fieldsArray(1) As Variant
fieldsArray(0) = "intf"
fieldsArray(1) = "charf"
Dim values(1) As Variant
values(0) = 4
values(1) = "as"
rs.AddNew fieldsArray, values
rs.Update
Применимо к
См. также
пример метода AddNew (VB)
пример метода AddNew (VBScript)
пример метода AddNew (VC++)
Метод CancelUpdate (ADO)
EditMode Property
метода requery
поддерживает метод
метода обновления
метода UpdateBatch