更新SQL Server表

问题描述:

下面的代码是如何工作的?我从来没有见过这样做的更新。我总是这样说:更新SQL Server表

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 

感谢

布雷特

+0

对不起,标题应该是MS SQL表。 ..谢谢 – 2011-02-24 18:32:57

+0

这是什么类型的文件?这不仅仅是SQL,它嵌入在其他类型的代码中。 – Dubmun 2011-02-24 18:34:49

+1

看起来像VB 5/6或经典的ASP(VBScript)给我。 – Dean 2011-02-24 18:38:11

首先执行rsx.Open的查询。 cnx是与db的连接,参数值1是CursorType = adOpenKeyset,参数值2是LockType = adLockPessimistic

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

rsxRecordset(COM对象),它保存返回的行。 if Not rsx.EOF then检查您确实至少有一行,否则编辑将失败。

rsx("new_us") = Request.Form("new_us")Recordset中的字段分配新值。

最后rsx.Update将修改的字段保存到数据库。 cnx使用的OLE DB提供程序构建发送到数据库的更新语句。

所以基本的工作流程是:

  1. 从数据库
  2. 修改排
  3. 提取一行送行回DB
+0

感谢你们两位的回答。我感谢你的时间。 – 2011-02-26 14:42:39

此:http://www.w3schools.com/ado/ado_ref_recordset.asp应该帮助;)

它是一个ADO记录集(不是ADO.NET)。通过记录集(本例中为rsx),您可以访问查询的字段。通过更改该值,可以通过Update方法更新数据库。

+0

是的,它是嵌入在ASP页面中的SQL的经典ASP。 – 2011-02-25 00:57:24

+0

他们以SELECT语句开始,检查是否存在该记录,然后更新记录。这会被认为是执行UPDATE的最佳方式吗?感谢Brett – 2011-02-25 01:02:12

+0

我不知道这是否是最好的方法,但最大的好处是我们无需管理更新的实施。通过利弊,现在它是一个相当古老的技术,最好转向效率更高的ADO.NET。 – Xavinou 2011-02-25 07:43:18