List 6-58 DataObj.ProductコンポーネントのIsDeletedメソッド
  1: Public Function IsDeleted(ByVal ProductID As Long) As DELETEDFLAG
  2:     ' 指定された製品番号を持つ製品が削除ずみであるかどうかを調べる
  3:     ' 【引数】
  4:     '   ProductID = 調査する製品番号
  5:     ' 【戻り値】
  6:     '   指定された製品番号の製品が
  7:     '           削除されていればID_Deleted
  8:     '           存在すればID_Exists
  9:     '           存在しなければID_NotFound
 10:     '   を返す
 11:     Dim objContext As ObjectContext
 12:     Dim objConn As ADODB.Connection
 13:     Dim objRec As ADODB.Recordset
 14:     
 15:     ' オブジェクトコンテキストの取得
 16:     Set objContext = GetObjectContext()
 17:     
 18:     ' エラーハンドラの設定
 19:     On Error GoTo ErrHandle
 20:     
 21:     ' データベースに接続して,指定された製品が存在するかどうかを調べる
 22:     Set objConn = CreateObject("ADODB.Connection")
 23:     objConn.Open g_DBConnection
 24:     Set objRec = objConn.Execute("SELECT DELETEDFLAG FROM 製品情報 WHERE ID=" & _
                                      ProductID)
 25:     
 26:     If objRec.EOF Then
 27:         ' 指定された製品はない
 28:         IsDeleted = ID_NotFound
 29:     Else
 30:         If objRec.Fields("DELETEDFLAG").Value = True Then
 31:             ' 製品は削除されている
 32:             IsDeleted = ID_Deleted
 33:         Else
 34:             ' 製品は削除されていない
 35:             IsDeleted = ID_Exists
 36:         End If
 37:         objRec.Close
 38:     End If
 39:     
 40:     ' データベースとの接続を閉じてレコードセットを解放
 41:     Set objRec = Nothing
 42:     objConn.Close
 43:     Set objConn = Nothing
 44:     
 45:     ' コミットする
 46:     objContext.SetComplete
 47:     
 48:     ' オブジェクトコンテキストの解放
 49:     Set objContext = Nothing
 50:     
 51:     Exit Function
 52: 
 53: ErrHandle:
 54:     ' エラーハンドラ
 55:     objContext.SetAbort
 56:     Set objContext = Nothing
 57:     Set objConn = Nothing
 58:     Set objRec = Nothing
 59:     
 60:     ' エラーの再発行
 61:     Err.Raise Err.Number, Err.Source, Err.Description, _
                   Err.HelpFile, Err.HelpContext
 62: End Function