ADO如何使用Update语法

作者&投稿:安勤 (若有异议请与网页底部的电邮联系)
vb update 语句怎么执行~

VB的Update 方法有多种用途:
Update 方法 (ADO),保存对 Recordset 对象的当前记录所做的所有更改。
语法
recordset.Update Fields, Values
参数
Fields 可选。变体型,代表单个名称;或变体型数组,代表需要修改的字段(单个或多个)名称或序号位置。
Values 可选。变体型,代表单个值;或变体型数组,代表新记录中字段(单个或多个)值。
说明
使用 Update 方法保存自从调用 AddNew 方法,或自从现有记录的任何字段值发生更改之后,对 Recordset 对象的当前记录所作的所有更改。Recordset 对象必须支持更新。
Update 和 CancelUpdate 方法范例
该范例连同 CancelUpdate 方法说明 Update 方法。
Public Sub UpdateX()
Dim rstEmployees As ADODB.Recordset Dim strOldFirst As String Dim strOldLast As String Dim strMessage As String ' 使用雇员表中的姓名打开记录集。 strCnn = "Provider=sqloledb;" & _ "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; " Set rstEmployees = New ADODB.Recordset rstEmployees.CursorType = adOpenKeyset rstEmployees.LockType = adLockOptimistic rstEmployees.Open "SELECT fname, lname " & _ "FROM Employee ORDER BY lname", strCnn, , , adCmdText ' 储存原始数据。 strOldFirst = rstEmployees!fname strOldLast = rstEmployees!lname ' 更改编辑缓冲区中的数据。 rstEmployees!fname = "Linda" rstEmployees!lname = "Kobara" ' 显示缓冲区的内容并获取用户输入。 strMessage = "Edit in progress:" & vbCr & _ " Original data = " & strOldFirst & " " & _ strOldLast & vbCr & " Data in buffer = " & _ rstEmployees!fname & " " & rstEmployees!lname & vbCr & vbCr & _ "Use Update to replace the original data with " & _ "the buffered data in the Recordset?" If MsgBox(strMessage, vbYesNo) = vbYes Then rstEmployees.Update Else rstEmployees.CancelUpdate End If ' 显示结果数据。 MsgBox "Data in recordset = " & rstEmployees!fname & " " & _ rstEmployees!lname ' 恢复原始数据,因为这只是演示。 If Not (strOldFirst = rstEmployees!fname And _ strOldLast = rstEmployees!lname) Then rstEmployees!fname = strOldFirst rstEmployees!lname = strOldLast rstEmployees.Update End If rstEmployees.CloseEnd SubPublic Sub UpdateX2() Dim cnn1 As ADODB.Connection Dim rstEmployees As ADODB.Recordset Dim strEmpID As String Dim strOldFirst As String Dim strOldLast As String Dim strMessage As String ' 打开连接。 Set cnn1 = New ADODB.Connection strCnn = "Provider=sqloledb;" & _ "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; " cnn1.Open strCnn ' 使用雇员表中的数据打开记录集。 Set rstEmployees = New ADODB.Recordset rstEmployees.CursorType = adOpenKeyset rstEmployees.LockType = adLockOptimistic rstEmployees.Open "employee", cnn1, , , adCmdTable rstEmployees.AddNew strEmpID = "B-S55555M" rstEmployees!emp_id = strEmpID rstEmployees!fname = "Bill" rstEmployees!lname = "Sornsin" ' 显示缓冲区内容并获取用户输入。 strMessage = "AddNew in progress:" & vbCr & _ "Data in buffer = " & rstEmployees!emp_id & ", " & _ rstEmployees!fname & " " & rstEmployees!lname & vbCr & vbCr & _ "Use Update to save buffer to recordset?" If MsgBox(strMessage, vbYesNoCancel) = vbYes Then rstEmployees.Update ' 转到新记录并显示结果数据。 MsgBox "Data in recordset = " & rstEmployees!emp_id & ", " & _ rstEmployees!fname & " " & rstEmployees!lname Else rstEmployees.CancelUpdate MsgBox "No new record added." End If ' 删除新数据,因为这只是演示。 cnn1.Execute "DELETE FROM employee WHERE emp_id = '" & strEmpID & "'" rstEmployees.CloseEnd SubUpdate 方法(远程数据),将复制缓冲区行的内容保存到一个指定的可更新的 rdoResultset 对象中,并废弃复制缓冲区。
语法
object.Update
object 所在处代表对象表达式,其值为“应用于”列表中的一个对象。
AddNew、Update、CancelUpdate 方法示例
下面的示例用以说明使用 AddNew 方法在基本表中添加一个新行。该例假定有权对这个表进行读写访问,所提供的列数据符合与该表相关的规则及其它的约束条件,并且该表有唯一的索引。用于操作的数据值从窗体的三个 TextBox 控件中获得。注意这个表的唯一的关键字不在这儿提供,而自动提供的是—一个标识列。
Option ExplicitDim er As rdoErrorDim cn As New rdoConnectionDim qy As New rdoQueryDim rs As rdoResultsetDim col As rdoColumnPrivate Sub AddNewJob_Click()On Error GoTo ANEHWith rs .AddNew !job_desc = JobDescription !min_lvl = MinLevel !max_lvl = MaxLevel .UpdateEnd WithExit SubUpdateFailed:MsgBox "Update did not suceed."rs.CancelUpdateExit SubANEH:Debug.Print Err, ErrorFor Each er In rdoErrors Debug.Print erNextResume UpdateFailed End SubPrivate Sub Form_Load()cn.CursorDriver = rdUseOdbccn.Connect = "uid=;pwd=;server=sequel;" _ & "driver={SQL Server};database=pubs;dsn='';"cn.EstablishConnectionWith qy .Name = "JobsQuery" .SQL = "Select * from Jobs" .RowsetSize = 1 Set .ActiveConnection = cn Set rs = .OpenResultset(rdOpenKeyset, _ rdConcurRowver) Debug.Print rs.UpdatableEnd WithExit SubEnd Sub

