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

📄 clsvccppfile.cls

📁 VB代码生成器
💻 CLS
📖 第 1 页 / 共 4 页
字号:
         strTemp = strTemp & Space(8) & "mlngRecordCount = QGetAll();" & vbCrLf
      strTemp = strTemp & Space(4) & "}" & vbCrLf
      strTemp = strTemp & Space(4) & "GetResult(parrudt" & strTableName & ");" & vbCrLf
      strTemp = strTemp & Space(4) & "return mlngRecordCount;" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   CreateQGetAll = strTemp
End Function

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

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

   strTemp = "long C" & strTableName & "::QGetBySN(const char *vstrSN, TYP" & UCase(strTableName) & " &rudt" & strTableName & ")" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "mlngRecordCount = -1;" & vbCrLf
      strTemp = strTemp & Space(4) & "mstrSQL = ""Select * From "" + CString(m_lpszTableName) +" & vbCrLf
            strTemp = strTemp & Space(12) & """ Where " & strTableName & "SN='"" + CString(vstrSN) + ""' Order By " & strTableName & "ID ASC"";" & vbCrLf
      strTemp = strTemp & Space(4) & "if (QOpenRecordSet(m_lpszDatabaseName, mstrSQL, mrst))" & vbCrLf
      strTemp = strTemp & Space(4) & "{" & vbCrLf
         strTemp = strTemp & Space(8) & "mlngRecordCount = mrst->RecordCount;" & vbCrLf
      strTemp = strTemp & Space(4) & "}" & vbCrLf
      strTemp = strTemp & Space(4) & "if (mlngRecordCount > 0)" & vbCrLf
      strTemp = strTemp & Space(4) & "{" & vbCrLf
         strTemp = strTemp & Space(8) & "QMoveFirst(rudt" & strTableName & ");" & vbCrLf
      strTemp = strTemp & Space(4) & "}" & vbCrLf
      strTemp = strTemp & Space(4) & "return mlngRecordCount;" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   CreateQGetBySN = strTemp
End Function

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

   Dim strTemp As String
   Dim strSQL 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 & "long C" & strTableName & "::QGetByField(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 StringInArr("COleDateTime ", arrstrFieldTypeName) Then
            strTemp = strTemp & Space(4) & "CString strSymbol;" & vbCrLf
            strTemp = strTemp & Space(4) & "strSymbol = (mintDatabaseType == enuDatabaseType_Access) ? ""#"" : ""'"";" & vbCrLf
         End If
         strTemp = strTemp & Space(4) & "mlngRecordCount = -1;" & vbCrLf

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

         strTemp = strTemp & Space(4) & "if (QOpenRecordSet(m_lpszDatabaseName, mstrSQL, mrst))" & vbCrLf
         strTemp = strTemp & Space(4) & "{" & vbCrLf
            strTemp = strTemp & Space(8) & "mlngRecordCount = mrst->RecordCount;" & vbCrLf
         strTemp = strTemp & Space(4) & "}" & vbCrLf
         strTemp = strTemp & Space(4) & "return mlngRecordCount;" & vbCrLf
      strTemp = strTemp & "}" & vbCrLf & vbCrLf

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

         strTemp = strTemp & Space(4) & "if (mstrSQL != strSQL)" & vbCrLf
         strTemp = strTemp & Space(4) & "{" & vbCrLf
            strTemp = strTemp & Space(8) & "mlngRecordCount = QGetByField(lpszFieldName, " & arrstrHeadInfo(I) & "FieldValue);" & vbCrLf
         strTemp = strTemp & Space(4) & "}" & vbCrLf
         strTemp = strTemp & Space(4) & "GetResult(parrudt" & strTableName & ");" & vbCrLf
         strTemp = strTemp & Space(4) & "return mlngRecordCount;" & vbCrLf
      strTemp = strTemp & "}" & vbCrLf & vbCrLf
   Next I

   CreateQGetByField = strTemp
End Function

'QGetBySQL 函数
Private Function CreateQGetBySQL(ByVal vstrProjectName As String, _
                                 ByRef objTable As Table) As String
   Dim strTemp As String
   Dim strTableName As String
   Dim arrstrFieldTypeName() As String
   Dim I As Long, lngCount As Long

   strTableName = objTable.Name

   strTemp = "long C" & strTableName & "::QGetBySQL(const char *lpszSQL)" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "mlngRecordCount = -1;" & vbCrLf
      strTemp = strTemp & Space(4) & "if (QOpenRecordSet(m_lpszDatabaseName, lpszSQL, mrst))" & vbCrLf
      strTemp = strTemp & Space(4) & "{" & vbCrLf
         strTemp = strTemp & Space(8) & "mstrSQL = lpszSQL;" & vbCrLf
         strTemp = strTemp & Space(8) & "mlngRecordCount = mrst->RecordCount;" & vbCrLf
      strTemp = strTemp & Space(4) & "}" & vbCrLf
      strTemp = strTemp & Space(4) & "return mlngRecordCount;" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   strTemp = strTemp & "long C" & strTableName & "::QGetBySQL(const char *lpszSQL, TYP" & UCase(strTableName) & " *parrudt" & strTableName & ")" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "if (mstrSQL != lpszSQL)" & vbCrLf
      strTemp = strTemp & Space(4) & "{" & vbCrLf
         strTemp = strTemp & Space(8) & "mlngRecordCount = QGetBySQL(lpszSQL);" & vbCrLf
      strTemp = strTemp & Space(4) & "}" & vbCrLf
      strTemp = strTemp & Space(4) & "GetResult(parrudt" & strTableName & ");" & vbCrLf
      strTemp = strTemp & Space(4) & "return mlngRecordCount;" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   CreateQGetBySQL = strTemp
End Function

'QGetByWhere 函数
Private Function CreateQGetByWhere(ByVal vstrProjectName As String, _
                                 ByRef objTable As Table) As String
   Dim strTemp As String
   Dim strSQL As String
   Dim strTableName As String
   Dim arrstrFieldTypeName() As String
   Dim I As Long, lngCount As Long

   strTableName = objTable.Name

   strTemp = "long C" & strTableName & "::QGetByWhere(const char *lpszWhere)" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "mlngRecordCount = -1;" & vbCrLf
      strSQL = "strSQL = ""Select * From "" + CString(m_lpszTableName) + " & """ """ & " + CString(lpszWhere);" & vbCrLf
      strTemp = strTemp & Space(4) & "m" & strSQL
      strTemp = strTemp & Space(4) & "if (QOpenRecordSet(m_lpszDatabaseName, mstrSQL, mrst))" & vbCrLf
      strTemp = strTemp & Space(4) & "{" & vbCrLf
         strTemp = strTemp & Space(8) & "mlngRecordCount = mrst->RecordCount;" & vbCrLf
      strTemp = strTemp & Space(4) & "}" & vbCrLf
      strTemp = strTemp & Space(4) & "return mlngRecordCount;" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   strTemp = strTemp & "long C" & strTableName & "::QGetByWhere(const char *lpszWhere, TYP" & UCase(strTableName) & " *parrudt" & strTableName & ")" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "CString strSQL;" & vbCrLf
      strTemp = strTemp & Space(4) & strSQL
      strTemp = strTemp & Space(4) & "if (mstrSQL != strSQL)" & vbCrLf
      strTemp = strTemp & Space(4) & "{" & vbCrLf
         strTemp = strTemp & Space(8) & "mlngRecordCount = QGetByWhere(lpszWhere);" & vbCrLf
      strTemp = strTemp & Space(4) & "}" & vbCrLf
      strTemp = strTemp & Space(4) & "GetResult(parrudt" & strTableName & ");" & vbCrLf
      strTemp = strTemp & Space(4) & "return mlngRecordCount;" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   CreateQGetByWhere = strTemp
End Function

'GetUpdateString 函数
Private Function CreateGetUpdateString(ByVal vstrProjectName As String, _
                                       ByRef objTable As Table) As String
   Dim strTemp As String
   Dim strTableName As String
   Dim I As Long, lngCount As Long
   Dim arrstrFieldTypeName() As String
   Dim arrstrHeadInfo() As String
   Dim strColumnName As String
   Dim strTempSQL As String
   Dim strHeadInfo As String

   strTableName = objTable.Name

   arrstrFieldTypeName = GetAllTypeName(objTable, arrstrHeadInfo, False)
   strTemp = "CString C" & strTableName & "::GetUpdateString(const TYP" & UCase(strTableName) & " &udt" & strTableName & ")" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "CString strSQL;" & vbCrLf
      If StringInArr("int ", arrstrFieldTypeName) Or _
         StringInArr("long ", arrstrFieldTypeName) Or _
         StringInArr("BOOL ", arrstrFieldTypeName) Then
            strTemp = strTemp & Space(4) & "char szBuffer[256];" & vbCrLf
      End If
      If StringInArr("COleDateTime ", arrstrFieldTypeName) Then
         strTemp = strTemp & Space(4) & "CString strSymbol;" & vbCrLf
         strTemp = strTemp & Space(4) & "strSymbol = (mintDatabaseType == enuDatabaseType_Access) ? ""#"" : ""'"";" & vbCrLf
      End If

'      mstrAutoIncrement = GetPrimaryKey(objTable)

      strTempSQL = strTempSQL & Space(4) & "strSQL = ""Update "" + CString(m_lpszTableName) + "" Set "" +" & vbCrLf
      lngCount = objTable.Columns.Count
      For I = 0 To lngCount - 1
            strColumnName = objTable.Columns.Item(I).Name
         If strColumnName <> mstrAutoIncrement Then
            strHeadInfo = GetColumnTypeInfoHead(objTable.Columns.Item(I))
            Select Case strHeadInfo
               Case "dtm"
                  strTempSQL = strTempSQL & Space(12) & """" & strColumnName & "="" + strSymbol + udt" & strTableName & "." & strHeadInfo & strColumnName & ".Format(""%Y-%m-%d %H:%M:%S"") + strSymbol + """
               Case "lpsz"
                  strTempSQL = strTempSQL & Space(12) & """" & strColumnName & "='"" + CString(udt" & strTableName & "." & strHeadInfo & strColumnName & ") + ""'"
               Case "str"
                  strTempSQL = strTempSQL & Space(12) & """" & strColumnName & "='"" + udt" & strTableName & "." & strHeadInfo & strColumnName & " + ""'"
               Case "lng"
                  strTempSQL = strTempSQL & Space(12) & """" & strColumnName & "="" + CString(ltoa(udt" & strTableName & "." & strHeadInfo & strColumnName & ", szBuffer, 10)) + """
               Case "int", "byt", "bln"
                  strTempSQL = strTempSQL & Space(12) & """" & strColumnName & "="" + CString(itoa(udt" & strTableName & "." & strHeadInfo & strColumnName & ", szBuffer, 10)) + """
               Case "flt"
                  strTempSQL = strTempSQL & Space(12) & """" & strColumnName & "="" + ftoa(udt" & strTableName & "." & strHeadInfo & strColumnName & ") + """
               Case "dbl"
                  strTempSQL = strTempSQL & Space(12) & """" & strColumnName & "="" + dtoa(udt" & strTableName & "." & strHeadInfo & strColumnName & ") + """
'                     Case "cur"
               Case Else '"var"
                  strTempSQL = strTempSQL & Space(12) & """" & strColumnName & "='"" + CString(udt" & strTableName & "." & strHeadInfo & strColumnName & ") + ""'"
            End Select
            If I = lngCount - 1 Then
               strTempSQL = strTempSQL & """;"
            Else
               strTempSQL = strTempSQL & ","" +"
            End If
            strTempSQL = strTempSQL & vbCrLf
         End If
      Next I
      strTemp = strTemp & strTempSQL
      strTemp = strTemp & Space(4) & "return strSQL;" & vbCrLf
   strTemp = strTemp & "}" & vbCrLf & vbCrLf

   CreateGetUpdateString = strTemp
End Function

'QUpdateBySN 函数
Private Function CreateQUpdateBySN(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 & "::QUpdateBySN(const char *vstrSN, const TYP" & UCase(strTableName) & " &udt" & strTableName & ")" & vbCrLf
   strTemp = strTemp & "{" & vbCrLf
      strTemp = strTemp & Space(4) & "mstrSQL = GetUpdateString(udt" & strTableName & ") +" & vbCrLf
         strTemp = strTemp & Space(8) & """ Where " & strTableName & "SN='"" + CString(udt" & strTableName & ".str" & strTableName & "SN) + ""'"";" & vbCrLf

⌨️ 快捷键说明

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