VB代碼規範和左外部結合

 
1.如果需要對一個表的所有字段需要進行操作,那麼在定義的時候,可以用如下的定義方式可以一目瞭然
Private Type mNenCho_Item
    N01_F_KBN              As String       'ファイル區分
    N02_REC_KBN           As String       'レコード區分
    。。。 。。。
    N24_ADD_CD             As String       '集計先コード
End Type
2.在SQL文中對字符類型的數據的操作,用如下函數
    strSql = strSql & "," & gs_AddQuo(vstrSysDate)
 
'*************************************************************
' 文字列をクォーテーションで囲む。
' 內容: 引數に渡された文字列をクォーテーションで囲む。
'           文字列中にクォーテーションが含まれる場合は2個に増やす。
' 戻り値:Variant(NULL文字があるのでVariant型を使用)
'*************************************************************
Public Function gs_AddQuo(ByVal vvarExp As Variant) As String
    gs_AddQuo = "'" & Replace(vvarExp, "'", "''") & "'"
End Function
 
3.對多個函數的操作,比較好的寫法。
blnFlg = mb_Del_NenCho(strType)
   If blnFlg = True Then
        blnFlg = mb_Edt_NenCho(strType, strPath & strFName)
    End If
   If  blnFlg = True Then
        G_MST.CommitTrans
   Else
        G_MST.RollbackTrans
   End If
 
4.SQl文
   條件: 本人情報マスタが存在する年末調整データの內、勤務所番號(控除先)が未設定または會社マスタに存在しないデータから出力する
 
 表的關係是 :
會社マスタ(M_KAISYA)的主鍵是勤務所番號(控除先)(KAISYA_CD)
 本人情報マスタ(M_HONNIN)的主鍵是加入者番號(EMPLOYEE_NO)
年末調整データ(T_NENCHO_MED)的主鍵是加入者番號(EMPLOYEE_NO)
 
SQL文如下:
    strSql = ""       
        strSql = strSql & "SELECT"
        strSql = strSql & " A.EMPLOYEE_NO"
        strSql = strSql & " ,A.NAME"
        strSql = strSql & " ,A.SEIBETU"
        strSql = strSql & " ,A.PRE_YEAR"
        strSql = strSql & " ,A.KINMUSHO_NO"
        strSql = strSql & " FROM T_NENCHO_MED A,M_HONNIN H"
        strSql = strSql & " WHERE"
        strSql = strSql & " H.EMPLOYEE_NO=A.EMPLOYEE_NO AND"
        strSql = strSql & " NOT EXISTS (SELECT 1 FROM M_KAISYA K WHERE K.KAISYA_CD=A.KINMUSHO_NO)"
 
這其中有個隱含內容 因爲勤務所番號(控除先)是會社マスタ的主鍵,所以它不可能爲空,那麼如果年末調整データ表中的勤務所番號(控除先)が未設定,那麼這條數據肯定也在會社マスタ裏不存在,所以實際上勤務所番號(控除先)が未設定和會社マスタに存在しないデータ這是統一的一個條件.
 
5. (+)在右邊,保證了左邊表中的所有記錄都會被取到,相當於一部分(part A)是select a.col1,b.col2,a.col3 from a,b where a.col1=b.col2取出的這部分記錄;另一部分(part B)是a表中不滿足上面條件剩下的所有記錄(包括2種,一種是記錄中a.col1爲空,另一種是a.col1取了b.col2未出現過的值)都會在表裏面顯示,這部分select出來的所有與b表相關的字段均爲空。所以左連接查詢得到的記錄條數應該與a表一致
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章