что ОТКРЫВАЕТ этот ADO, Method делают?

на простом английском языке может Вы объяснять мне, что происходит здесь:

rs.Open "batchinfo", oConn, adOpenKeyset, adLockOptimistic, adCmdTable

то, что я должен сделать, должно смочь вставить значения в таблицу, названную batchinfo., это было бы лучшим способом сделать ОТКРЫТОЕ?

единственная вещь, которую я сделал бы, вставляет значения.

1
задан l--''''''---------'''''''''''' 13 May 2010 в 00:12
поделиться

3 ответа

Надеюсь, это вам поможет.

dim sql, value
dim connection, rs

sql = "SELECT * FROM batchinfo"
value = "foo"

set connection = Server.CreateObject("ADODB.Connection")
set rs = server.CreateObject("ADODB.Recordset")

connection.open "Provider=SQLOLEDB.1;Persist Security Info=True;Data Source=192.168.0.1;Initial Catalog=Northwind;User ID=userId;Password=1234"
rs.open sql, connection, 0, 3, 1

rs.addNew
rs("fieldName1") = replace(value, "''", "'")
rs("fieldName2") = replace(value, "''", "'")

rs.update
rs.close
set rs = nothing
0
ответ дан 3 September 2019 в 00:36
поделиться

Использование adCmdTable обычно приводит к тому, что ADO генерирует команду select * from thetable , которая выполняется поставщиком OLE DB. Если вы обновляете результирующий набор записей, поставщик (или фактически ADO поверх него) обычно генерирует операторы формы update table set field =?, ... WHERE ... . Предложение WHERE является потенциальной проблемой. Если в таблице есть первичный ключ, то предложение WHERE будет включать этот первичный ключ обновленной записи и, таким образом, будет достаточно эффективным при его выполнении. Поскольку вы только вставляете значения, это должно привести к созданию простых операторов INSERT и должно быть очень эффективным.

Обратите внимание, что если провайдер поддерживает это, то adCmdTableDirect приведет к прямому открытию таблицы, и обновления будут чрезвычайно эффективными. Я не знаю, поддерживает ли MySQL эту опцию; Не думаю, что многие провайдеры это поддерживают.

2
ответ дан 3 September 2019 в 00:36
поделиться

rs — объект RecordSet. (Набор записей похож на таблицу в памяти) Эта строка кода заставляет его открыть соединение с базой данных и получить данные, вызывая хранимую процедуру с именем «batchinfo» или, возможно, просто выбирая все строки из таблицы или представления с именем «batchinfo».

Этот метод полностью задокументировал здесь.

Одним из вариантов может быть открытие набора записей, обновление значений в наборе записей в памяти, а затем вызов метода Save(). (См. эту ссылку для примеров и того, как это сделать таким образом.)

Однако это НЕ самый эффективный способ обновления данных.Вам лучше использовать команду Обновить или Вставить

См. этот учебник

0
ответ дан 3 September 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: