添加和运行 ColdFusion ASP 预存过程
注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。
关于 ASP 命令对象
ASP 命令对象是对数据库执行某种操作的服务器对象。该对象可以包含任何有效的 SQL 语句,包括返回记录集的语句或在数据库中插入、更新或删除记录的语句。如果 SQL 语句添加或删除表格中的列,则命令对象可以改变数据库的结构。您还可以使用命令对象在数据库中运行预存过程。
应用程序服务器可以重复使用该对象的单个编译的版本来多次执行命令,从这种意义上说,命令对象是可以重复使用的。通过将命令对象的“Prepared”属性设置为 true 可以使该命令能够重复使用,如下面的 VBScript 语句所示:
mycommand.Prepared = true
如果您知道将多次执行该命令,则具有该对象的单个编译的版本可以使数据库操作更加有效。
注意:并不是所有数据库提供程序都支持已准备命令。如果您的数据库不支持,则将此属性设置为 true 时,可能返回一条错误消息。它甚至可能忽略准备命令的请求并将“Prepared”属性设置为 false。
命令对象是由 ASP 页上的脚本创建的,但是 Dreamweaver 允许您创建命令对象而无需编写 ASP 代码。
使用 ASP 命令修改数据库
您可以使用 Dreamweaver 创建在数据库中插入、更新或删除记录的 ASP 命令对象。您可以向命令对象提供对数据库执行操作的 SQL 语句或预存过程。
- 在 Dreamweaver 中,打开将运行该命令的 ASP 页。
- 打开“服务器行为”面板(“窗口”>“服务器行为”),单击加号 (+) 按钮,然后选择“命令”。
- 输入命令的名称,选择指向包含要编辑的记录的数据库的连接,然后选择需要执行该命令的编辑操作(插入、更新或删除)。
Dreamweaver 将根据您选择的操作类型启动相应的 SQL 语句。例如,如果您选择“插入”,则对话框将如下例所示:
输入 ASP 命令 - 完成 SQL 语句。
有关编写修改数据库的 SQL 语句的信息,请查询 Transact-SQL 手册。
- 使用“变量”区域定义任何 SQL 变量。提供变量名称和运行时值。指定每个变量的类型和大小可防范注入式攻击。
下例显示了包含三个 SQL 变量的插入语句。这三个变量的值是由传递到页的 URL 参数提供的,如在“变量”区域的“运行时值”列中定义的那样。
图示为一个包含三个 SQL 变量的 Insert 语句若要获取“大小”值,请使用 Dreamweaver 中的“数据库”面板。在“数据库”面板中,查找所需的数据库并将其展开。然后,查找正在使用的表并将其展开。表中会列出各个字段的大小。例如,表中可能会显示“ADDRESS (WChar 50)”。在本例中,50 就是大小值。也可以在数据库应用程序中查找大小值。
注意:数字、布尔和日期/时间数据类型总是使用 -1 作为大小值。
若要确定“类型”值,请参阅下表:
数据库中的类型
Dreamweaver 中的类型
大小
数字(MS Access、MS SQL Server、MySQL)
双精度
-1
布尔型(是/否)(MS Access、MS SQL Server、MySQL)
双精度
-1
日期/时间(MS Access、MS SQL Server、MySQL)
DBTimeStamp
-1
所有其它文本字段类型,包括 MySQL 文本数据类型(char、varchar 和 longtext)
LongVarChar
检查数据库表
文本 (MS Access) 或 nvarchar、nchar (MS SQL Server)
VarWChar
检查数据库表
备注 (MS Access)、ntext (MS SQL Server) 或支持大量文本的字段
LongVarWChar
1073741823
有关 SQL 变量的类型和大小的详细信息,请参阅 www.adobe.com/go/4e6b330a_cn。
- 关闭对话框。
Dreamweaver 将在您的页面中插入 ASP 代码,该代码在服务器上运行时将创建一个在数据库中插入、更新或删除记录的命令。
默认情况下,该代码将命令对象的“Prepared”属性设置为 true,这使应用程序服务器在每次运行该命令时都重复使用对象的单个编译的版本。若要更改此设置,请切换到“代码”视图并将“Prepared”属性更改为 false。
- 创建一个包含 HTML 表单的页,以便用户可以输入记录数据。在 HTML 表单中包含三个文本字段(txtCity、txtAddress 和 txtPhone)和一个提交按钮。该表单使用 GET 方法并将文本字段值提交到包含您的命令的页。
关于预存过程
虽然您可以使用服务器行为生成修改数据库的页面,但也可以使用数据库操作对象(例如预存过程或 ASP 命令对象)生成这些页面。
预存过程是一种可以重复使用的数据库项,用于对数据库执行某种操作。预存过程包含具有一定功能的 SQL 代码,例如能够插入、更新或删除记录的 SQL 代码。预存过程还可以改变数据库本身的结构。例如,您可以使用预存过程添加表格列,或者甚至可以删除表格。
一个预存过程还可以调用另一个预存过程,以及接受输入参数并以输出参数的形式向调用过程返回多个值。
您可以重复使用预存过程的单个编译的版本来多次执行数据库操作,从这种意义上说,预存过程是可以重复使用的。如果您知道将多次执行某个数据库任务(即不同的应用程序将执行相同的任务),则使用预存过程执行该任务可以使数据库操作更有效。
注意:MySQL 和 Microsoft Access 数据库不支持预存过程。
添加预存过程 (ColdFusion) (CS6)
您可以使用预存过程修改数据库。预存过程是一种可以重复使用的数据库项,用于对数据库执行某种操作。
在您使用预存过程修改数据库之前,确保预存过程包含以某种方式修改数据库的 SQL。若要在数据库中创建并存储一个 SQL,请查询您的数据库文档以及有用的 Transact-SQL 手册。
- 在 Dreamweaver 中,打开将运行预存过程的页。
- 在“绑定”面板(“窗口”>“绑定”)中,单击加号 (+) 按钮,然后选择“预存过程”。
- 在“数据源”弹出菜单中,选择一个到包含预存过程的数据库的连接。
- 输入 ColdFusion 数据源的用户名和密码。
- 从“过程”弹出菜单中选择一个预存过程。
Dreamweaver 自动填写任何参数。
- 选择参数,如果需要进行更改请单击“编辑”。
即会出现“编辑预存过程变量”对话框。正在编辑的变量名显示在“名称”框中。
注意:您必须为任何预存过程输入参数输入测试值。
- 按需要进行更改:
- 从弹出菜单中选择一个方向。预存过程可能具有输入值、输出值,或者既具有输入值又具有输出值。
- 从弹出菜单中选择 SQL 类型。输入返回变量、运行时值和测试值。
- 如果预存过程采用参数,则单击加号 (+) 按钮添加页参数。
注意:您必须为每个预存过程参数返回值输入对应的页参数。除非有对应的返回值,否则不要添加页参数。
如果需要,再次单击加号 (+) 按钮添加另一个页参数。
- 选择一个页参数,并单击减号 (-) 按钮删除该参数(如果需要)或单击“编辑”对该参数进行更改。
- 选择“返回具有以下名称的记录集”选项,然后输入记录集的名称;如果预存过程返回记录集,则单击“测试”按钮查看预存过程返回的记录集。
Dreamweaver 运行预存过程并显示记录集(如果存在)。
注意:如果预存过程返回记录集并采用参数,则您必须在“变量”框的“默认值”列中输入一个值以测试该预存过程。
注意:您可以使用不同的测试值生成不同的记录集。若要更改测试值,则单击“参数”的“编辑”按钮,然后更改测试值;或者单击“页参数”的“编辑”按钮,然后更改默认值。
- 如果预存过程返回状态代码返回值,则选择“返回具有以下名称的状态代码”选项,然后输入状态代码的名称。单击“确定”。
关闭对话框后,Dreamweaver 将在您的页中插入 ColdFusion 代码,当在服务器上运行该代码时,将调用数据库中的预存过程。预存过程接着执行数据库操作,例如插入记录。
如果预存过程采用参数,则您可以创建一个页,该页通过预存过程收集参数值并将参数值提交到页。例如,您可以创建一个使用 URL 参数或 HTML 表单从用户收集参数值的页。
运行预存过程 (ASP) (CS6)
当处理 ASP 页时,您必须将命令对象添加到页以运行预存过程。有关命令对象的详细信息,请参阅关于 ASP 命令对象。
- 在 Dreamweaver 中,打开将运行预存过程的页。
- 在“绑定”面板(“窗口”>“绑定”)中,单击加号 (+) 按钮,然后选择“命令(预存过程)”。
即会出现“命令”对话框。
- 输入该命令的名称,选择一个到包含预存过程的数据库的连接,然后从“类型”弹出菜单中选择“预存过程”。
- 选择您的预存过程,方法是展开“数据库项”框中的“预存过程”分支,从列表中选择预存过程,然后单击“过程”按钮。
- 在“变量”表格中输入任何所需的参数。
不需要为任何 RETURN_VALUE 变量输入任何参数。
- 单击“确定”。
关闭该对话框后,ASP 代码便插入到您的页面中。当代码在服务器上运行时,代码将创建一个命令对象,该对象将在数据库中运行预存过程。预存过程接着执行数据库操作,例如插入记录。
默认情况下,该代码将命令对象的“Prepared”属性设置为 true,这使应用程序服务器在每次运行预存过程时重复使用对象的一个编译版本。如果您知道将多次执行该命令,则具有该对象的单个编译的版本可以提高数据库操作的效率。但是,如果该命令只执行一两次,则使用单个编译的版本实际上可能会降低 Web 应用程序的效率,因为系统必须暂停来编译该命令。若要更改设置,请切换到“代码”视图并将“Prepared”属性更改为 false。
注意:并不是所有数据库提供程序都支持已准备命令。如果您的数据库不支持,当运行此页时,您可能会得到一条错误信息。切换到“代码”视图并将“Prepared”属性更改为 false。
如果预存过程采用参数,则您可以创建一个页,该页通过预存过程收集参数值并将参数值提交到该页。例如,您可以创建一个使用 URL 参数或 HTML 表单从用户收集参数值的页。
更多此类内容
- 通过编写 SQL 来定义高级记录集