⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clsvccppfile.cls

📁 VB代码生成器
💻 CLS
📖 第 1 页 / 共 4 页
字号:
      strTemp = strTemp & Space(4) & "return QExecuteQuery(m_lpszDatabaseName, mstrSQL);" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   CreateQUpdateBySN = strTemp
End Function

'QUpdateByField 函数
Private Function CreateQUpdateByField(ByVal vstrProjectName As String, _
                                 ByRef objTable As Table) As String

   Dim strTemp As String
   Dim strTableName As String
   Dim arrstrFieldTypeName() As String
   Dim arrstrHeadInfo() As String
   Dim I As Long, lngCount As Long

   strTableName = objTable.Name

   arrstrFieldTypeName = GetAllTypeName(objTable, arrstrHeadInfo)
   lngCount = GetArrElementNb(arrstrFieldTypeName)
   strTemp = ""
   For I = 0 To lngCount - 1

      strTemp = strTemp & "BOOL C" & strTableName & "::QUpdateByField(const char *lpszFieldName, " & arrstrFieldTypeName(I) & arrstrHeadInfo(I) & "FieldValue, const TYP" & UCase(strTableName) & " &udt" & strTableName & ")" & vbCrLf
      strTemp = strTemp & "{" & vbCrLf
         If arrstrFieldTypeName(I) = "int " Or _
            arrstrFieldTypeName(I) = "long " Or _
            arrstrFieldTypeName(I) = "BOOL " Then
               strTemp = strTemp & Space(4) & "char szBuffer[256];" & vbCrLf
         End If
         If arrstrFieldTypeName(I) = "COleDateTime " Then
            strTemp = strTemp & Space(4) & "CString strSymbol;" & vbCrLf
            strTemp = strTemp & Space(4) & "strSymbol = (mintDatabaseType == enuDatabaseType_Access) ? ""#"" : ""'"";" & vbCrLf
         End If

         strTemp = strTemp & Space(4) & "mstrSQL = GetUpdateString(udt" & strTableName & ") +" & vbCrLf
         Select Case RTrim(arrstrFieldTypeName(I))
            Case "const char *"
               strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""='"" + CString(" & arrstrHeadInfo(I) & "FieldValue) + ""'"";" & vbCrLf
            Case "COleDateTime"
               strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + strSymbol + " & arrstrHeadInfo(I) & "FieldValue.Format(""%Y-%m-%d %H:%M:%S"") + strSymbol;" & vbCrLf
            Case "int"
               strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + CString(itoa(" & arrstrHeadInfo(I) & "FieldValue, szBuffer, 10));" & vbCrLf
            Case "long"
               strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + CString(ltoa(" & arrstrHeadInfo(I) & "FieldValue, szBuffer, 10));" & vbCrLf
            Case "float"
               strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + ftoa(" & arrstrHeadInfo(I) & "FieldValue);" & vbCrLf
            Case "double"
               strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + dtoa(" & arrstrHeadInfo(I) & "FieldValue);" & vbCrLf
            Case "BOOL"
               strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + CString(itoa(" & arrstrHeadInfo(I) & "FieldValue, szBuffer, 10));" & vbCrLf
            Case Else
               strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""='"" + CString(" & arrstrHeadInfo(I) & "FieldValue) + ""'"";" & vbCrLf
         End Select

         strTemp = strTemp & Space(4) & "return QExecuteQuery(m_lpszDatabaseName, mstrSQL);" & vbCrLf
      strTemp = strTemp & "}" & vbCrLf & vbCrLf

   Next I

   CreateQUpdateByField = strTemp
End Function

'QUpdateByWhere 函数
Private Function CreateQUpdateByWhere(ByVal vstrProjectName As String, _
                                 ByRef objTable As Table) As String

   Dim strTemp As String
   Dim strTableName As String
   strTableName = objTable.Name

   strTemp = "BOOL C" & strTableName & "::QUpdateByWhere(const char *lpszWhere, const TYP" & UCase(strTableName) & " &udt" & strTableName & ")" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "mstrSQL = GetUpdateString(udt" & strTableName & ") + CString(lpszWhere);" & vbCrLf
      strTemp = strTemp & Space(4) & "return QExecuteQuery(m_lpszDatabaseName, mstrSQL);" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   CreateQUpdateByWhere = strTemp
End Function

'QDelAll 函数
Private Function CreateQDelAll(ByVal vstrProjectName As String, _
                                 ByRef objTable As Table) As String

   Dim strTemp As String
   Dim strTableName As String
   strTableName = objTable.Name

   strTemp = "BOOL C" & strTableName & "::QDelAll()" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "mstrSQL = ""Delete From "" + CString(m_lpszTableName);" & vbCrLf
      strTemp = strTemp & Space(4) & "return QExecuteQuery(m_lpszDatabaseName, mstrSQL);" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   CreateQDelAll = strTemp
