WEB开发网
开发学院软件开发汇编语言 汇编教程:使用语句 阅读

汇编教程:使用语句

 2008-10-14 09:35:13 来源:WEB开发网   
核心提示:.dataSQLStmt db "select * from Sales",0.data?hStmt dd ?.code.....invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt.if ax==SQL_SUCCESS || ax==S

.data
SQLStmt db "select * from Sales",0
.data?
hStmt dd ?
.code
.....
invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
invoke SQLExecDirect, hStmt, addr SQLStmt, sizeof SQLStmt

编译执行

SQL的执行被分为两步:第一步,必须通过调用函数SQLPrepare来*准备*语句。第二步,通过调用SQLExecute函数来执行语句.在使用编译执行时,我们可以多次调用SQLExecute来执行同一语句. 结合使用SQL参数,这个方法对执行同一语句极为有效。

SQLPrepare 与SQLExecDirect使用相同的三个参数,所以这里不再写出函数原型。 SQLExecute 语法:

SQLExecute proto StatementHandle:DWORD

只须这一个参数,我想不再需要解释了;)

例子:

.data
SQLStmt db "select * from Sales",0
.data?
hStmt dd ?
.code
.....
invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt
.if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO
invoke SQLPrepare, hStmt, addr SQLStmt, sizeof SQLStmt
invoke SQLExecute, hStmt

你也许会想,编译执行没什么强于直接执行的。上面的例子还不明显。我们需要知道SQL语句的参数来仔细研究它。

语句参数(Statement Parameters)

这里的参数是指由SQL语句使用的变量.比如说我们有一个叫做 "employee"的表,它有三个字段:"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

Tags:汇编 教程 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接