童鞋,我想你要了解的是这个意思:
以下代码是摘自网上的例子,其中m_pRecordset->AddNew(); 以及m_pRecordset->PutCollect都可以说是在客户端的结果集上操作, 最终要执行 m_pRecordset->Update(); 才能真正的生成 insert和update 语句更新到数据库中
//在表的末尾增加新纪录
    m_pRecordset->AddNew();
     m_pRecordset->PutCollect(_variant_t("姓名"),
    _variant_t(m_strName));
     m_pRecordset->PutCollect(_variant_t("工作单位"), _variant_t(m_strComName));
    m_pRecordset->PutCollect(_variant_t("单位地址"), _variant_t(m_strComAddr));
    //更新数据库-将新纪录存入数据库
    m_pRecordset->Update();

譬如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; 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=#800000FONT COLOR=#FFFFFF代号/FONT/TD TD ALIGN=CENTER BGCOLOR=#800000FONT COLOR=#FFFFFF名称/FONT/TD TD ALIGN=CENTER BGCOLOR=#800000FONT COLOR=#FFFFFF价格/FONT/TD TD ALIGN=CENTER BGCOLOR=#800000FONT 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。 譬如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; 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=#800000FONT COLOR=#FFFFFF代号/FONT/TD TD ALIGN=CENTER BGCOLOR=#800000FONT COLOR=#FFFFFF名称/FONT/TD TD ALIGN=CENTER BGCOLOR=#800000FONT 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 /TR % rs3.MoveNext Loop rs3.Close conn1.Close % /TABLE 以上的 ASP程式码rs6.asp,在用户端使用浏览器,浏览执行的结果,显示数量加10的记录。 Update...Where...In 可以利用Update...Where...In找出重复的记录,譬如ASP程式码rs6.asp如下,[Update 产品 Set 价格 = 价格 - 100 where 种类 = '电脑' and 价格 in (Select 价格 from 产品 where 价格 30000)] 表示价格 30000而 [种类] 字段为 [电脑] 的记录才降价100: % Set conn1 = Server.CreateObject(ADODB.Connection) conn1.Open DBQ= Server.MapPath(ntopsamp.mdb) ;Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access; sql = Update 产品 Set 价格 = 价格 - 100 where 种类 = '电脑' and 价格 in (Select 价格 from 产品 where 价格 30000) 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=#800000FONT COLOR=#FFFFFF代号/FONT/TD TD ALIGN=CENTER BGCOLOR=#800000FONT COLOR=#FFFFFF名称/FONT/TD TD ALIGN=CENTER BGCOLOR=#800000FONT 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 /TR % rs3.MoveNext Loop rs3.Close conn1.Close % /TABLE 以上的 ASP程式码rs6.asp,在用户端使用浏览器,浏览执行的结果,显示价格 30000的电脑才降价100。


