tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 構造体でスマートに記述する方法
投稿日: 2010/04/22(Thu) 15:21
投稿者ひろこ
VB2005

お世話になっております。

下記の様にSQLのSelect,Update,Insert,Deleteのクラスを作ってみました。

SQL文は商品_SQL,価格_SQL,在庫_SQLとありSQL文の引数はそれぞれ違います。

md_Select,md_Update,md_Insert,md_DeleteのCase部分はすべて同じ記述をしています。
これを構造体や配列等を何か駆使してスマートに書く方法はないでしょうか。
いい方法があれば根本的に記述を変えてもOKです。

よろしくお願いします。


Public Class SqlLibrary

Dim gGamencd as Integer
Public Sub New(Byval gamencd as Integer)
    gGamencd = gamencd
End Sub

'===Select================================================================
Public Function md_Select(Optional Byval h0 as String = "", _
                          Optional Byval h1 as String = "")

    Dim getstr as String = ""

    Select Case gGamencd
        Case 1   : Dim s as New 商品_SQL      : getstr = s.md_Select(h0)
        Case 2   : Dim s as New 価格_SQL      : getstr = s.md_Select()
        Case 3   : Dim s as New 在庫_SQL      : getstr = s.md_Select(h0, h1)
      
    End Select

    md_Select = getstr

End Function

'===Update=================================================================
Public Sub md_Update(Byval fps_sh as Object, _
                     Byval col as Integer, Byval row as Integer)

    Select Case gGamencd
        Case 1    : Dim s as New 商品_SQL     : s.md_Update(fps_sh, row)
        Case 2    : Dim s as New 価格_SQL     : s.md_Update(fps_sh, row)
        Case 3    : Dim s as New 在庫_SQL     : s.md_Update(fps_sh, row)
        
        Case Else

    End Select

End Sub

'===Insert==============================================================
Public Sub md_Insert(Byval fps_sh as Object, _
                     Byval col as Integer, Byval row as Integer)

    Select Case gGamencd
        Case 1    : Dim s as New 商品_SQL     : s.md_Insert(fps_sh, row)
        Case 2    : Dim s as New 価格_SQL     : s.md_Insert(fps_sh, row)
        Case 3    : Dim s as New 在庫_SQL     :
        
    End Select

End Sub

'===Delete==============================================================
Public Sub md_Delete(Optional Byval cd0 as String  = "", _
                     Optional Byval cd1 as String  = "")

    Select Case gGamencd
        Case 1    : Dim s as New 商品_SQL     : s.md_Delete(cd0, cd1)
        Case 2    : Dim s as New 価格_SQL     : s.md_Delete(cd0)
        Case 3    : Dim s as New 在庫_SQL     : s.md_Delete()
      
    End Select

End Sub


End Function

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。