字段:"name", "surname"和 "TelephoneNo" 。现在我们要找一个叫做"Bob"的职员的电话号码, 就可以使用以下SQL语句:
select telephoneNo from employee where name='Bob'
这条SQL语句象我们希望的那样工作了。但是,如果我们又想找另一个职员的电话号码怎么办?如果不使用参数,那只好再写一条SQL语句,然后再一次编译、执行它。
现在我们不会允许这种低效率的行为了。我们可以使用参数来实现目标。在上面的例子中,我们必须将字符串/值替换为 '?' (被称为参数标志符(parameter marker)).SQL 语句将变成这样:
select telephoneNo from employee where name=?
现在想一下这个问题:ODBC驱动程序如何知道用什么值来替换参数标志符'?'?答案是: 我们必须提供需要的值.这种方法被称为参数绑定(parameter binding).简单点说,就是将一个参数标志符与用户程序中的变量建立连接的过程.在上面的例子中,我们需要创建一个缓冲区来告诉ODBC驱动程序,当它需要一个参数的具体值时,将从我们提供的字符串缓冲区中获得。一旦一个参数与一个变量绑定,它将一直保持绑定,直到被绑定到另一变量,或直到所有参数都被函数 SQLFreeStmt以(函数)参数 SQL_RESET_PARAMS释放,或直到该语句被释放.
将一个参数绑定到一个变量是通过调用函数 SQLBindParameter实现,语法如下:
SQLBindParameter proto StatementHandle:DWORD, ParameterNumber:DWORD, InputOutputType:DWORD, ValueType:DWORD, ParameterType:DWORD, ColumnSize:DWORD, DecimalDigits:DWORD, ParameterValuePtr:DWORD, BufferLength:DWORD, pStrLenOrIndPtr:DWORD StatementHandle 语句句柄 ParameterNumber 参数个数,由1开始。这就是ODBC用来判断参数描述符的方法。如果有三个参数,则最左边是第一个参数,最右边是第三个参数。 InputOutputType 表明参数是用来输入还是输出的标志.这里的输入是指ODBC驱动程序将使用上一页 [1] [2] [3] [4] [5] 下一页
|