End Function

'QDelBySN 函数
Private Function CreateQDelBySN(ByVal vstrProjectName As String, _
                                 ByRef objTable As Table) As String

   Dim strTemp As String
   Dim strTableName As String
   strTableName = objTable.Name

   strTemp = "BOOL C" & strTableName & "::QDelBySN(const char *vstrSN)" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "mstrSQL = ""Delete From "" + CString(m_lpszTableName) +" & vbCrLf
         strTemp = strTemp & Space(8) & """ Where " & strTableName & "SN='"" + CString(vstrSN) + ""'"";" & vbCrLf
      strTemp = strTemp & Space(4) & "return QExecuteQuery(m_lpszDatabaseName, mstrSQL);" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   CreateQDelBySN = strTemp
End Function

'QDelByField 函数
Private Function CreateQDelByField(ByVal vstrProjectName As String, _
                                 ByRef objTable As Table) As String

   Dim strTemp As String
   Dim strTableName As String
   Dim arrstrFieldTypeName() As String
   Dim arrstrHeadInfo() As String
   Dim I As Long, lngCount As Long

   strTableName = objTable.Name

   arrstrFieldTypeName = GetAllTypeName(objTable, arrstrHeadInfo)
   lngCount = GetArrElementNb(arrstrFieldTypeName)
   strTemp = ""
   For I = 0 To lngCount - 1
      strTemp = strTemp & "BOOL C" & strTableName & "::QDelByField(const char *lpszFieldName, " & arrstrFieldTypeName(I) & arrstrHeadInfo(I) & "FieldValue)" & vbCrLf
      strTemp = strTemp & "{" & vbCrLf

         If arrstrFieldTypeName(I) = "int " Or _
            arrstrFieldTypeName(I) = "long " Or _
            arrstrFieldTypeName(I) = "BOOL " Then
               strTemp = strTemp & Space(4) & "char szBuffer[256];" & vbCrLf
         End If
         If arrstrFieldTypeName(I) = "COleDateTime " Then
            strTemp = strTemp & Space(4) & "CString strSymbol;" & vbCrLf
            strTemp = strTemp & Space(4) & "strSymbol = (mintDatabaseType == enuDatabaseType_Access) ? ""#"" : ""'"";" & vbCrLf
         End If

         strTemp = strTemp & Space(4) & "mstrSQL = ""Delete From "" + CString(m_lpszTableName) + " & vbCrLf
            Select Case RTrim(arrstrFieldTypeName(I))
               Case "const char *"
                  strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""='"" + CString(" & arrstrHeadInfo(I) & "FieldValue) + ""'"";" & vbCrLf
               Case "COleDateTime"
                  strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + strSymbol + " & arrstrHeadInfo(I) & "FieldValue.Format(""%Y-%m-%d %H:%M:%S"") + strSymbol;" & vbCrLf
               Case "int"
                  strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + CString(itoa(" & arrstrHeadInfo(I) & "FieldValue, szBuffer, 10));" & vbCrLf
               Case "long"
                  strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + CString(ltoa(" & arrstrHeadInfo(I) & "FieldValue, szBuffer, 10));" & vbCrLf
               Case "float"
                  strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + ftoa(" & arrstrHeadInfo(I) & "FieldValue);" & vbCrLf
               Case "double"
                  strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + dtoa(" & arrstrHeadInfo(I) & "FieldValue);" & vbCrLf
               Case "BOOL"
                  strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""="" + CString(itoa(" & arrstrHeadInfo(I) & "FieldValue, szBuffer, 10));" & vbCrLf
               Case Else
                  strTemp = strTemp & Space(12) & """ Where "" + CString(lpszFieldName) + ""='"" + CString(" & arrstrHeadInfo(I) & "FieldValue) + ""'"";" & vbCrLf
            End Select

         strTemp = strTemp & Space(4) & "return QExecuteQuery(m_lpszDatabaseName, mstrSQL);" & vbCrLf
      strTemp = strTemp & "}" & vbCrLf & vbCrLf

   Next I

   CreateQDelByField = strTemp
End Function

'QDelByWhere 函数
Private Function CreateQDelByWhere(ByVal vstrProjectName As String, _
                                 ByRef objTable As Table) As String

   Dim strTemp As String
   Dim strTableName As String
   strTableName = objTable.Name

   strTemp = "BOOL C" & strTableName & "::QDelByWhere(const char *lpszWhere)" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "mstrSQL = ""Delete From "" + CString(m_lpszTableName) + "" "" + CString(lpszWhere);" & vbCrLf
      strTemp = strTemp & Space(4) & "return QExecuteQuery(m_lpszDatabaseName, mstrSQL);" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   CreateQDelByWhere = strTemp
