转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> 其他 >> 正文
准备与使用语句         ★★★★

准备与使用语句

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1372 更新时间:2009/4/22 23:21:14
中填入20.
  • DecimalDigits 与参数描述符连接的列的小数位.
  • ParameterValuePtr 指向包含参数数据的缓冲区的指针.
  • BufferLengthParameterValuePtr指向的缓冲区的长度.
  • pStrLenOrIndPtr 指向一个双字的指针,包含以下之一:
    • 由ParameterValuePtr指向的缓冲区中包含的参数长度. 除非参数的类型是字符串或二进制值,否则这个值被忽略.别把它与BufferLength混淆,看一下这个例子就会明白:假设该参数是一个字符串,该列有20字节宽.所以我们分配了一个21字节长的缓冲区,并将其地址传送到ParameterValuePtr。在调用函数SQLExecute前, 我们在缓冲区中放入了字符串"Bob".这个字符串有3字节长,因此我们需要在pStrLenOrIndPtr指向的双字中放入3这个值.
    • SQL_NTS. 这个参数是一个0结尾字符串(null-terminated string).
    • SQL_NULL_DATA. 参数值为NULL.
    • SQL_DEFAULT_PARAM. 存储过程将使用参数的默认值,而不是从用户程序中获得的值. 它仅适用于已定义了默认参数值的存储过程.
    • SQL_DATA_AT_EXEC. 参数的数据将由SQLPutData传送. 由于数据可能太大无法放入内存(比如整个文件的数据),我们可以告诉ODBC驱动程序我们将用SQLPutData替代.

      可能你会说 pStrLenOrIndPtr的参数太多了,但通常情况下,我们只会用到第一或第三个选项。
  • 例子:

    .data
    SQLString db "select telephoneNo from employee where name=?",0
    Sample1 db "Bob",0
    Sample2 db "Mary",0

    .data?
    buffer db 21 dup(?)
    StrLen dd ?

    .code
    ........
    invoke SQLPrepare, hStmt, addr SQLString,sizeof SQLString
    invoke SQLBindParameter, hStmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 20, 0, addr buffer, sizeof buffer, addr StrLen
    ;===========================================
    ; First run
    ;===========================================
    invoke lstrcpy, addr buffer, addr Sample1
    mov StrLen, sizeof Sample1
    invoke SQLExecute, hStmt
    ;===========================================
    ; Second run
    ;===========================================
    invoke lstrcpy, addr buffer, addr Sample2
    mov StrLen, sizeof Sample2
    invoke SQLExecute, hStmt

    注意我们仅将参数与缓冲区仅绑定了一次,当我们修改了缓冲区的内容并调用了SQLExecute 很多次.不必再调用SQLPrepare.ODBC驱动程序知道去那里找它需要的参数因为已通过SQLBindParameter函数告诉了它.

    但现在我们还不能获得查询结果.访问和适用结果集是下一章的内容。

    假设我们已完成了很多SQL语句,并要执行一个新的语句,那么没必要重新分配一个语句句柄.只要使用SQL_UNBINDSQL_RESET_PARAMS参数调用SQLFreeStmt函数来解除与参数的绑定就可以了. 接下来就可以接着使用原来的语句句柄来执行SQL语句了.

    释放语句

    由调用SQLFreeHandle函数实现.

    • 译注:原标题为Preparing and Using Statements,因为ODBC驱动程序繁多,有解释、编译执行之分,所以Preparing不仅是指准备,也有预编译的意思。
    • 另:关于作者提到的MSDN,其ODBC部分可在Visual Studio及其部件中找到,如
      C:\program Files\DevStudio\SharedIDE\Help\ODBC.hlp.
     

    上一页  [1] [2] 


    没有相关教程
    教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台