电脑总是提示, 360sdUpd-应用程序错误 应用程序发生异常 未知的软件异 ...
for %1 in (%windir%\\system32\\*.dll) do regsvr32.exe \/s %1回车。完成后,在输入下面的 for %i in (%windir%\\system32\\*.ocx) do regsvr32.exe \/s %i 回车。如果怕输入错误,可以复制这两条指令,然后在命令提示符后击鼠标右键,打“粘贴”,回车,耐心等待,直到屏幕滚动停止为止。【...

...want to get the opportunity ?Then( ) what you ’re doing...
D集中精力的意思

什么事Rsaupd.exe-应用程序错误啊?只到的朋友帮我解决下!!!_百度知...
您好!出现:0x??? 指令引用的0x???内存。该内存不能为"read"或"written"。答案【原创】★严禁复制★ 【1】对电脑没有影响或【偶尔】出现,不用管它,【重启电脑】后可能会自动消失。【2】盗版系统或Ghost版本系统,可能会出现该问题,及时安装官方发行的补丁,{检查电脑年、月、日是否正确}。建议...

---Do you know anything new about the incident? ---A working party...
---Do you know anything new about the incident?---A working party ___to look into the problem.A.was set up B.has been set up C.has been setting up D.is setting up 选项是B 第一句的时态是【一般现在时】,选项B.has been set up是【现在完成时的被动语态】,现在完成时依然...

新概念英语第二册L2练习答案全部~~~
Do you ever read in bed?你有没有在床上看过书?Exercises 练习 A Write out these two paragraphs again. Give the right form of the words in parentheses.用正确的动词时态填空。1 I am looking out of my window. I can see some children in the street. The children ___are ...

星际里人族念的英文是什么 告诉我 顺便翻译下
[pteYes00] You think as I do. [pteYes01] It shall be done. [pteYes02] My path is set. [pteYes03] [Ee’tahk] 光明执政官 Archon [parRdy00] The merging is complete! [parDth00] [死亡] [parMin00] ? [parPss00] It all looks so different on this side. [parPss01] Break on...

哪位星际迷知道三个族每个兵说的每一句英语?很好听啊!
[TMaPss04] How do I get out of this chicken *BEEP* outfit?! [TMaPss05] You want a piece of me, boy? [TMaPss06] If it weren’t for these damned neural implants you’d be a smoldering crater by now![tmaSti00] Ahh...That’s the stuff! [tmaSti01] Ahh...Yea![TMaWht00] ...

求星际争霸:母巢之战 英文原文剧本
(Upd04) Nuclear launch detected. 参考资料: http:\/\/wang1miao3.spaces.live.com\/Blog\/cns!8E0346F4BAC7E56E!223.entry 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 匿名用户 2009-09-16 展开全部 剧情简介在《星际争霸》中,玩家扮演三种族中匿名的角色,游戏故事剧情透过游戏手册、游戏内的...

I remember___him___the bike needed___.
remember doing sth 记得做过某 remember to do sth记得去做某事事 hear sb do sth听到某人做某事的全过程 hear sb doing sth 听到某人正在做某事 need to be done需要……need doing需要…… 这两个词组是一个意思,一般情况下都可以互换的 我记得我曾经听他说过这辆自行车需要修理。

求 电影英文对白 文本资料
3, Why do you stare at me that way? You don’t look tall like a sea captain. I’m afraid you don’t look very much like a governess.4, You’ll see to it that they conduct themselves with the utmost decorum.5, Let’s see how well you listened. I will not have anyone shouting...

吉林省17089374432: 请教通过ADO怎样修改SQLSERVER数据库IMAGE字段 -
赫泻维可: 使用update语句.语法是:update table_name set column = value[, colunm = value...] [where condition]; [ ]中的部分表示可以有也可以没有. 例如:update students set stu_name = "zhangsan", stu_gender = "m" where stu_id = 5;

吉林省17089374432: dataadapter update方法的使用 -
赫泻维可: update 的用法是 update 表名 set 列名 = 更新值 [where 条件]如果你的updatae无法查询到修改的结果的话 你把sql语句改成这个样子update 表名 set 列明 = 更新值 where 字段名 in (查询语句)因为你update无噶修改查询到得结果可能是因为查询到得结果太多了,而update 只能修改一行,如果使用到关键字in的话,就会修改查询到的结果中的每一行,试试吧

吉林省17089374432: ADO如何新增修改删除数据库的记录呢? -
赫泻维可: 首先使用ado连结到Access数据库ntopsamp.mdb,用SQL指令打开表「产品」的记录,将结果传回到rs1的 recordset当中,ASP程式码如下:Set conn1 = Server.CreateObject("ADODB.Connection") conn1.Open "DBQ="& Server.MapPath...

吉林省17089374432: Delphi如何用ADO方式实现数据更新
赫泻维可: with adoquery do begin close; sql.clear; sql.text:='Update 用户表名 set 密码='''+新密码{字符串类型}+''' where 用户标识={用户唯一标识} ='''+用户标识变量+''''; ExeSql; end;

吉林省17089374432: excel vba 怎么执行update语句 -
赫泻维可: 1.添加引用:VBA编辑器>工具>引用>勾选> microsoft activex data objects2.代码编写: Dim cn As New ADODB.Connection Dim rs As New Recordset Str1 = "select * from [八月]" strCn = "rovider=sqloledb;Database=test;Uid=sa ;wd=123456; ...

吉林省17089374432: dao连接sqlserver怎么使用update语句 -
赫泻维可: sqlserver下可以建立连接服务器名称,然后更新语法是 update tab1 t1 set a=t2.a from tab1,连接名.dbo.tab1 t2 where t1.id=t2.id 不同的数据库用法不相同

吉林省17089374432: 如何使用ADO对数据进行添加、修改与删除、查询
赫泻维可: 添加With ADOQuery1 dobegin Close; SQL.Clear; SQL.Add(' Insert Into Table1(Field1,Field2)') SQL.Add(' Values(10,20)'); ExecSQL;end;修改With ADOQuery1 dobegin Close; SQL.Clear; SQL.Add(' Update Table1 Set Field1=20,Field2=30)') ...

吉林省17089374432: VC++ 使用 ADO 的Update更新数据库不成功. -
赫泻维可: 孩子,我看了你的程序.语法没问题,至少这段没问题,但是有一个经验的地方就是所有在用ADO连接Acesss数据库进行更换或者更改的时候,字段名称最好不叫“PassWord”,你的错误就是这个意思:Unhandled exception in HospitalRes.exe(KERNEL32.DLL):0xE06D7363:Microsoft C++ Exception,指针触发了被保护的内存.用PassWord容易触发系统的底层保护机制.改个字段名字吧,应该就好了 再不行Q我:36829664.

吉林省17089374432: sql update语句如何将一个变量的值赋给数据表字段 -
赫泻维可: 如果你的hits字段是数值型的那么:sql42="UPdate news set hits=" & hitss 如果是字符型的那么:sql42="UPdate news set hits='" & hitss & "'"

吉林省17089374432: update语句使用方式有几种 -
赫泻维可: 标准SQL的update语句三种用法一、环境: MySQL-5.0.41-win32 Windows XP professional二、建立测试环境:DROP TABLE IF EXISTS t_test; CREATE TABLE t_test ( bs bigint(20) NOT NULL auto_increment, username varchar(20) NOT ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网