End Function

'GetResult 函数
Private Function CreateGetResult(ByVal vstrProjectName As String, _
                                 ByRef objTable As Table) As String

   Dim strTemp As String
   Dim strTableName As String
   Dim arrstrHeadInfo() As String
   Dim I As Long, lngCount As Long
   Dim strColumnName As String, strHeadInfo As String, strSymbol As String
   strTableName = objTable.Name

   strTemp = "void C" & strTableName & ":: GetResult(TYP" & UCase(strTableName) & " *parrudt" & strTableName & ")" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
   strTemp = strTemp & Space(4) & "if (mlngRecordCount > 0)" & vbCrLf
   strTemp = strTemp & Space(4) & "{" & vbCrLf
      strTemp = strTemp & Space(8) & "QMoveFirst(parrudt" & strTableName & "[0]);" & vbCrLf
      strTemp = strTemp & Space(8) & "for (long i = 1; i < mlngRecordCount; i++)" & vbCrLf
      strTemp = strTemp & Space(8) & "{" & vbCrLf
         strTemp = strTemp & Space(12) & "QMoveNext(parrudt" & strTableName & "[i]);" & vbCrLf
      strTemp = strTemp & Space(8) & "}" & vbCrLf
   strTemp = strTemp & Space(4) & "}" & vbCrLf
   strTemp = strTemp & Space(4) & "return;" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   strTemp = strTemp & "TYP" & UCase(strTableName) & " C" & strTableName & "::GetResult()" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "_variant_t tmpValue;" & vbCrLf
      strTemp = strTemp & Space(4) & "TYP" & UCase(strTableName) & " udt" & strTableName & ";" & vbCrLf
      strTemp = strTemp & vbCrLf

      lngCount = objTable.Columns.Count
      For I = 0 To lngCount - 1
         strColumnName = objTable.Columns.Item(I).Name
         strHeadInfo = GetColumnTypeInfoHead(objTable.Columns.Item(I))

         Select Case strHeadInfo
            Case "dtm"
               strTemp = strTemp & Space(4) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = COleDateTime::COleDateTime(1899, 5, 8, 0, 0, 0);" & vbCrLf
            Case "lpsz"
               strTemp = strTemp & Space(4) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = """";" & vbCrLf
            Case "lng", "int", "byt", "flt", "dbl"
               strTemp = strTemp & Space(4) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = 0;" & vbCrLf
            Case "bln"
               strTemp = strTemp & Space(4) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = false;" & vbCrLf
'                     Case "cur"
            Case Else '"var"
               strTemp = strTemp & Space(4) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = """";" & vbCrLf
         End Select

         strTemp = strTemp & Space(4) & "tmpValue=mrst->GetCollect(""" & strColumnName & """);" & vbCrLf
         strTemp = strTemp & Space(4) & "if (tmpValue.vt != VT_NULL)" & vbCrLf
         strTemp = strTemp & Space(4) & "{" & vbCrLf
            Select Case strHeadInfo
               Case "dtm"
                  strTemp = strTemp & Space(8) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = COleDateTime(tmpValue.date);" & vbCrLf
               Case "lpsz"
                  strTemp = strTemp & Space(8) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = _com_util::ConvertBSTRToString(tmpValue.bstrVal);" & vbCrLf
               Case "str"
                  strTemp = strTemp & Space(8) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = CString(_com_util::ConvertBSTRToString(tmpValue.bstrVal));" & vbCrLf
               Case "lng"
                  strTemp = strTemp & Space(8) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = (long)tmpValue.lVal;" & vbCrLf
               Case "int", "byt"
                  strTemp = strTemp & Space(8) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = (int)tmpValue.iVal;" & vbCrLf
               Case "bln"
                  strTemp = strTemp & Space(8) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = (BOOL)tmpValue.boolVal;" & vbCrLf
               Case "flt"
                  strTemp = strTemp & Space(8) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = (float)tmpValue.fltVal;" & vbCrLf
               Case "dbl"
                  strTemp = strTemp & Space(8) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = (double)tmpValue.dblVal;" & vbCrLf
   '                     Case "cur"
               Case Else '"var"
                  strTemp = strTemp & Space(8) & "udt" & strTableName & "." & strHeadInfo & strColumnName & " = _com_util::ConvertBSTRToString(tmpValue.bstrVal);" & vbCrLf
            End Select
         strTemp = strTemp & Space(4) & "}" & vbCrLf
      Next I

      strTemp = strTemp & Space(4) & "return udt" & strTableName & ";" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   CreateGetResult = strTemp
End Function

'QMove函数
Private Function CreateQMove(ByRef objTable As Table) As String

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -