zoukankan      html  css  js  c++  java
  • VB6 SQL参数化查询模块

          熟悉VB6的朋友在写带有多个参数的SQL语句的时候 ,查询脚本的参数是用&或+号连接起来吗,只有几个参数是尚可,当参数多时可读性就差多了。为了免去麻烦,因此做了此函数。

               虽然ADD的Command对象有Parameters属性,但还是自己封装了带参数的查询方法,有部分参考了宁静兄的:

        

     1 Public Function AdoOpenRS(ByRef wADORecordSet As ADODB.Recordset, _
     2                                 sqlSELECTCommand As String, _
     3                        Optional Param As Variant = "", _
     4                        Optional ActiveADOConn As ADODB.Connection = Nothing, _
     5                        Optional ShowMsgBoxIfFail As Boolean = True, _
     6                        Optional CloseRSIfFail As Boolean = True, _
     7                        Optional SetRSNothingIfFail As Boolean = True, _
     8                        Optional sRetErrDesp As String = "") As Boolean
     9                        
    10            'Param  參數數組
    11 On Error GoTo errOpenRs
    12           If Len(sqlSELECTCommand) = 0 Then Exit Function
    13            
    14           
    15           If TypeName(Param) = "Variant()" Then
    16             Dim i As Byte
    17             For i = 1 To UBound(Param)
    18               sqlSELECTCommand = Replace(sqlSELECTCommand, "?" & i, Param(i))
    19             Next
    20           End If
    21             
    22            wADORecordSet.CursorLocation = adUseClient '客户端游标
    23         
    24           If ActiveADOConn Is Nothing Then
    25             wADORecordSet.Open sqlSELECTCommand, SQLConn, adOpenDynamic, adLockOptimistic
    26           Else
    27             wADORecordSet.Open sqlSELECTCommand, ActiveADOConn, adOpenDynamic, adLockOptimistic
    28           End If
    29         
    30           Exit Function
    31 errOpenRs:
    32           If ShowMsgBoxIfFail Then MsgBox Err.Description, vbExclamation, "ErrOpenRs"
    33           'If CloseRSIfFail Then wADORecordSet.Close
    34           If SetRSNothingIfFail Then Set wADORecordSet = Nothing
    35 End Function

          调用例子:

     1     Dim strsql As String
     2     Dim Param(1 To 1) As Variant
     3     Dim rs As ADODB.Recordset
     4     Set rs = New ADODB.Recordset
     5 
     6     strsql = "select OrderID From [Order] " & _
     7              " where convert(nvarchar(7),OrderDate,120) = '?1'"
     8     Param(1) = Format(Now, "YYYY-MM")
     9 
    10    AdoOpenRS rs, strsql, Param
    11    
    12    
  • 相关阅读:
    QML学习笔记(三)-引入Font-awesome
    QML学习笔记(一)-防止鼠标穿透事件
    JS小积累(一)— 判断在线离线
    electron入门笔记(三)- 引入bootstrap
    express搭建服务器
    生成SSH密钥添加到GitHub
    python中常见的错误
    PyCharm在同一个包(package)下,如何把一个.py文件导入另外一个.py文件下
    在PyCharm中导入Numpy和Pygame模块 (win8.1)
    Pycharm中安装Pygame并写第一个程序
  • 原文地址:https://www.cnblogs.com/xiaoguanqiu/p/3068859.html
Copyright © 2011-2022 走看看