📄 asp对于数据可操作.htm
字号:
<br>
<br>
<br>%><BR><BR>注意 基于 DSN 路径字符串的文件在等号(=)前后不应包含空格。 <BR><BR>除了 SQL INSERT
命令以外,您也可以使用 SQL UPDATE 和 DELETE 命令更改和删除数据库信息。 <BR><BR>用 SQL UPDATE
命令,您可以改变数据库表中各项目值。下面的脚本使用 UPDATE 命令将 Customers 表中每个 LastName 字段包含姓 Smith
记录的 FirstName 字段更改为 Jeff。 <BR><BR><%
<br>
<br>Set cn = Server.CreateObject("ADODB.Connection")
<br>
<br>cn.Open "FILEDSN=MyDatabase.dsn"
<br>
<br>cn.Execute "UPDATE Customers SET FirstName = 'Jeff' WHERE LastName = '
<br>Smith' "
<br>
<br>%><BR><BR>要想从数据库表中删除特定的记录,可使用 SQL DELETE 命令。下面的脚本从 Customers
表中删除了所有姓 Smith 的行: <BR><BR><%
<br>
<br>Set cn = Server.CreateObject("ADODB.Connection")
<br>
<br>cn.Open "FILEDSN=MyDatabase.dsn"
<br>
<br>cn.Execute "DELETE FROM Customers WHERE LastName = 'Smith'"
<br>
<br>%><BR><BR>注意 在使用 SQL DELETE 命令时,必须谨慎从事。当使用不带 WHERE 子句的 DELETE
命令时,它将删除表中的所有行。一定要包含 SQL WHERE 子句来指定要删除的确切行。 <BR><BR>使用 Recordset 对象处理结果
<BR><BR>尽管 Connection 对象简化了连接数据库和查询任务,但 Connection
对象仍有许多不足。确切地说,检索和显示数据库信息的 Connection
对象不能用于创建脚本;您必须确切知道要对数据库作出的更改,然后才能使用查询实现更改。 <BR><BR>对于检索数据、检查结果、更改数据库,ADO
提供了 Recordset 对象。正如它的名称所暗示的那样,Recordset
对象有许多您可以使用的特性,根据您的查询限制,检索并且显示一组数据库行,即记录。 Recordset
对象保持查询返回的记录的位置,允许您一次一项逐步扫描结果。 <BR><BR>根据 Recordset
对象的指针类型属性设置,您可以滚动和更新记录。数据库指针可以让您在一组记录中定位到特定的项。指针还用于检索和检查记录,然后在这些记录的基础上执行操作。Recordset
对象有一些属性,可用于精确地控制指针的行为,提高您检查和更新结果的能力。例如,您可以使用 CursorType 和 CursorLocation
属性设置指针的类型,将结果返回给客户端应用程序(结果通常保留在数据库服务器上)并显示其他用户对数据库的最后一次更改。有关配置 Recordset
对象指针的信息,请参阅 Microsoft ActiveX Data Objects (ADO)。 <BR><BR>检索记录
<BR><BR>一个成功的数据库应用程序都使用 Connection 对象建立链接并使用 Recordset
对象处理返回的数据。通过“协调”两个对象的特定功能,您可以开发出几乎可以执行任何数据处理任务的数据库应用程序。例如,下面的服务器端脚本使用
Recordset 对象执行 SQL SELECT 命令。SELECT 命令检索一组基于查询限制的信息。查询也包含 SQL WHERE
子句,用来缩小查询的范围。此例中,WHERE 子句将查询限制为所有的 Customers 数据库表中包含的姓 Smith 的记录。 <BR><BR><%
<br>
<br>'Establish a connection with data source
<br>
<br>strDSN = "FILEDSN=MyDatabase.dsn"
<br>
<br>Set cn = Server.CreateObject("ADODB.Connection")
<br>
<br>cn.Open strDSN
<br>
<br>'Instantiate a Recordset object
<br>
<br>Set rsCustomers = Server.CreateObject("ADODB.Recordset")
<br>
<br>
<br>
<br>'Open a recordset using the Open method
<br>
<br>' and use the connection established by the Connection object
<br>
<br>strSQL = "SELECT FirstName, LastName FROM Customers WHERE LastName = 'Smith' "
<br>
<br>rsCustomers.Open strSQL, cn
<br>
<br>
<br>
<br>'Cycle through record set and display the results
<br>
<br>' and increment record position with MoveNext method
<br>
<br>Set objFirstName = rsCustomers("FirstName")
<br>
<br>Set objLastName = rsCustomers("LastName")
<br>
<br>Do Until rsCustomers.EOF
<br>
<br>Response.Write objFirstName & " " & objLastName & "<BR>"
<br>
<br>rsCustomers.MoveNext
<br>
<br>Loop
<br>
<br>%><BR><BR>注意,在前面的例子中,用来建立数据库连接的 Connection 对象和 Recordset
对象使用该连接从数据库中检索结果。当您需要精确地设置和数据库建立链接所采用的方式时,这个方法是非常有用的。例如,如果您需要在连接尝试失败之前指定等待的时间,则需要使用
Connection 对象去设置属性。但是,如果您仅仅想使用 ADO 默认的连接属性建立连接,则应该使用 Recordset 对象的 Open
方法去建立链接: <BR><BR><%
<br>
<br>strDSN = "FILEDSN=MyDatabase.dsn"
<br>
<br>strSQL = "SELECT FirstName, LastName FROM Customers WHERE LastName = 'Smith' "
<br>
<br>Set rsCustomers = Server.CreateObject("ADODB.Recordset")
<br>
<br>'Open a connection using the Open method
<br>
<br>'and use the connection established by the Connection object
<br>
<br>rsCustomers.Open strSQL, strDSN
<br>
<br>
<br>
<br>'Cycle through the record set, display the results,
<br>
<br>' and increment record position with MoveNext method
<br>
<br>Set objFirstName = rsCustomers("FirstName")
<br>
<br>Set objLastName = rsCustomers("LastName")
<br>
<br>Do Until rsCustomers.EOF
<br>
<br>Response.Write objFirstName & " " & objLastName & "<BR>"
<br>
<br>rsCustomers.MoveNext
<br>
<br>Loop
<br>
<br>%><BR><BR>当使用 Recordset 对象的 Open 方法建立一个连接时,必须使用 Connection
对象去保证链接的安全。详细信息,请参阅 Microsoft ActiveX Data Objects (ADO)。 <BR><BR>用
Command 对象改善查询 <BR><BR>通过 ADO Command 对象,可以象用 Connection 对象和 Recordset
对象那样执行查询,唯一的不同在于用 Command
对象您可以在数据库源上准备、编译您的查询并且反复使用一组不同的值来发出查询。这种方式的编译查询的优点是您可以最大程度地减少向现有查询重复发出修改的请求所需的时间。另外,您还可以在执行之前通过您的查询的可变部分的选项使
SQL 查询保持局部未定义。 <BR><BR>Command 对象的 parameter
集合减少了您的麻烦,使您不必在每次重新发出查询时重新建立查询。例如,如果需要有规律地更新基于库存清单的 Web
系统中的供应和价格信息,可以用下面的方法预先定义查询: <BR><BR><%
<br>
<br>'Open a connection using Connection object Command object
<br>
<br>'does not have an Open method for establishing a connection
<br>
<br>strDSN = "FILEDSN=MyDatabase.dsn"
<br>
<br>Set cn = Server.CreateObject("ADODB.Connection")
<br>
<br>cn.Open strDSN
<br>
<br>'Instantiate Command object; use ActiveConnection property to attach
<br>
<br>
<br>'connection to Command object
<br>
<br>Set cm= Server.CreateObject("ADODB.Command")
<br>
<br>Set cm.ActiveConnection = cn
<br>
<br>
<br>
<br>'Define SQL query
<br>
<br>cm.CommandText = "INSERT INTO Inventory (Material, Quantity) VALUES (?, ?)"
<br>
<br>'Save a prepared (or pre-compiled) version of the query specified in CommandText
<br>
<br>'property before a Command object's first execution.
<br>
<br>cm.Prepared = True
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -