ADO如何使用Update语法呢?(BIG5)

2016-01-29 18:05 0 1 收藏

ADO如何使用Update语法呢?(BIG5),ADO如何使用Update语法呢?(BIG5)

【 tulaoshi.com - ASP 】

  Update

Update陳述式,用來更新資料表中欄位的資料值,可以使用WHERE設定特定的條件運算式,符合條件運算式的記錄才會被更新。

語法如下:

UPDATE 資料表
SET 欄位新值
WHERE 條件運算式

當您要同時更新多個記錄,或者在多個資料表中更新記錄時,就需要用到UPDATE陳述式。

您可以同時變更多個欄位的資料值,譬如,下例將產品資料表中的所有記錄,價格打九折,運費打七折:

UPDATE 產品

SET 價格 = 價格 * 0.9, 運費 = 運費 * 0.7

UPDATE陳述式並不會產生Recordset。當您使用UPDATE陳述式更新記錄之後,無法復原原始值。因此,如果您想知道哪些記錄將被更新,建議您先使用SELECT和相同的WHERE條件運算式來查詢結果,確定是您想更新的記錄後,然後再執行UPDATE陳述式更新記錄。

當然您可以隨時將的資料作備份複製,萬一您使用UPDATE陳述式更新了錯誤的記錄,您仍然可以從您的備份中救回這些記錄。

讓我們看一個於ASP程式碼當中使用這個SQL指令的例子。

譬如ASP程式碼rs5.asp如下,[Update 產品 Set 數量 = 數量 + 10] 使用Update將產品資料表中的所有記錄的數量欄位資料加10:

<%

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp"

sql = "Update 產品 Set 數量 = 數量 + 10"

Set a = conn1.Execute(sql)

Set rs3 = Server.CreateObject("ADODB.Recordset")

sql = "Select * from 產品 order by 代號"

rs3.Open sql,conn1,1,1,1

%

<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0

<TR

<TD ALIGN=CENTER BGCOLOR="#800000"<FONT COLOR="#FFFFFF"代號</FONT</TD

<TD ALIGN=CENTER BGCOLOR="#800000"<FONT COLOR="#FFFFFF"名稱</FONT</TD

<TD ALIGN=CENTER BGCOLOR="#800000"<FONT COLOR="#FFFFFF"價格</FONT</TD

<TD ALIGN=CENTER BGCOLOR="#800000"<FONT COLOR="#FFFFFF"數量</FONT</TD

</TR

<% Do while not rs3.EOF %

<TR

<TD BGCOLOR="f7efde" ALIGN=CENTER<%= rs3("代號")%</TD

<TD BGCOLOR="f7efde" ALIGN=CENTER<%= rs3("名稱")%</TD

<TD BGCOLOR="f7efde" ALIGN=CENTER<%= rs3("價格")%</TD

<TD BGCOLOR="f7efde" ALIGN=CENTER<%= rs3("數量")%</TD

</TR

<%

rs3.MoveNext

Loop

rs3.Close

conn1.Close

%

</TABLE

以上的 ASP程式碼rs5asp,於用戶端使用瀏覽器,瀏覽執行數量欄位資料加10的結果,每執行一次就將產品資料表中的數量加10。

Update...Where

UPDATE陳述式,可以使用WHERE設定特定的變更條件,符合變更條件的記錄才做變更。

譬如ASP程式碼rs6.asp如下,[Update 產品 Set 數量 = 數量 + 10 where 種類 = '電腦'] 設定特定的變更條件,[種類] 欄位為 [電腦] 的記錄才將數量加10:

<%

Set conn1 = Server.CreateObject("ADODB.Connection")

conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"

'conn1.Open "driver={SQL Server};server=(Local);uid=sa;pwd=;database=NtopSamp"

sql = "Update 產品 Set 數量 = 數量 + 10 where 種類 = '電腦'"

Set a = conn1.Execute(sql)

Set rs3 = Server.CreateObject("ADODB.Recordset")

sql = "Select * from 產品 order by 種類 DESC"

rs3.Open sql,conn1,1,1,1

%

<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0

<TR

<TD ALIGN=CENTER BGCOLOR="#800000"<FONT COLOR="#FFFFFF"代號</FONT</TD

<TD ALIGN=CENTER BGCOLOR="#800000"<FONT COLOR="#FFFFFF

来源:https://www.tulaoshi.com/n/20160129/1504316.html

延伸阅读
标签: ASP
  接上一篇文章: ORDER BY ORDER BY子句,可以设定排序的字段。 在一个SQL表达式之中,ORDER BY子句通常放置于最后。     若要以递减顺序来进行排序(Z~A,9 ~0),须于您要递减排序的每一字段的尾部加DESC字。譬如: SELECT 姓名 FROM 员工 ORDER BY 工资 DESC, 年龄     表示[工资] ...
标签: ASP
  Public Function CheckBIG(strSource As String) As Boolean Dim idx As Long Dim ByteTemp() As Byte CheckBIG = False For idx = 1 To Len(strSource) ByteTemp = StrConv(Mid(strSource, idx, 1), vbFromUnicode) If UBound(ByteTemp) 0 Then If (ByteTemp(1) = 64) And (ByteTemp(1) <= 126) Then ...
标签: ASP
     中文与英文用ASCII码一个字节表示不同,它使用两个字节来表示。事实上,在文本文件中保存的就是每个汉字对应的两个字节编码,而显示问题由中文操作系统自动解决。     汉字编码并不统一,我们使用的是GB码,而台湾地区使用的是BIG5码。BIG5码文件中保存的是汉字相应的BIG5编码,GB码文件中保存的...
program GenBig5Code;{$APPTYPE CONSOLE}uses SysUtils;Var i, j: byte; mBig5File: textfile;begin AssignFile(mBig5File, 'c:Big5Code.bin'); Rewrite(mBig5File); //BIG5字符集范围: 高位$A1~$FE, 低位分为两段:$40~$7E, $A1~$FE for i := $A1 to $FE do beginfor j := $40 to $7E do Write(mBig5File, chr(i), chr(j...
标签: Web开发
package com.Big5ToUTF8; import java.io.*; public class Big5Tran { private static final String tabFile ="bg-gb.tab"; private static byte[] data; static{ try{ FileInputStream fis =new FileInputStream(tabFile); int len =fis.available(); data =new byte[len]; fis.read(data); fis.close(); }catch(Exception ex){ e...

经验教程

920

收藏

88
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部