📄 clsvccppfile.cls
字号:
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 + -