List 6-59 Business.ProductコンポーネントのGetProductメソッド
1: Public Sub GetProduct(ByVal ProductID As Long, _
ByRef ProductNAME As Variant, ByRef YOMIGANA As Variant, _
ByRef PRICE As Variant, ByRef STOCK As Variant, _
ByRef MEMO As Variant, ByRef BACKORDER As Variant, _
ByRef MADEUSER As Variant, ByRef MADEDATE As Variant, _
ByRef LASTUSER As Variant, ByRef LASTDATE As Variant)
2: ' 製品情報テーブル内の指定された製品番号の製品情報を返す
3: ' 【引数】
4: ' ProductID = 読み出したい製品を特定する製品番号を指定する
5: ' PRODUCTNAME = 指定された製品の製品名が格納される
6: ' YOMIGANA = 指定された製品の製品名のよみがなが格納される
7: ' PRICE = 指定された製品の価格が格納される
8: ' STOCK = 指定された製品の在庫数が格納される
9: ' MEMO = 指定された製品の摘要が格納される
10: ' BACKORDER = 指定された製品の予約数が格納される
11: ' MADEUSER = 指定された製品を登録したユーザー名が格納される
12: ' MADEDATE = 指定された製品が登録された日時が格納される
13: ' LASTUSER = 指定された製品の最終更新ユーザー名が格納される
14: ' LASTDATE = 指定された製品の最終更新日時が格納される
15: ' 【戻り値】
16: ' なし
17: Dim objContext As ObjectContext
18: Dim objDataProduct As DataObj.Product
19:
20: ' オブジェクトコンテキストの取得
21: Set objContext = GetObjectContext()
22:
23: ' エラーハンドラの設定
24: On Error GoTo ErrHandle
25:
26: ' DataObj.Productコンポーネントの実体化
27: Set objDataProduct = CreateObject("DataObj.Product")
28:
29: ' 削除ずみであるかどうか
30: If objDataProduct.IsDeleted(ProductID) = ID_Deleted Then
31: ' 削除ずみである
32: ' セキュリティ機能が有効か
33: If Not objContext.IsSecurityEnabled() Then
34: Err.Raise BusinessError.Err_NOSECURE, App.Title, _
"セキュリティ機構が無効です"
35: End If
36: ' ProductsAdminロールまたはAllAdminロールに属しているか
37: If Not (objContext.IsCallerInRole("ProductsAdmin") Or _
objContext.IsCallerInRole("AllAdmin")) Then
38: ' 属していない
39: Err.Raise Errorcode.Err_NotFound, App.Title, _
"指定された製品番号を持つ製品が見つかりません"
40: End If
41: End If
42:
43: ' 製品情報の取得
44: objDataProduct.GetRecord ProductID, ProductNAME, YOMIGANA, _
PRICE, STOCK, MEMO, BACKORDER, _
MADEUSER, MADEDATE, LASTUSER, LASTDATE
45:
46: ' DataObj.Productの解放
47: Set objDataProduct = Nothing
48:
49: ' コミットする
50: objContext.SetComplete
51:
52: ' オブジェクトコンテキストの解放
53: Set objContext = Nothing
54:
55: Exit Sub
56:
57: ErrHandle:
58: ' エラーハンドラ
59: objContext.SetAbort
60: Set objContext = Nothing
61: Set objDataProduct = Nothing
62:
63: ' エラーの再発行
64: Err.Raise Err.Number, Err.Source, Err.Description, _
Err.HelpFile, Err.HelpContext
65: End Sub