在语句中使用参数Adobe AIR 1.0 和更高版本 使用 SQL 语句参数,您可以创建可重用的 SQL 语句。使用语句参数时,语句中的值可以更改(如在 INSERT 语句中添加的值),但是基本的语句文本保持不变。所以,使用参数可提供性能优势,并且可以更轻松地进行应用程序编码。 了解语句参数应用程序经常在自身中多次使用单个 SQL 语句,只是稍有不同。以一个库存跟踪应用程序为例,用户可以在其中向数据库添加新的库存项目。向数据库添加库存项目的应用程序代码执行 SQL INSERT 语句,该语句实际上向数据库添加数据。但是,每次执行该语句时都稍有不同。具体来说,在表中插入的实际值是不同的,因为它们特定于所添加的库存项目。 在多次使用一个 SQL 语句但该语句中的值不同的情况下,最佳方法是使用包括参数的 SQL 语句而不是在 SQL 文本中包括字面值。参数是语句文本中的一个占位符,每次执行语句时都将它替换为实际的值。要在 SQL 语句中使用参数,请像通常一样创建 SQLStatement 实例。对于分配给 text 属性的实际 SQL 语句,使用参数占位符而不是字面值。然后通过在 SQLStatement 实例的 parameters 属性中设置元素值来定义每个参数的值。parameters 属性是一个关联数组,所以需要使用以下语法设置特殊值: statement.parameters[parameter_identifier] = value; 如果使用命名参数,则 parameter_identifier 是字符串;如果使用未命名参数,则它是整数索引。 使用命名参数参数可以是命名参数。命名参数具有一个特定的名称,数据库使用该名称将参数值与语句文本中其占位符位置相匹配。参数名称由“:”或“@”字符后跟一个名称组成,如以下示例所示: :itemName @firstName 以下代码清单演示命名参数的用法: var sql:String = "INSERT INTO inventoryItems (name, productCode)" + "VALUES (:name, :productCode)"; var addItemStmt:SQLStatement = new SQLStatement(); addItemStmt.sqlConnection = conn; addItemStmt.text = sql; // set parameter values addItemStmt.parameters[":name"] = "Item name"; addItemStmt.parameters[":productCode"] = "12345"; addItemStmt.execute(); 使用未命名参数作为使用命名参数的一种替代方式,也可以使用未命名参数。若要使用未命名参数,请使用“?”字符表示 SQL 语句中的参数。按照参数在语句中的顺序,每个参数都分配有一个数字索引,数字索引从索引 0(表示第一个参数)开始。以下示例使用未命名参数演示上述示例的一个版本: var sql:String = "INSERT INTO inventoryItems (name, productCode)" + "VALUES (?, ?)"; var addItemStmt:SQLStatement = new SQLStatement(); addItemStmt.sqlConnection = conn; addItemStmt.text = sql; // set parameter values addItemStmt.parameters[0] = "Item name"; addItemStmt.parameters[1] = "12345"; addItemStmt.execute(); 使用参数的优点在 SQL 语句中使用参数有以下几个优点:
|
|