DB2Command.CommandText 属性
获取或设置要对数据库执行的 SQL 语句、XQuery 表达式或存储过程。
- 名称空间:
IBM.Data.DB2- 组合件:
IBM.Data.DB2(在IBM.Data.DB2.dll中)
语法
[Visual Basic]
Public Property CommandText As String
[C#]
public string CommandText {get; set;}
[C++]
public: __property String* get_CommandText();
public: __property void set_CommandText(String*);
[JScript]
public function get CommandText() : String;
public function set CommandText(String);
属性值
要执行的 SQL 语句、XQuery 表达式或存储过程。 缺省值为空字符串("")。
存储过程注释
将 CommandType 属性设置为 StoredProcedure 时,应将 CommandText 属性设置为存储过程的名称。 建议使用 CommandType.StoredProcedure 方法来调用存储过程。
过程是存储在数据库中的可执行对象。 通常,它是已预编译的一个或多个 SQL 语句。 用于调用带有 CommandType.Text 的过程的语法为:
{[?=]call procedure-name[([parameter][,[parameter]]...)]}
其中 procedure-name 指定过程的名称,而 parameter 指定过程参数。 将“?=”用于返回参数时,必须指定换码序列(大括号)。 否则,换码序列为可选。
调用 Execute 方法(例如 ExecuteReader或 ExecuteNonQuery)时,命令会执行该存储过程。
SQL 语句注释
如果当前连接正在执行执行执行或访存操作,那么无法设置 连接, CommandType 和 CommandText 属性。
将参数传递到 DB2命令调用的 SQL 语句或存储过程时, IBM® Data Server Provider for .NET 支持使用参数标记的指定参数或定位参数。 不能在同一个 SQL 语句中使用命名参数和定位参数的组合。
在 DB2ParameterCollection 中使用指定参数时,请在 SQL 语句中指定参数对象的名称,并将参数对象添加到 Db2®命令对象。 例如:
DB2Command cmd = new DB2Command( "SELECT * FROM EMPLOYEE
WHERE LASTNAME = @lastname AND WORKDEPT = @workdept", conn );
cmd.Parameters.Clear();
cmd.Parameters.Add( "@workdept", DB2Type.SmallInt );
cmd.Parameters.Add( "@lastname", DB2Type.VarChar, 15 );
DB2Reader reader = cmd.ExecuteReader();
参数标记名称不区分大小写,必须以符号“@”或冒号“:”(对于主变量)作为前缀并且可由一些符号组成,任何可用作 SQL 标识一部分的符号都可以。 有关 SQL 标识的详细信息,请参阅 Db2 数据服务器文档中的主题: 标识
。 不支持在同一语句中使用多个参数类型。 这意味着,使用定位参数标记的语句不能包含命名参数标记或主变量。 同样地,使用命名参数标记的语句不能包含主变量或定位参数标记
缺省情况下,会禁用对以冒号“:”作为前缀的主变量的支持。 要启用主变量支持,必须在连接字符串中将 HostVarParameters 属性设置为 TRUE。 为与包含主变量的应用程序兼容,已增加主变量支持。 建议不要开发带有主变量的新应用程序。
SELECT * FROM Customers WHERE CustomerID = ?
因此,将 DB2参数 对象添加到 DB2ParameterCollection 的顺序必须直接对应于参数的问号占位符的位置。
如果参数包含空值,那么 IBM Data Server Provider for .NET 会将该参数绑定为空值。 例如, DB2ParameterCollection:
{1, null, 2}
被传递给 CommandText 属性:
call sp(?, ?, ?)
导致 IBM Data Server Provider for .NET 将第一个参数绑定到值 1 ,将第二个参数绑定到空值,将第三个参数绑定到值 2。
XQuery 表达式注释
必须使用下列字符作为 CommandText 中 XQuery 表达式的前缀:XQUERY
示例
[Visual Basic , C#] 以下示例创建 DB2命令 并设置其部分属性。
[Visual Basic]
Public Sub CreateMyDB2Command()
Dim myCommand As New DB2Command()
myCommand.CommandText = "SELECT * FROM EMPLOYEE ORDER BY EMPNO"
myCommand.CommandTimeout = 20
End Sub
[C#]
public void CreateMyDB2Command()
{
DB2Command myCommand = new DB2Command();
myCommand.CommandText = "SELECT * FROM EMPLOYEE ORDER BY EMPNO";
myCommand.CommandTimeout = 20;
}
数据服务器限制
- 除 DB2 V9 及更高版本之外的所有数据服务器
- 仅 DB2 V9 及更高版本支持 XQuery 表达式。