Обновить таблицу SQL Server - PullRequest
2 голосов
/ 24 февраля 2011

Как работает код ниже? Я никогда не видел ОБНОВЛЕНИЕ, сделанное таким образом. Я всегда так делаю:

http://www.w3schools.com/sql/sql_update.asp


sqlText = "SELECT * FROM pricing WHERE pid=1"
rsx.Open sqlText, cnx, 1, 2

if Not rsx.EOF then

    rsx("new_us") = Request.Form("new_us")
    rsx("new_us_desc") = Rtrim(Request.Form("new_us_desc"))
    rsx("new_ca") = Request.Form("new_ca")
    rsx("new_ca_desc") = Rtrim(Request.Form("new_ca_desc"))
    rsx("new_int") = Request.Form("new_int")
    rsx("new_int_desc") = Rtrim(Request.Form("new_int_desc"))
    rsx("conv_us") = Request.Form("conv_us")
    rsx("conv_us_desc") = Rtrim(Request.Form("conv_us_desc"))
    rsx("conv_ca") = Request.Form("conv_ca")
    rsx("conv_ca_desc") = Rtrim(Request.Form("conv_ca_desc"))
    rsx("conv_int") = Request.Form("conv_int")
    rsx("conv_int_desc") = Rtrim(Request.Form("conv_int_desc"))
    rsx("ren_us") = Request.Form("ren_us")
    rsx("ren_us_desc") = Rtrim(Request.Form("ren_us_desc"))
    rsx("ren_ca") = Request.Form("ren_ca")
    rsx("ren_ca_desc") = Rtrim(Request.Form("ren_ca_desc"))
    rsx("ren_int") = Request.Form("ren_int")
    rsx("ren_int_desc") = Rtrim(Request.Form("ren_int_desc"))
    rsx.Update

end if

rsx.Close
cnx.Close

Set rsx = Nothing
Set cnx = Nothing

Спасибо

Brett

Ответы [ 2 ]

1 голос
/ 25 февраля 2011

Сначала вы выполняете запрос с помощью rsx.Open. cnx - это соединение с БД, значение параметра 1 равно CursorType = adOpenKeyset, а значение параметра 2 равно LockType = adLockPessimistic.

sqlText = "SELECT * FROM pricing WHERE pid=1"
rsx.Open sqlText, cnx, 1, 2

rsx - это Recordset (com-объект), который содержит возвращенные строки. if Not rsx.EOF then проверяет, что вы действительно получили хотя бы одну строку, иначе редактирование не удастся.

Этот rsx("new_us") = Request.Form("new_us") назначает новые значения полям в Recordset.

Наконец, rsx.Update сохраняет измененные поля в БД. Поставщик OLE DB, используемый cnx, создает оператор обновления, отправляемый в базу данных.

Итак, основной рабочий процесс:

  1. Получить строку из БД
  2. Изменить строку
  3. Отправить строку обратно в БД
0 голосов
/ 24 февраля 2011

Это: http://www.w3schools.com/ado/ado_ref_recordset.asp должно помочь;)

Это набор записей ADO (не ADO.NET).Через набор записей (в данном случае rsx) у вас есть доступ к полям вашего запроса.Изменяя значение, вы можете обновить базу данных с помощью метода Update.

...