[[← 29 章に戻る|Palm OS Programmer's API Reference/29]] [[↑トップへ|Palm OS Programmer's API Reference]] [[31 章に進む →|Palm OS Programmer's API Reference/31]] ---- [[この章のページ 2 へ|Palm OS Programmer's API Reference/30-2]] この章の索引 *(ページ 1) *データ マネージャ データ構造体 **{{goto DmOpenRef,DmOpenRef}} **{{goto DmResID,DmResID}} **{{goto DmResType,DmResType}} **{{goto SortRecordInfoType,SortRecordInfoType}} *データ マネージャ定数 **{{goto カテゴリ定数,カテゴリ定数}} **{{goto レコード属性定数,レコード属性定数}} **{{goto データベース属性定数,データベース属性定数}} **{{goto エラー コード,エラー コード}} **{{goto オープン モード定数,オープン モード定数}} **{{goto Miscellaneous Constants,Miscellaneous Constants}} *データ マネージャ関数 **{{goto DmArchiveRecord,DmArchiveRecord}} **{{goto DmAttachRecord,DmAttachRecord}} **{{goto DmAttachResource,DmAttachResource}} **{{goto DmCloseDatabase,DmCloseDatabase}} **{{goto DmCreateDatabase,DmCreateDatabase}} **{{goto DmCreateDatabaseFromImage,DmCreateDatabaseFromImage}} **{{goto DmDatabaseInfo,DmDatabaseInfo}} **{{goto DmDatabaseProtect,DmDatabaseProtect}} **{{goto DmDatabaseSize,DmDatabaseSize}} **{{goto DmDeleteCategory,DmDeleteCategory}} **{{goto DmDeleteDatabase,DmDeleteDatabase}} **{{goto DmDeleteRecord,DmDeleteRecord}} **{{goto DmDetachRecord,DmDetachRecord}} **{{goto DmDetachResource,DmDetachResource}} **{{goto DmFindDatabase,DmFindDatabase}} **{{goto DmFindRecordByID,DmFindRecordByID}} **{{goto DmFindResource,DmFindResource}} **{{goto DmFindResourceType,DmFindResourceType}} **{{goto DmFindSortPosition,DmFindSortPosition}} **{{goto DmFindSortPositionV10,DmFindSortPositionV10}} **{{goto DmGetAppInfoID,DmGetAppInfoID}} **{{goto DmGetDatabase,DmGetDatabase}} **{{goto DmGetDatabaseLockState,DmGetDatabaseLockState}} **{{goto DmGetLastErr,DmGetLastErr}} **{{goto DmGetNextDatabaseByTypeCreator,DmGetNextDatabaseByTypeCreator}} **{{goto DmGetRecord,DmGetRecord}} **{{goto DmGetResource,DmGetResource}} **{{goto DmGetResourceIndex,DmGetResourceIndex}} **{{goto DmGet1Resource,DmGet1Resource}} **{{goto DmInsertionSort,DmInsertionSort}} **{{goto DmMoveCategory,DmMoveCategory}} **{{goto DmMoveRecord,DmMoveRecord}} *(ページ 2) **{{goto DmNewHandle,DmNewHandle|Palm OS Programmer's API Reference/30-2}} **{{goto DmNewRecord,DmNewRecord|Palm OS Programmer's API Reference/30-2}} **{{goto DmNewResource,DmNewResource|Palm OS Programmer's API Reference/30-2}} **{{goto DmNextOpenDatabase,DmNextOpenDatabase|Palm OS Programmer's API Reference/30-2}} **{{goto DmNextOpenResDatabase,DmNextOpenResDatabase|Palm OS Programmer's API Reference/30-2}} **{{goto DmNumDatabases,DmNumDatabases|Palm OS Programmer's API Reference/30-2}} **{{goto DmNumRecords,DmNumRecords|Palm OS Programmer's API Reference/30-2}} **{{goto DmNumRecordsInCategory,DmNumRecordsInCategory|Palm OS Programmer's API Reference/30-2}} **{{goto DmNumResources,DmNumResources|Palm OS Programmer's API Reference/30-2}} **{{goto DmOpenDatabase,DmOpenDatabase|Palm OS Programmer's API Reference/30-2}} **{{goto DmOpenDatabaseByTypeCreator,DmOpenDatabaseByTypeCreator|Palm OS Programmer's API Reference/30-2}} **{{goto DmOpenDatabaseInfo,DmOpenDatabaseInfo|Palm OS Programmer's API Reference/30-2}} **{{goto DmOpenDBNoOverlay,DmOpenDBNoOverlay|Palm OS Programmer's API Reference/30-2}} **{{goto DmPositionInCategory,DmPositionInCategory|Palm OS Programmer's API Reference/30-2}} **{{goto DmQueryNextInCategory,DmQueryNextInCategory|Palm OS Programmer's API Reference/30-2}} **{{goto DmQueryRecord,DmQueryRecord|Palm OS Programmer's API Reference/30-2}} **{{goto DmQuickSort,DmQuickSort|Palm OS Programmer's API Reference/30-2}} **{{goto DmRecordInfo,DmRecordInfo|Palm OS Programmer's API Reference/30-2}} **{{goto DmReleaseRecord,DmReleaseRecord|Palm OS Programmer's API Reference/30-2}} **{{goto DmReleaseResource,DmReleaseResource|Palm OS Programmer's API Reference/30-2}} **{{goto DmRemoveRecord,DmRemoveRecord|Palm OS Programmer's API Reference/30-2}} **{{goto DmRemoveResource,DmRemoveResource|Palm OS Programmer's API Reference/30-2}} **{{goto DmRemoveSecretRecords,DmRemoveSecretRecords|Palm OS Programmer's API Reference/30-2}} **{{goto DmResizeRecord,DmResizeRecord|Palm OS Programmer's API Reference/30-2}} **{{goto DmResizeResource,DmResizeResource|Palm OS Programmer's API Reference/30-2}} **{{goto DmResourceInfo,DmResourceInfo|Palm OS Programmer's API Reference/30-2}} **{{goto DmSearchRecord,DmSearchRecord|Palm OS Programmer's API Reference/30-2}} **{{goto DmSearchResource,DmSearchResource|Palm OS Programmer's API Reference/30-2}} **{{goto DmSeekRecordInCategory,DmSeekRecordInCategory|Palm OS Programmer's API Reference/30-2}} **{{goto DmSet,DmSet|Palm OS Programmer's API Reference/30-2}} **{{goto DmSetDatabaseInfo,DmSetDatabaseInfo|Palm OS Programmer's API Reference/30-2}} **{{goto DmSetRecordInfo,DmSetRecordInfo|Palm OS Programmer's API Reference/30-2}} **{{goto DmSetResourceInfo,DmSetResourceInfo|Palm OS Programmer's API Reference/30-2}} **{{goto DmStrCopy,DmStrCopy|Palm OS Programmer's API Reference/30-2}} **{{goto DmSync,DmSync|Palm OS Programmer's API Reference/30-2}} **{{goto DmSyncDatabase,DmSyncDatabase|Palm OS Programmer's API Reference/30-2}} **{{goto DmWrite,DmWrite|Palm OS Programmer's API Reference/30-2}} **{{goto DmWriteCheck,DmWriteCheck|Palm OS Programmer's API Reference/30-2}} *アプリケーション定義関数 **{{goto DmComparF,DmComparF|Palm OS Programmer's API Reference/30-2}} ---- !!!30 データとリソース マネージャ (ページ 1) この章では、ヘッダ ファイル {{span style='color:blue;font-family:monospace;',DataMgr.h}} で定義される、データ マネージャとリソース マネージャ API について説明します。以下のことを説明します。 *{{goto データ マネージャ データ構造体,データ マネージャ データ構造体}} *{{goto データ マネージャ定数,データ マネージャ定数}} *{{goto データ マネージャ関数,データ マネージャ関数}} *{{goto アプリケーション定義関数,アプリケーション定義関数}} データとリソース マネージャについて、さらに詳しく知りたければ、''Palm OS Programmer's Companion, vol. I'' の {{goto 「ファイルとデータベース」,「ファイルとデータベース」|Palm OS Programmer's Companion, vol. I/6}} を参照してください。 !!{{anchor データ マネージャ データ構造体}}データ マネージャ データ構造体 {{goto p0,^TOP^}} !{{anchor DmOpenRef}}DmOpenRef Typedef {{goto p0,^TOP^}} '''目的''' {{span style='color:blue;font-family:monospace;',DmOpenRef}} 型はオープンされたデータベースへのポインタを定義します。データベース ポインタは {{goto DmOpenDatabase,DmOpenDatabase()|Palm OS Programmer's API Reference/30-2}} によって作成され、返されます。そのポインタは、オープンされたデータベースへのアクセスを要求するいくつかの関数で使用されます。 '''Prototype''' typedef void *DmOpenRef; !{{anchor DmResID}}DmResID Typedef {{goto p0,^TOP^}} '''目的''' {{span style='color:blue;font-family:monospace;',DmResID}} 型はリソース識別子を定義します。作成時にそれぞれのリソース ID を代入します。10000 以上のリソース ID はシステムで使用するために予約されていることに注意してください。 '''Prototype''' typedef UInt32 DmResID; !{{anchor DmResType}}DmResType Typedef {{goto p0,^TOP^}} '''目的''' {{span style='color:blue;font-family:monospace;',DmResType}} 型はリソースの型を定義します。リソース型は、ビットマップ リソースである "'{{span style='color:blue;font-family:monospace;',Tbmp}}'" などの 4 文字のコードです。 '''Prototype''' typedef UInt32 DmResType; !{{anchor SortRecordInfoType}}SortRecordInfoType 構造体 {{goto p0,^TOP^}} '''目的''' {{span style='color:blue;font-family:monospace;',SortRecordInfoType}} 構造体はレコードのソートに使用できる情報を指定します。データベースをソートする関数({{goto DmInsertionSort,DmInsertionSort()}} と {{goto DmQuickSort, DmQuickSort()|Palm OS Programmer's API Reference/30-2}})はこの構造体を比較コールバック関数({{goto DmComparF, DmComparF()}} のような)に渡します。比較コールバック関数で、この構造体の情報を 2 つのレコードを比較するのに役立てることができます。この構造体を作成するために、与えられたレコードからこれらの値を返す {{goto DmRecordInfo,DmRecordInfo()|Palm OS Programmer's API Reference/30-2}} を呼び出すことができます。 '''Prototype''' typedef struct { UInt8 attributes; UInt8 uniqueID[3]; } SortRecordInfoType; typedef SortRecordInfoType *SortRecordInfoPtr; '''フィールド''' *{{span style='color:blue;font-family:monospace;',attributes}} **レコードの属性です。{{goto レコード属性定数,「レコード属性定数」}}を参照してください。 *{{span style='color:blue;font-family:monospace;',uniqueID}} **レコードの固有識別子 !!{{anchor データ マネージャ定数}}データ マネージャ定数 {{goto p0,^TOP^}} !{{anchor カテゴリ定数}}カテゴリ定数 {{goto p0,^TOP^}} 以下の定数はカテゴリについての情報を指定するのに使用されます。 , 定数, 値, 説明 , "{{anchor dmAllCategories}}{{span style='color:blue;font-family:monospace;',dmAllCategories}}", 0xFF, すべてのカテゴリを表すために使用されるマスク , "{{anchor dmCategoryLength}}{{span style='color:blue;font-family:monospace;',dmCategoryLength}}", 16, カテゴリ名の長さ。現在のところ、null 終端子を含めて 16 バイト , "{{anchor dmRecAttrCategoryMask}}{{span style='color:blue;font-family:monospace;',dmRecAttrCategoryMask}}", 0x0F, レコードの属性フィールドからカテゴリ情報を調べるために使用されるマスク , "{{anchor dmRecNumCategories}}{{span style='color:blue;font-family:monospace;',dmRecNumCategories}}", 16, 許可されているカテゴリ数。現在のところ、「未分類」カテゴリを含め 16 , "{{anchor dmUnfiledCategory}}{{span style='color:blue;font-family:monospace;',dmUnfiledCategory}}", 0, 未分類カテゴリを示すのに使用されるマスク !{{anchor レコード属性定数}}レコード属性定数 {{goto p0,^TOP^}} 以下の定数はデータベース レコードの属性を指定するために使用されます。 , 定数, 値, 説明 , "{{anchor dmMaxRecordIndex}}{{span style='color:blue;font-family:monospace;',dmMaxRecordIndex}}", 0xFFFF, 許可されるレコード インデックスの最大値を示す , "{{anchor dmAllRecAttrs}}{{span style='color:blue;font-family:monospace;',dmAllRecAttrs}}", 0xF0, すべてのレコード属性を指定するのに使用されるマスク , "{{anchor DmSetRecordInfo()}}{{span style='color:blue;font-family:monospace;',dmRecAttrBusy}}", 0x20, "Busy 状態(アプリケーションがこのレコードにアクセスするためにロックしている)。このビットがセットされているレコードに {{goto DmGetRecord,DmGetRecord()}} を呼び出すと失敗します。そうでなければ、この関数がこのビットをセットします。レコードを解放し、このビットをクリアするためには、{{goto DmReleaseRecord,DmReleaseRecord()|Palm OS Programmer's API Reference/30-2}} を呼び出します。{{span style='color:blue;font-family:monospace;',dmRecAttrBusy}} の状態を変えるために {{goto DmSetRecordInfo,DmSetRecordInfo()|Palm OS Programmer's API Reference/30-2}}" 関数を使用することはできません。" , "{{anchor dmRecAttrDelete}}{{span style='color:blue;font-family:monospace;',dmRecAttrDelete}}", 0x80, Deleted , "{{anchor dmRecAttrDirty}}{{span style='color:blue;font-family:monospace;',dmRecAttrDirty}}", 0x40, Dirty (最後の sync の後に変更されている) , "{{anchor dmRecAttrSecret}}{{span style='color:blue;font-family:monospace;',dmRecAttrSecret}}", 0x10, プライベート , "{{anchor dmSysOnlyRecAttrs}}{{span style='color:blue;font-family:monospace;',dmSysOnlyRecAttrs}}", 0x20, レコード属性を指定するのに使用されるマスク。システムのみが変更可能。(言い換えると、busy 属性) !{{anchor データベース属性定数}}データベース属性定数 {{goto p0.^TOP^}} 以下の定数がデータベースの属性を定義するのに使用されます。 , 定数, 説明 , "{{anchor dmAllHdrAttrs}}{{span style='color:blue;font-family:monospace;',dmAllHdrAttrs}}", ヘッダ属性を指定するのに使用されるマスク , "{{anchor dmHdrAttrAppInfoDirty}}{{span style='color:blue;font-family:monospace;',dmHdrAttrAppInfoDirty}}", アプリケーション情報ブロックが Dirty (最後の sync の後に変更された) , "{{anchor dmHdrAttrBundle}}{{span style='color:blue;font-family:monospace;',dmHdrAttrBundle}}", (無線)通信(訳者注: beam とは?)時にデータベースはアプリケーションにバンドルされます。つまり、ユーザがランチャーからアプリケーションを(無線)通信で送る場合に、ランチャーはこのデータベースをリソース データベースやオーバレイ データベースと一緒に(無線)通信で送ります。 , , この属性は Palm OS 4.0 以降で適用されます。Palm OS 4.0 以降では、オーバレイデータベースは自動的にアプリケーション データベースと一緒に(無線)通信で送られるということに注意してください。オーバレイ データベースではこのビットをセットする必要はありません。 , "{{anchor dmHdrAttrCopyPrevention}}{{span style='color:blue;font-family:monospace;',dmHdrAttrCopyPrevention}}", データベースが IR (赤外線) (無線)通信などでコピーされるのを防ぎます。 , "{{anchor dmHdrAttrHidden}}{{span style='color:blue;font-family:monospace;',dmHdrAttrHidden}}", このデータベースは見えなくなります。例えば、この属性は、いくつかのアプリケーションをランチャーのメイン ビューで見えなくするために、セットされます。レコード データベースのこの属性をセットすることで、ランチャーは、レコード数を表示する際に、そのデータベースのレコードを無視するようになります。この属性は Palm OS バージョン 3.2 以降で適用されます。 , "{{anchor dmHdrAttrLaunchableData}}{{span style='color:blue;font-family:monospace;',dmHdrAttrLaunchableData}}", このデータベースはデータ データベースですが、ランチャーから「開始(launch)」させることができます。例えば、この属性は Web Clipping Application Viewer アプリケーションから開始させられる Palm Query Applications (PQAs) にセットされます。 , "{{anchor dmHdrAttrOpen}}{{span style='color:blue;font-family:monospace;',dmHdrAttrOpen}}", データベースはオープンされています。 , "{{anchor dmHdrAttrOKToInstallNewer}}{{span style='color:blue;font-family:monospace;',dmHdrAttrOKToInstallNewer}}", 現在のデータベースがオープンされている場合、バックアップ Conduit はこのデータベースのより新しいバージョンを別の名前でインストールすることができます。このメカニズムは、例えば、Graffiti と Graffiti 2 ショートカット データベースを更新するのに使用されます。 , "{{anchor dmHdrAttrReadOnly}}{{span style='color:blue;font-family:monospace;',dmHdrAttrReadOnly}}", このデータベースは Read-only データベースです。 , "{{anchor dmHdrAttrRecyclable}}{{span style='color:blue;font-family:monospace;',dmHdrAttrRecyclable}}", このデータベースはリサイクル可能です。リサイクル可能なデータベースは、クローズされたりシステム リセットがかかると、消去されます。この属性は Palm OS 4.0 以降で適用されます。 , "{{anchor dmHdrAttrResetAfterInstall}}{{span style='color:blue;font-family:monospace;',dmHdrAttrResetAfterInstall}}", デバイスはこのデータベースがインストールされた後にリセットされなくてはなりません。つまり、HotSync アプリケーションは、このデータベースをインストールした後、強制的にリセットを行います。 , "{{anchor dmHdrAttrStream}}{{span style='color:blue;font-family:monospace;',dmHdrAttrStream}}", このデータベースはファイル ストリームです。 , "{{anchor dmSysOnlyHdrAttrs}}{{span style='color:blue;font-family:monospace;',dmSysOnlyHdrAttrs}}", システムのみが(オープンされたリソース データベースを)変更できるという属性を指定するマスクです。 !{{anchor エラー コード}}エラー コード {{goto p0.^TOP^}} 以下の定数は、データ マネージャとリソース マネージャ 関数により返されるエラー コードを定義します。いくつかの関数は、エラー コードの代わりに、{{span style='color:blue;font-family:monospace;',NULL}} また 0 などの失敗値(failure value)を返します。多くの場合、この値を受け取るとき {{goto DmGetLastErr,DmGetLastErr()}} を呼び出して、より詳細なエラー コードを取得することができます。 また、Palm OS リリース 3.5 より前のリリースでは、あるエラー コンディションが true だと多くのデータ マネージャ関数は {{goto ErrFatalDisplayIf, ErrFatalDisplayIf()}} マクロを使用して致命的なエラー メッセージを表示することに注意してください。通常、Palm OS ROM の一部はエラー チェック付きの状態で出荷されるため、致命的なエラー メッセージを受け取ることになるのです。エラー チェックが付いていない ROM の場合、関数はここで挙げるエラー コードのうちの 1 つを返します。(Palm 社はエラー チェックが付いていない ROM をリリースしたことはありませんし、そのようなことをする計画もないということに注意してください。) , 定数, 説明 , "{{anchor dmErrAlreadyExitst}}{{span style='color:blue;font-family:monospace;',dmErrAlreadyExitst}}", 同名のデータベースがすでに RAM に存在しています。 , "{{anchor dmErrAlreadyOpenForWrites}}{{span style='color:blue;font-family:monospace;',dmErrAlreadyOpenForWrites}}", データベースはすでに書き込みアクセスできる状態でオープンされています。 , "{{anchor dmErrCantFind}}{{span style='color:blue;font-family:monospace;',dmErrCantFind}}", 指定したリソースが見つかりません。 , "{{anchor dmErrCantOpen}}{{span style='color:blue;font-family:monospace;',dmErrCantOpen}}", データベースをオープンできません。 , "{{anchor dmErrCorruptDatabase}}{{span style='color:blue;font-family:monospace;',dmErrCorruptDatabase}}", データベースは破壊されています。 , "{{anchor dmErrDatabaseOpen}}{{span style='color:blue;font-family:monospace;',dmErrDatabaseOpen}}", データベースはオープンされていますが、関数を実行することができません。 , "{{anchor dmErrDatabaseNotProtected}}{{span style='color:blue;font-family:monospace;',dmErrDatabaseNotProtected}}", "{{anchor DmDatabaseProtect,DmDatabaseProtect()}} は指定されたデータベースをプロテクトするのに失敗しました。" , "{{anchor dmErrDatabaseProtected}}{{span style='color:blue;font-family:monospace;',dmErrDatabaseProtected}}", データベースはプロテクトされています。 , "{{anchor dmErrIndexOutOfRange}}{{span style='color:blue;font-family:monospace;',dmErrIndexOutOfRange}}", 指定されたインデックスは範囲外です。 , "{{anchor dmErrInvalidDatabaseName}}{{span style='color:blue;font-family:monospace;',dmErrInvalidDatabaseName}}", 指定した名前はデータベースの名前としては無効です。 , "{{anchor }}{{span style='color:blue;font-family:monospace;',dmErrInvalidPara,}}", 関数が無効なパラメータを受け取りました。 , "{{anchor dmErrMemError}}{{span style='color:blue;font-family:monospace;',dmErrMemError}}", メモリ エラーが生じました。 , "{{anchor dmErrNotOpenDatabase}}{{span style='color:blue;font-family:monospace;',dmErrNotOpenDatabase}}", 関数がオープンされているデータベースを探しましたが、オープンされたデータベースはありません。 , "{{anchor dmErrNotRecordDB}}{{span style='color:blue;font-family:monospace;',dmErrNotRecordDB}}",リソース データベースにレコード関数を実行しようとしました。 , "{{anchor dmErrNotBalidRecord}}{{span style='color:blue;font-family:monospace;',dmErrNotBalidRecord}}", レコード ハンドルが無効です。 , "{{anchor dmErrOpenedByAnotherTask}}{{span style='color:blue;font-family:monospace;',dmErrOpenedByAnotherTask}}", 他のタスクがすでにオープンしたデータベースをオープンしようとしました。 , "{{anchor dmErrReadOnly}}{{span style='color:blue;font-family:monospace;',dmErrReadOnly}}", Read-only モードのデータベースに書き込みまたは変更しようとしました。 , "{{anchor dmErrRecordArchived}}{{span style='color:blue;font-family:monospace;',dmErrRecordArchived}}", 関数はレコードがアーカイブされないことを要求していますが、そのレコードはアーカイブされています。 , "{{anchor dmErrRecordBusy}}{{span style='color:blue;font-family:monospace;',dmErrRecordBusy}}", 関数はレコードが Busy 状態でないことを要求していますが、そのレコードは Busy 状態です。 , "{{anchor dmErrRecordDeleted}}{{span style='color:blue;font-family:monospace;',dmErrRecordDeleted}}", レコードはすでに削除されています。 , "{{anchor dmErrRecordInWrondCard}}{{span style='color:blue;font-family:monospace;',dmErrRecordInWrondCard}}", レコードとデータベースが異なるメモリ カードに存在しているのに、レコードをデータベースに追加しようとしました。 , "{{anchor dmErrResourceNotFound}}{{span style='color:blue;font-family:monospace;',dmErrResourceNotFound}}", リソースが見つかりません。 , "{{anchor dmErrROMBased}}{{span style='color:blue;font-family:monospace;',dmErrROMBased}}", ROM ベースのデータベースを削除または変更しようとしました。 , "{{anchor dmErrSeekFailed}}{{span style='color:blue;font-family:monospace;',dmErrSeekFailed}}", カテゴリの次のレコードを探す操作が失敗しました。 , "{{anchor dmErrUniqueIDNotFound}}{{span style='color:blue;font-family:monospace;',dmErrUniqueIDNotFound}}", 指定された ID のレコードが見つかりません。 , "{{anchor dmErrWriteOutOfBounds}}{{span style='color:blue;font-family:monospace;',dmErrWriteOutOfBounds}}", 書込み操作がレコードの境界を越えてしまいました。 , "{{anchor memErrCardNotPresent}}{{span style='color:blue;font-family:monospace;',memErrCardNotPresent}}", 指定されたカードが見つかりません。 , "{{anchor memErrChunkLocked}}{{span style='color:blue;font-family:monospace;',memErrChunkLocked}}", 関連するメモリ チャンクはロックされています。 , "{{anchor memErrInvalidParam}}{{span style='color:blue;font-family:monospace;',memErrInvalidParam}}, {{anchor memErrNotEnoughSpace}}{{span style='color:blue;font-family:monospace;',memErrNotEnoughSpace}}", メモリ エラーが生じました。 , "{{anchor memErrInvalidStoreHeader}}{{span style='color:blue;font-family:monospace;',memErrInvalidStoreHeader}}, {{anchor memErrRAMOnlyCard}}{{span style='color:blue;font-family:monospace;',memErrRAMOnlyCard}}", 指定されたカードは RAM を持っていません。 , "{{anchor omErrBaseRequiresOverlay}}{{span style='color:blue;font-family:monospace;',omErrBaseRequiresOverlay}}", 分割されたリソース データベースをオープンしようとしましたが、関連するオーバレイが見つかりませんでした。 , "{{anchor omErrUnknownLocale}}{{span style='color:blue;font-family:monospace;',omErrUnknownLocale}}", 知らないロケール(訳者注: Locale)を使用しているオーバレイでリソース データベースをオープンしようとしました。 !{{anchor オープン モード定数}}オープン モード定数 {{goto p0,^TOP^}} 以下の定数がデータベースをオープンするときのモードを定義しています。これらの定数の 1 つまたはいくつかを {{goto DmOpenDatabase,DmOpenDatabase()|Palm OS Programmer's API Reference/30-2}}, {{goto DmOpenDatabaseByTypeChareator,DmOpenDatabaseByTypeCreator()|Palm OS Programmer's API Reference/30-2}} または {{goto DmOpenDBNoOverlay,DmOpenDBNoOverlay()|Palm OS Programmer's API Reference/30-2}} へのパラメータとして渡します。 , 定数, 説明 , "{{anchor dmModeReadWrite}}{{span style='color:blue;font-family:monospace;',dmModeReadWrite}}", Read-write アクセス , "{{anchor dmModeReadOnly}}{{span style='color:blue;font-family:monospace;',dmModeReadOnly}}", Read-only アクセス , "{{anchor dmModeWrite}}{{span style='color:blue;font-family:monospace;',dmModeWrite}}", Write-only アクセス , "{{anchor dmModeLeaveOpen}}{{span style='color:blue;font-family:monospace;',dmModeLeaveOpen}}", アプリケーションを終了した後もデータベースをオープンにしておく , "{{anchor dmModeExclusive}}{{span style='color:blue;font-family:monospace;',dmModeExclusive}}", このデータベースを他の人にオープンさせない , "{{anchor dmModeShowSecret}}{{span style='color:blue;font-family:monospace;',dmModeShowSecret}}", プライベート の レコードを表示する !{{anchor その他の定数}}その他の定数 {{goto p0,^TOP^}} 以下の追加定数がデータ マネージャとの接続に使用されます。 , 定数, 値, 説明 , "{{anchor dmDBNameLength}}{{span style='color:blue;font-family:monospace;',dmDBNameLength}}", 32, null 終端子を含むデータベース名の最大長。データベースには 7 ビット ASCII 文字(0x20 から 0x7E)しか使えません。 !!{{anchor データ マネージャ関数}}データ マネージャ関数 {{goto p0,^TOP^}} !{{anchor DmArchiveRecord}}DmArchiveRecord 関数 {{goto p0,^TOP^}} '''目的''' レコード チャンクに手をつけずに次の sync のために削除ビットをセットすることで、レコードにアーカイブされるようマークをします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmArchiveRecord ( DmOpenRef dbP, UInt16 index ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたデータベースへの {{span style='color:blue;font-family:monospace;',DmOpenRef}} *{{span style='color:blue;font-family:monospace;',→ index}} **アーカイブするレコードを指定します。 '''返り値''' エラーが無ければ {{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーがある場合は以下のエラーの 1 つを返します。 *{{goto dmErrReadOnly,dmErrReadOnly}} *{{goto dmErrIndexOutOfRange, dmErrIndexOutOfRange}} *{{goto dmErrRecordArchived,dmErrRecordArchived}} *{{goto dmErrRecordDeleted,dmErrRecordDeleted}} *{{goto memErrInvalidParam,memErrInvalidParam}} これらのエラーのいくつかは、エラー コードを返す代わりに、致命的なエラー メッセージを表示するかもしれません。 '''コメント''' レコードをアーカイブするとき、削除ビットはセットされていますが、チャンクは解放されておらず、ローカル ID は存在しています。これにより、次にユーザがデスクトップ システムと同期を取るとき、デスクトップは Palm デバイスからレコード エントリとデータを永久に削除する前にレコード データを PC に保存することができます。 {{span style='color:blue;font-family:monospace;',DmArchiveRecord}} の呼び出しがレコードの操作が終了し、再びそれを参照することがないということを意味するという仮定に基づき、この関数はチャンクのロック カウントを 0 にセットします。 '''互換性''' {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmRemoveRecord,DmRemoveRecord()|Palm OS Programmer's API Reference/30-2}}, {{goto DmDetachRecord,DmDetachRecord()}}, {{goto DmNewRecord,DmNewRecord()|Palm OS Programmer's API Reference/30-2}}, {{goto DmDeleteRecord,DmDeleteRecord()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmAttachRecord}}DmAttachRecord 関数 {{goto p0,^TOP^}} '''目的''' 存在するチャンク ID ハンドルをレコードとしてデータベースに追加します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmAttachRecord ( DmOpenRef dbP, UInt16 *atP, MemHandle newH, MemHandle *oldHP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたデータベースへの {{span style='color:blue;font-family:monospace;',DmOpenRef}} *{{span style='color:blue;font-family:monospace;',←→ atP}} **新しいレコードを作成すべき場所を示すインデックスへのポインタ。レコードをデータベースの最後に追加するために {{span style='color:blue;font-family:monospace;',dmMaxRecordIndex}} 値を指定します。 *{{span style='color:blue;font-family:monospace;',→ newH}} **新しいレコードのハンドル *{{span style='color:blue;font-family:monospace;',←→ oldHP}} **エントリのときに non-{{span style='color:blue;font-family:monospace;',NULL}} であれば、{{span style='color:blue;font-family:monospace;',*atP}} が示すレコードが置き換えられるであろうということを意味します。リターンのときであれば、置き換えられたレコードへのハンドルになります。 '''返り値''' エラーが無ければ {{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが生じた場合は以下のうちの 1 つを返します。 *{{goto dmErrMemError,dmErrMemError}} *{{goto memErrChunkLocked,memErrChunkLocked}} *{{goto memErrInvalidParam,memErrInvalidParam}} *{{goto memErrNotEnoughSpace,memErrNotEnoughSpace}} *{{goto dmErrReadOnly,dmErrReadOnly}} *{{goto dmErrNotRecordDB,dmErrNotRecordDB}} *{{goto dmErrRecordInWrongCard,dmErrRecordInWrongCard}} *{{goto dmErrIndexOutOfRange,dmErrIndexOutOfRange}} いくつかのエラーは、エラー コードを返す代わりに、致命的なエラー メッセージを表示するかもしれません。 '''コメント''' 存在するチャンクのハンドルが与えられると、このルーチンはそのチャンクをデータベースの新しいレコードにし、Dirty ビットをセットします。パラメータ {{span style='color:blue;font-family:monospace;',atP}} はインデックス変数を指します。 {{span style='color:blue;font-family:monospace;',oldHP}} が {{span style='color:blue;font-family:monospace;',NULL}} の場合、新しいレコードはインデックス *{{span style='color:blue;font-family:monospace;',atP}} に挿入され、その後のインデックスはすべてシフト ダウンされます。*{{span style='color:blue;font-family:monospace;',atP}} がデータベースの現在のレコード数よりも大きい場合、新しいレコードは最後に挿入され、そのインデックスは *{{span style='color:blue;font-family:monospace;',atP}} で返されます。{{span style='color:blue;font-family:monospace;',oldHP}} が {{span style='color:blue;font-family:monospace;',NULL}} でない場合、新しいレコードはインデックス *{{span style='color:blue;font-family:monospace;',atP}} に存在するレコードと置き換えられ、古いレコードのハンドルは *{{span style='color:blue;font-family:monospace;',oldHP}} で返されます。返されたハンドルで、アプリケーションは古いレコードを解放したり、他のデータベースに追加することができます。 この関数は、データベース間でカット&ペーストを行うのに有用です。 '''互換性''' {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmDetachRecord,DmDetachRecord()}}, {{goto DmNewRecord,DmNewRecord()|Palm OS Programmer's API Reference/30-2}}, {{goto DmNewHandle,DmNewHandle()|Palm OS Programmer's API Reference/30-2}}, {{goto DmFindSortPosition,DmFindSortPosition()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmAttachResource}}DmAttachResource 関数 {{goto p0,^TOP^}} '''目的''' 存在するチャンク ID を新しいリソースとしてリソース データベースに追加します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmAttachResource ( DmOpenRef dbP, MemHandle newH, DmResType resType, DmResID resID ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたデータベースへの {{span style='color:blue;font-family:monospace;',DmOpenRef}} *{{span style='color:blue;font-family:monospace;',→ newH}} **新しいリソースのデータのハンドル *{{span style='color:blue;font-family:monospace;',→ resType}} **新しいリソースの型 *{{span style='color:blue;font-family:monospace;',→ resID}} **新しいリソースの ID '''返り値''' エラーが無ければ {{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが生じた場合は以下の 1 つを返します。 *{{goto dmErrMemError,dmErrMemError}} *{{goto memErrChunkLocked,memErrChunkLocked}} *{{goto memErrInvalidParam,memErrInvalidParam}} *{{goto memErrNotEnoughSpace,memErrNotEnoughSpace}} *{{goto dmErrReadOnly,dmErrReadOnly}} *{{goto dmErrRecordInWrongCard,dmErrRecordInWrongCard}} いくつかのエラーは、エラー コードを返す代わりに、致命的なエラー メッセージを表示するかもしれません。データベースがリソース データベースでない場合は、すべてのエラーが致命的なエラー メッセージを表示するかもしれません。 '''コメント''' リソース データが収められている存在するチャンクのハンドルを与えられると、このルーチンはそのチャンクをリソース データベースの新しいレコードにします。新しいリソースは与えられた型と ID を持ちます。 '''参照''' {{goto DmDetachRecord,DmDetachRecord()}}, {{goto DmRemoveRecord,DmRemoveRecord()|Palm OS Programmer's API Reference/30-2}}, {{goto DmNewHandle,DmNewHandle()|Palm OS Programmer's API Reference/30-2}}, {{goto DmNewResource,DmNewResource()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmCloseDatabase}}DmCloseDatabase 関数 {{goto p0,^TOP^}} '''目的''' データベースをクローズします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmCloseDatabase ( DmOpenRef dbP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **データベースにアクセスするためのポインタ '''返り値''' エラーが無ければ {{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが生じた場合は {{goto dmErrInvalidParam,dmErrInvalidParam}} を返します。いくつかのエラーは、エラー コードを返す代わりに、致命的なエラー メッセージを表示するかもしれません。 '''コメント''' このルーチンはロックされていたレコードのロックを解除しません。レコードとリソースはロックされたままにしておくべきではありません。レコード/リソースがロックされたままだと、それらの参照を使用できません。なぜなら、HotSync の間やデータベースがユーザによって削除されるとき、レコードは隠れていられるからです。データベースが削除されるのを防ぐために、クローズする前に {{goto DmDatabaseProtect,DmDatabaseProtect()}} を使うことができます。 渡されたデータベースと関連のあるオーバレイがある場合、{{span style='color:blue;font-family:monospace;',DmCloseDatabase}} はオーバレイもクローズします。 データベースにリサイクル可能ビット({{span style='color:blue;font-family:monospace;',dmHdrAttrRecyclable}})がセットされている場合、{{span style='color:blue;font-family:monospace;',DmCloseDatabase}} はデータベースを削除するために {{goto DmDeleteDatabase,DmDeleteDatabase()}} を呼び出します。 '''互換性''' Palm OS 2.0 以降では、{{span style='color:blue;font-family:monospace;',DmCloseDatabase}} はデータベースの更新日付を更新します。 *Palm OS 2.0 では、データベースが Write アクセスでオープンされていた場合に {{span style='color:blue;font-family:monospace;',DmCloseDatabase}} は更新日付を更新します。 *Palm OS 3.0 以降では、データベースが Write アクセスでオープンされていて、変更があった場合にのみ更新日付が更新されます。更新を引き起こす変更とは、レコードの追加、削除、アーカイブ、レコードの範囲またはサイズの変更、{{goto DmReleaseRecord,DmReleaseRecord()|Palm OS Programmer's API Reference/30-2}} によるレコードの Dirty ビットのセット、カテゴリの範囲の変更または削除、{{goto DmSetDatabaseInfo,DmSetDatabaseInfo()|Palm OS Programmer's API Reference/30-2}} によるデータベース ヘッダ フィールドの更新です。 Palm OS 1.0 では、更新日付は更新されませんでした。 OS バージョンに関係なく同じ基準で更新日付が更新されることを確実にする必要がある場合、{{goto DmSetDatabaseInfo,DmSetDatabaseInfo()|Palm OS Programmer's API Reference/30-2}} を使うことで明示的に更新日付をセットできます。 {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmOpenDatabase,DmOpenDatabase()|Palm OS Programmer's API Reference/30-2}}, {{goto DmDeleteDatabase,DmDeleteDatabase()}}, {{goto DmOpenDatabaseByTypeCreator,DmOpenDatabaseByTypeCreator()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmCreateDatabase}}DmCreateDatabase 関数 {{goto p0,^TOP^}} '''目的''' 指定したカードに、与えられた名前、作成者、型で新しいデータベースを作成します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmCreateDatabase ( UInt16 cardNo, const Char *nameP, UInt32 creator, UInt32 type, Boolean resDB ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ cardNo}} **データベースを作成するカード番号 *{{span style='color:blue;font-family:monospace;',→ nameP}} **新しいデータベースの名前。null 終端子を込みにして、ASCII で 32 バイト長までです({{span style='color:blue;font-family:monospace;',dmDBNameLength}} で指定されます)。データベースの名前には 7 ビット ASCII 文字(0x20 から 0x7E まで)のみが使用できます。 *{{span style='color:blue;font-family:monospace;',→ creator}} **データベースの作成者 *{{span style='color:blue;font-family:monospace;',→ type}} **データベースの型 *{{span style='color:blue;font-family:monospace;',→ res}} **{{span style='color:blue;font-family:monospace;',true}} の場合、リソース データベースを作成します。 '''返り値''' エラーが無ければ {{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが起きた場合は以下のうちの 1 つを返します。 *{{goto dmErrInvalidDatabaseName,dmErrInvalidDatabaseName}} *{{goto dmErrAlreadyExists,dmErrAlreadyExists}} *{{goto memErrCardNotPresent,memErrCardNotPresent}} *{{goto dmErrMemError,dmErrMemError}} *{{goto memErrChunkLocked,memErrChunkLocked}} *{{goto memErrInvalidParam,memErrInvalidParam}} *{{goto memErrInvalidStoreHeader,memErrInvalidStoreHeader}} *{{goto memErrNotEnoughSpace,memErrNotEnoughSpace}} *{{goto memErrRAMOnlyCard,memErrRAMOnlyCard}} マスター データベース リストが見つからない場合は、致命的なエラー メッセージを表示するかもしれません。 '''コメント''' 指定されたカードに新しいデータベースを作成するためにこのルーチンを呼び出します。同名のデータベースがすでに RAM に存在している場合、このルーチンは {{goto dmErrAlreadyExists,dmErrAlreadyExists}} エラー コードを返します。一旦データベースが作成されると、{{goto DmFindDatabase,DmFindDatabase()}} を呼び出すことでそのデータベース ID を検索することができます。データベース ID を使うことでデータベースをオープンすることができます。レコード用のデータベースの代わりに、リソース データベースを作成する場合は、{{span style='color:blue;font-family:monospace;',resDB}} Bool 値を {{span style='color:blue;font-family:monospace;',true}} にセットします。 データベースの作成後に、{{goto DmSetDatabaseInfo,DmSetDatabaseInfo()|Palm OS Programmer's API Reference/30-2}} を呼び出してバージョン番号をセットすることが推奨されています。データベースのバージョンが明示的にセットされない場合、デフォルトの 0 になります。 '''参照''' {{goto DmCreateDatabaseFromImage,DmCreateDatabaseFromImage()}}, {{goto DmCreateDatabase,DmCreateDatabase()}}, {{goto DmDeleteDatabase,DmDeleteDatabase()}} !{{anchor DmCreateDatabaseFromImage}}DmCreateDatabaseFromImage 関数 {{goto p0,^TOP^}} '''目的''' データベースのイメージを収めている 1 つのリソースからデータベース自体を作成します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmCreateDatabaseFromImage ( MemPtr bufferP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ bufferP}} **データベース イメージを収めているロックされたリソースへのポインタ '''返り値''' エラーが無ければ {{span style='color:blue;font-family:monospace;',errNone}} を返します。 '''コメント''' イメージは、prc または pdb ファイルのデスクトップ ファイル表現と同じです。 この関数は、ハード リセット後に ROM にあるアプリケーションのために、デフォルト データベースをインストールするように意図されています。デフォルト データベースをインストールする必要のある RAM ベースのアプリケーションは、ストレージ ヒープ スペースを保存するために、pdb ファイルを個々にインストールすべきです。 '''参照''' {{goto DmCreateDatabase,DmCreateDatabase()}}, {{goto DmOpenDatabase,DmOpenDatabase()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmDatabaseInfo}}DmDatabaseInfo {{goto p0,^TOP^}} '''目的''' データベースに関する情報を検索します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmDatabaseInfo ( UInt16 cardNo, LocalID dbID, Char *nameP, UInt16 *attributesP, UInt16 *versionP, UInt32 *crDateP, UInt32 *modDateP, UInt32 *bckUpDateP, UInt32 *modNumP, LocalID *appInfoIDP, LocalID *sortInfoIDP, UInt32 *typeP, UInt32 *creatorP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ cardNo}} **データベースが存在しているカードの番号 *{{span style='color:blue;font-family:monospace;',→ dbID}} **データベースのデータベース ID *{{span style='color:blue;font-family:monospace;',← nameP}} **データベースの名前。このパラメータに対して、32 バイトの文字配列へのポインタを渡してください。名前について気にしない場合は、{{span style='color:blue;font-family:monospace;',NULL}} を渡してください。 *{{span style='color:blue;font-family:monospace;',← attributesP}} **データベースの属性フラグ。{{goto データベース属性定数,「データベース属性定数」}}で挙げられている定数を使って、このパラメータで返される値について問い合わせることができます。 *{{span style='color:blue;font-family:monospace;',← versionP}} **アプリケーション特有のバージョン番号。デフォルトのバージョン番号は 0 です。バージョン番号について検索したくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡します。 *{{span style='color:blue;font-family:monospace;',← crDateP}} **データベースが作成された日付。1904 年 1 月 1 日からの秒数で表現されます。作成日付について検索したくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡します。 *{{span style='color:blue;font-family:monospace;',← modDateP}} **データベースが最後に変更された日付。1904 年 1 月 1 日からの秒数で表現されます。変更日付について検索したくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡します。 *{{span style='color:blue;font-family:monospace;',← bckUpDateP}} **データベースがバックアップされた日付。1904 年 1 月 1 日からの秒数で表現されます。バックアップ日付について検索したくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡します。 *{{span style='color:blue;font-family:monospace;',← modNumP}} **変更番号。データベースのレコードが追加、変更、または削除されるたびに +1 されます。変更番号について検索したくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡します。 *{{span style='color:blue;font-family:monospace;',← appInfoIDP}} **アプリケーション情報ブロックのローカル ID、または {{span style='color:blue;font-family:monospace;',NULL}}。アプリケーション情報ブロックは、データベースがデータベースについてのアプリケーション特有の情報を格納するかもしれない任意の(オプションである)フィールドです。これについて検索したくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡します。 *{{span style='color:blue;font-family:monospace;',← sortInfoIDP}} **データベースのソート テーブルのローカル ID。これは、データベース ヘッダにある任意の(オプションである)フィールドです。これについて検索したくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡します。 *{{span style='color:blue;font-family:monospace;',← typeP}} **データベースが作成されるときに指定されたデータベースの型。これについて検索したくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡します。 *{{span style='color:blue;font-family:monospace;',← creatorP}} **データベースが作成されるときに指定されたデータベースの作成者。これについて検索したくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡します。 '''返り値''' エラーが無ければ {{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが起きた場合は {{goto dmErrInvalidParam,dmErrInvalidParam}} を返します。 '''互換性''' 変更日付の更新は、アプリケーションが実行されている OS のバージョンによって異なります。 *Palm OS 1.0 では、更新日付は更新されません。 *Palm OS 2.0 では、更新日付はWrite アクセスでオープンされたデータベースがクローズされるたびに更新されます。 *Palm OS 3.0 以降では、更新日付は Write アクセスでオープンされたデータベースに変更が加えられた場合にのみ更新されます(更新はデータベースがクローズされたときに行われます)。更新を引き起こす変更とは、レコードの追加、削除、アーカイブ、レコードの範囲またはサイズの変更、{{goto DmReleaseRecord,DmReleaseRecord()|Palm OS Programmer's API Reference/30-2}} によるレコードの Dirty ビットのセット、カテゴリの範囲の変更または削除、{{goto DmSetDatabaseInfo,DmSetDatabaseInfo()|Palm OS Programmer's API Reference/30-2}} によるデータベース ヘッダ フィールドの更新です。 OS バージョンに関係なく同じ基準で更新日付が更新されることを確実にする必要がある場合、{{goto DmSetDatabaseInfo,DmSetDatabaseInfo()|Palm OS Programmer's API Reference/30-2}} を使うことで明示的に更新日付をセットできます。 '''参照''' {{goto DmSetDatabaseInfo,DmSetDatabaseInfo()|Palm OS Programmer's API Reference/30-2}}, {{goto DmDatabaseSize,DmDatabaseSize()}}, {{goto DmOpenDatabaseInfo,DmOpenDatabaseInfo()|Palm OS Programmer's API Reference/30-2}}, {{goto DmFindDatabase,DmFindDatabase()}}, {{goto DmGetNextDatabaseByTypeCreator,DmGetNextDatabaseByTypeCreator()}}, {{goto TimSecondsToDateTime,TimSecondsToDateTime()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmDatabaseProtect}}DmDatabaseProtect 関数 {{goto p0,^TOP^}} '''目的''' データベースのプロテクト カウントを +1 または -1 します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmDatabaseProtect ( UInt16 cardNo, LocalID dbID, Boolean protect ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ cardNo}} **プロテクト/プロテクト解除するデータベースのカード番号 *{{span style='color:blue;font-family:monospace;',→ dbID}} **プロテクト/プロテクト解除するデータベースのローカルID *{{span style='color:blue;font-family:monospace;',→ protect}} **{{span style='color:blue;font-family:monospace;',true}} の場合、{{span style='color:blue;font-family:monospace;',protect}} カウントは +1 されます。{{span style='color:blue;font-family:monospace;',false}} の場合、{{span style='color:blue;font-family:monospace;',protect}} カウントは -1 されます。 '''返り値''' エラーが無い場合は、{{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが起きた場合は、以下の 1 つを返します。 *{{goto memErrCardNotPresent,memErrCardNotPresent}} *{{goto dmErrROMBased,dmErrROMBased}} *{{goto dmErrCantFind,dmErrCantFind}} *{{goto memErrNotEnoughSpace,memErrNotEnoughSpace}} *{{goto dmErrDatabaseNotProtected,dmErrDatabaseNotProtected}} '''コメント''' このルーチンはデータベースが削除されるのを防ぐために使用することができます({{span style='color:blue;font-family:monospace;',protect}} パラメータに {{span style='color:blue;font-family:monospace;',true}} を渡すことによって)。{{span style='color:blue;font-family:monospace;',protect}} が {{span style='color:blue;font-family:monospace;',true}} の場合、プロテクト カウントは +1 され、{{span style='color:blue;font-family:monospace;',protect}} が {{span style='color:blue;font-family:monospace;',false}} の場合は -1 されます。アプリケーションを終了する前に、{{span style='color:blue;font-family:monospace;',true}} をセットした回数と {{span style='color:blue;font-family:monospace;',false}} をセットした回数のバランスをとっておかなくてはなりません。 この関数は、データベースの特定のレコードまたはリソースをロックし、かつ、そのデータベースをオープンしたくない場合に、使用します。プロテクト情報はダイナミック ヒープに保存され、システム リセット時にはすべてのデータベースのプロテクトが解除されます。 現在のロケールに関連するオーバレイを保持するリソース データベースの場合、そのオーバレイもこの関数によりプロテクトまたはプロテクト解除されます。 '''互換性''' {{goto 2.0 New Feature Set,2.0 New Feature Set|Palm OS Programmer's API Reference/B}} を満たし場合に実装されます。オーバレイ サポートは、{{goto 3.5 New Feature Set,3.5 New Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合にのみ使用可能です。 !{{anchor DmDatabaseSize}}DmDatabaseSize 関数 {{goto p0,^TOP^}} '''目的''' データベースのサイズ情報を調べます。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmDatabaseSize ( UInt16 cardNo, LocalID dbID, UInt32 *numRecordsP, UInt32 *totalBytesP, UInt32 *dataBytesP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ cardNo}} **データベースが存在するカード番号 *{{span style='color:blue;font-family:monospace;',→ dbID}} *データベースのデータベース ID *{{span style='color:blue;font-family:monospace;',← numRecordsP}} **データベースに存在するレコードの総数。この値について調べたくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡してください。 *{{span style='color:blue;font-family:monospace;',← totalBytesP}} **オーバヘッドを含むデータベースの総バイト数。この値について調べたくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡してください。 *{{span style='color:blue;font-family:monospace;',← dataBytesP}} **レコードのデータ保存に使用されているデータベースの総バイト数。この値について調べたくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡してください。 '''返り値''' エラーが無い場合は、{{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが起きた場合は、{{goto dmErrMemError,dmErrMemError}} を返します。 '''互換性''' {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmDatabaseInfo,DmDatabaseInfo()}}, {{goto DmOpenDatabaseInfo,DmOpenDatabaseInfo()|Palm OS Programmer's API Reference/30-2}}, {{goto DmFindDatabase,DmFindDatabase()}}, {{goto DmGetNextDatabaseByTypeCreator,DmGetNextDatabaseByTypeCreator()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmDeleteCategory}}DmDeleteCategory 関数 {{goto p0,^TOP^}} '''目的''' カテゴリのすべてのレコードを削除します。カテゴリ名は変化しません。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmDeleteCategory ( DmOpenRef dbR, UInt16 categoryNum ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **データベース アクセス ポインタ *{{span style='color:blue;font-family:monospace;',→ categoryNum}} **削除するレコードのカテゴリ。{{span style='color:blue;font-family:monospace;',dmAllCategorie}} などのカテゴリ マスクは有効ではありません。 '''返り値''' エラーが無い場合は、{{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが起きた場合は、以下の 1 つを返します。 *{{goto dmErrReadOnly,dmErrReadOnly}} *{{goto memErrInvalidParam,memErrInvalidParam}} いくつかのエラーは、エラー コードを返す代わりに、致命的なエラー メッセージを表示するかもしれません。 '''コメント''' この関数はカテゴリのすべてのレコードを削除します。しかし、カテゴリ自体は削除しません(この関数はレコード データとヘッダ情報を削除しますが、削除ビットをセットするわけではないことに注意してください)。レコードの各レコードに対して、{{span style='color:blue;font-family:monospace;',DmDeleteCategory}} はデータベース ヘッダに {{span style='color:blue;font-family:monospace;',deleted}} ビットをセットし、レコードのデータ チャンクを処分します。データベース ヘッダのレコード エントリは残りますが、レコード エントリの {{span style='color:blue;font-family:monospace;',localChunkID}} には {{span style='color:blue;font-family:monospace;',NULL}} がセットされます。 カテゴリがレコードを持っていない場合、この関数は何もせず、処理が成功したことを意味する {{span style='color:blue;font-family:monospace;',errNone}} を返します。{{span style='color:blue;font-family:monospace;',categoryNum}} パラメータは存在する単一のカテゴリでなくてはなりません。複数のカテゴリを示すカテゴリ マスクを渡すと、この関数はその値が単一のカテゴリを示すと解釈し、カテゴリ中に削除するレコードはないと判断して {{span style='color:blue;font-family:monospace;',errNone}} を返します。 与えられたレコードからカテゴリ インデックスを取得するのに {{goto DmRecordInfo,DmRecordInfo()|Palm OS Programmer's API Reference/30-2}} を使用することができます。使用例: DmOpenRef myDB; UInt16 record, attr, category, total; DmRecordInfo(myDB, record, &attr, NULL, NULL); category = attr & dmRecAttrCategoryMask; err = DmDeleteCategory(myDB, category); '''互換性''' {{goto 2.0 New Feature Set,2.0 New Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に実装されます。 {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、{{span style='color:blue;font-family:monospace;',sysErrNotAllowed}} が返されます。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 !{{anchor DmDeleteDatabase}}DmDeleteDatabase 関数 {{goto p0,^TOP^}} '''目的''' データベースとすべてのレコードを削除します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmDeleteDatabase ( UInt16 cardNo, LocalID dbID ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ cardNo}} **データベースが存在しているカード番号 *{{span style='color:blue;font-family:monospace;',→ dbID}} **データベース ID '''返り値''' エラーが無い場合は、{{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが起きた場合は以下の 1 つを返します。 *{{goto dmErrCantFind,dmErrCantFind}} *{{goto dmErrCantOpen,dmErrCantOpen}} *{{goto memErrChunkLocked,memErrChunkLocked}} *{{goto dmErrDatabaseOpen,dmErrDatabaseOpen}} *{{goto dmErrDatabaseProtected,dmErrDatabaseProtected}} *{{goto dmErrROMBased,dmErrROMBased}} *{{goto memErrInvalidParam,memErrInvalidParam}} *{{goto memErrNotEnoughSpace,memErrNotEnoughSpace}} '''コメント''' データベースを削除するためにこの関数を呼び出します。この関数はデータベース、アプリケーション情報ブロック、ソート情報ブロック、それにこのデータベースに関連するすべての他のオーバヘッド情報を削除します。データベースを削除した後、この関数は待機していた {{goto sysNotifyDBDeletedEvent,sysNotifyDBDeletedEvent|Palm OS Programmer's API Reference/3}} 通知をキューに追加し、その通知はイベント ループの先頭にブロードキャストされます。 データベースが関連するオーバレイを持っている場合、この関数はそのオーバレイを削除しません。このオーバレイは別個に {{span style='color:blue;font-family:monospace;',DmDeleteDatabase}} を呼び出すことで削除できます。 このルーチンはパラメータとしてデータベース ID を受け付けます。データベース ID を決定するために、データベース インデックスを使って {{goto DmFindDatabase,DmFindDatabase()}} または {{goto DmGetDatabase,DmGetDatabase()}} を呼び出します。 '''互換性''' {{goto 4.0 New Feature Set,4.0 New Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合にのみ、{{goto sysNotifyDBDeletedEvent,sysNotifyDBDeletedEvent|Palm OS Programmer's API Reference/3}} はブロードキャストされます。 '''参照''' {{goto DmDeleteRecord,DmDeleteRecord()}}, {{goto DmRemoveRecord,DmRemoveRecord()|Palm OS Programmer's API Reference/30-2}}, {{goto DmRemoveResource,DmRemoveResource()|Palm OS Programmer's API Reference/30-2}}, {{goto DmCreateDatabase,DmCreateDatabase()}}, {{goto DmGetNextDatabaseByTypeCreator,DmGetNextDatabaseByTypeCreator()}}, {{goto DmFindDatabase,DmFindDatabase()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmDeleteRecord}}DmDeleteRecord 関数 {{goto p0,^TOP^}} '''目的''' データベースからレコードのチャンクを削除します。しかし、ヘッダのレコード エントリは残しておき、次の sync のために {{span style='color:blue;font-family:monospace;',deleted}} ビットをセットします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmDeleteRecord ( DmOpenRef dbP, UInt16 index ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたデータベースへの {{span style='color:blue;font-family:monospace;',DmOpenRef}} *{{span style='color:blue;font-family:monospace;',→ index}} **削除するレコード '''返り値''' エラーが無い場合は、{{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが起きた場合は以下の 1 つを返します。 *{{goto dmErrReadOnly ,dmErrReadOnly }} *{{goto dmErrIndexOutOfRange ,dmErrIndexOutOfRange}} *{{goto dmErrRecordArchived ,dmErrRecordArchived}} *{{goto dmErrRecordDeleted ,dmErrRecordDeleted}} *{{goto memErrInvalidParam ,memErrInvalidParam}} いくつかのエラーは、エラー コードを返す代わりに、致命的なエラー メッセージを表示するかもしれません。 '''コメント''' レコードのデータベース ヘッダに {{span style='color:blue;font-family:monospace;',deleted}} ビットをセットし、レコードのデータ チャンクを処分します。データベースからレコード エントリを削除することはしませず、単にレコード エントリの {{span style='color:blue;font-family:monospace;',localChunkID}} に {{span style='color:blue;font-family:monospace;',NULL}} をセットします。 '''互換性''' {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmDetachRecord,DmDetachRecord()}}, {{goto DmRemoveRecord,DmRemoveRecord()|Palm OS Programmer's API Reference/30-2}}, {{goto DmArchiveRecord,DmArchiveRecord()}}, {{goto DmNewRecord,DmNewRecord()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmDetachRecord}}DmDetachRecord 関数 {{goto p0,^TOP^}} '''目的''' データベースからレコードを取り外し、孤立したレコードにします。しかし、レコードのチャンクは削除しません。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmDetachRecord ( DmOpenRef dbP, UInt16 index, MemHandle *oldHP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたデータベースへの {{span style='color:blue;font-family:monospace;',DmOpenRef}} *{{span style='color:blue;font-family:monospace;',→ index}} **取り外すレコードのインデックス *{{span style='color:blue;font-family:monospace;',←→ oldHP}} **取り外されたレコードのハンドルを返すためのポインタ '''返り値''' エラーが無い場合は、{{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが起きた場合は以下の 1 つを返します。 *{{goto dmErrReadOnly,dmErrReadOnly}} *{{goto dmErrIndexOutOfRange,dmErrIndexOutOfRange}} *{{goto dmErrNotRecordDB,dmErrNotRecordDB}} *{{goto memErrChunkLocked,memErrChunkLocked}} *{{goto memErrInvalidParam,memErrInvalidParam}} いくつかのエラーは、エラー コードを返す代わりに、致命的なエラー メッセージを表示するかもしれません。 '''コメント''' この関数は、データベース ヘッダからレコードのエントリを削除することにより、レコードをデータベースから取り外します。レコードのデータ チャンクのハンドルを {{span style='color:blue;font-family:monospace;',*oldHP}} に収めて返します。{{goto DmDeleteRecord,DmDeleteRecord()}} とは異なり、このルーチンはデータベース ヘッダからレコード エントリを削除しますが、レコードの実体は削除しません。 '''互換性''' {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmAttachRecord,DmAttachRecord()}}, {{goto DmRemoveRecord,DmRemoveRecord()|Palm OS Programmer's API Reference/30-2}}, {{goto DmArchiveRecord,DmArchiveRecord()}}, {{goto DmDeleteRecord,DmDeleteRecord()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmDetachResource}}DmDetachResource 関数 {{goto p0.^TOP^}} '''目的''' データベースからリソースを取り外し、リソースのデータのハンドルを返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmDetachResource ( DmOpenRef dbP, UInt16 index, MemHandle *oldHP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたデータベースへの {{span style='color:blue;font-family:monospace;',DmOpenRef}} *{{span style='color:blue;font-family:monospace;',→ index}} **取り外すリソースのインデックス *{{span style='color:blue;font-family:monospace;',←→ oldHP}} **取り外されたリソース(訳者注: record となっていたが resource と思われる)のハンドルを返すためのポインタ '''返り値''' エラーが無い場合は、{{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが起きた場合は以下の 1 つを返します。 *{{goto dmErrReadOnly,dmErrReadOnly}} *{{goto dmErrIndexOutOfRange,dmErrIndexOutOfRange}} *{{goto dmErrCorruptDatabase,dmErrCorruptDatabase}} *{{goto memErrChunkLocked,memErrChunkLocked}} *{{goto memErrInvalidParam,memErrInvalidParam}} いくつかのエラーは、エラー コードを返す代わりに、致命的なエラー メッセージを表示するかもしれません。データベースがリソース データベースでない場合は、すべてのエラーは致命的なエラー メッセージを表示します。 '''コメント''' このルーチンは、データベース ヘッダからリソースのエントリを削除することにより、リソースをデータベースから取り外します。リソースのデータ チャンクのハンドルを {{span style='color:blue;font-family:monospace;',*oldHP}} に収めて返します。 '''参照''' {{goto DmAttachResource,DmAttachResource()}}, {{goto DmRemoveResource,DmRemoveResource()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmFindDatabase}}DmFindDatabase 関数 {{goto p0,^TOP^}} '''目的''' カード番号と名前からデータベースのデータベース ID を返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' LocalID DmFindDatabase ( UInt16 cardNo, const Char *nameP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ cardNo}} **検索するカードの番号 *{{span style='color:blue;font-family:monospace;',→ nameP}} **探すデータベースの名前 '''返り値''' データベース ID を返します。データベースが見つからない場合、この関数は 0 を返します。{{goto DmGetLastErr,DmGetLastErr()}} が失敗した理由を示すエラー コードを返します。 '''互換性''' {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmGetNextDatabaseByTypeCreator,DmGetNextDatabaseByTypeCreator()}}, {{goto DmDatabaseInfo,DmDatabaseInfo()}}, {{goto DmOpenDatabase,DmOpenDatabase()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmFindRecordByID}}DmFindRecordByID 関数 {{goto p0,^TOP^}} '''目的''' 与えられた固有の ID を持つレコードのインデックスを返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmFindRecordByID ( DmOpenRef dbP, UInt32 uniqueID, UInt16 *indexP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **データベース アクセス ポインタ *{{span style='color:blue;font-family:monospace;',→ uniqueID}} **探す対象となる固有 ID *{{span style='color:blue;font-family:monospace;',← indexP}} **返り値となるインデックス '''返り値''' 見つかった場合は、0 を返します。見つからなかった場合は、{{goto dmErrUniqueIDNotFound,dmErrUniqueIDNotFound}} を返します。固有 ID が無効な場合は、致命的なエラー メッセージを表示するかもしれません。 '''互換性''' {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmQueryRecord,DmQueryRecord()|Palm OS Programmer's API Reference/30-2}}, {{goto DmGetRecord,DmGetRecord()}}, {{goto DmRecordInfo,DmRecordInfo()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmFindResource}}DmFindResource 関数 {{goto p0,^TOP^}} '''目的''' 型と ID 、または、ポインタ({{span style='color:blue;font-family:monospace;',NULL}} でない場合)で指定されたリソース データベースを探します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' UInt16 DmFindResource ( DmOpenRef dbP, DmResType resType, DmResID resID, MemHandle resH ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたリソース データベースへのポインタ *{{span style='color:blue;font-family:monospace;',→ resType}} **探すリソースの型 *{{span style='color:blue;font-family:monospace;',→ resID}} **探すリソースの ID *{{span style='color:blue;font-family:monospace;',→ resH}} **ロックされたリソースへのポインタ、または、{{span style='color:blue;font-family:monospace;',NULL}} '''返り値''' リソース データベース中のリソースのインデックスを返します。見つからなかった場合は、{{span style='color:blue;font-family:monospace;',dmInvalidRecIndex}} を返します。 データベースがリソース データベースではない場合は、致命的なエラー メッセージを表示するかもしれません。 '''コメント''' この関数は、型と ID 、または、ポインタから、個々のリソース データベース中のリソースを探します。ただ 1 つの、最上位ではないデータベースを探す場合に、特に有用です。 ---- '''重要:''' この関数は、指定されたデータベース中のリソースを探すことしかしません。ベース リソース データベースへのポインタを渡した場合、そのデータベースのオーバレイで探すことはしません。ベース データベースとそのオーバレイの両方に対してリソースを探す場合は、この関数の代わりに {{goto DmGet1Resource,DmGet1Resource()}} を使用してください。 ---- {{span style='color:blue;font-family:monospace;',resH}} が {{span style='color:blue;font-family:monospace;',NULL}} の場合、型と ID でリソースを探します。 {{span style='color:blue;font-family:monospace;',resH}} が {{span style='color:blue;font-family:monospace;',NULL}} ではない場合、{{span style='color:blue;font-family:monospace;',resType}} と {{span style='color:blue;font-family:monospace;',resID}} は無視され、与えられたロックされたリソースのインデックスを返します。 一旦リソースのインデックスが見つかると、{{goto DmGetResourceIndex,DmGetResourceIndex()}} を呼び出すことでリソースをロックし、アクセスすることができます。 '''参照''' {{goto DmGetResource,DmGetResource()}}, {{goto DmSearchResource,DmSearchResource()|Palm OS Programmer's API Reference/30-2}}, {{goto DmResourceInfo,DmResourceInfo()|Palm OS Programmer's API Reference/30-2}}, {{goto DmGetResourceIndex,DmGetResourceIndex()}}, {{goto DmFindResourceType,DmFindResourceType()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmFindResourceType}}DmFindResourceType 関数 {{goto p0,^TOP^}} '''目的''' 型と型インデックスで与えられたデータベースからリソースを探します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' UInt16 DmFindResourceType ( DmOpenRef dbP, DmResType resType, UInt16 typeIndex ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたリソース データベースへアクセスするためのポインタ *{{span style='color:blue;font-family:monospace;',→ resType}} **探すリソースの型 *{{span style='color:blue;font-family:monospace;',→ typeIndex}} **与えられたリソースの型のインデックス '''返り値''' リソース データベース中のリソースのインデックスを返します。 見つからない場合は、{{span style='color:blue;font-family:monospace;',0xFFFF}} を返します。 データベースがリソース データベースではない場合、致命的なエラー メッセージを表示するかもしれません。 '''コメント''' データベース中に対して、与えられた型のすべてのリソースを探し出すためにこのルーチンを使用します。{{span style='color:blue;font-family:monospace;',typeIndex}} は 0 から始まり、エラーが返されるまで +1 されます。与えられた型のリソースの総数とそれらのリソース個々のインデックスが決定されます。一旦リソースのインデックスが決定されると、{{goto DmGetResourceIndex,DmGetResourceIndex()}} を呼び出すことでロックし、アクセスすることができます。 ---- '''重要:''' この関数は指定されたデータベースのリソースを探すだけです。ベース リソース データベースへのポインタを渡した場合、そのデータベースのオーバレイで探すことはしません。ベース データベースとそのオーバレイの両方に対してリソースを探す場合は、この関数の代わりに {{goto DmGet1Resource,DmGet1Resource()}} を使用してください。 ---- '''参照''' {{goto DmGetResource,DmGetResource()}}, {{goto DmSearchResource,DmSearchResource()|Palm OS Programmer's API Reference/30-2}}, {{goto DmResourceInfo,DmResourceInfo()|Palm OS Programmer's API Reference/30-2}}, {{goto DmGetResourceIndex,DmGetResourceIndex()}}, {{goto DmFindResource,DmFindResource()}} !{{anchor DmFindSortPosition}}DmFindSortPosition 関数 {{goto p0,^TOP^}} '''目的''' 与えられたレコードがソートされたレコードのリストのどこに位置しているかについて返します。レコードが {{goto DmAttachRecord,DmAttachRecord()}} でどこに挿入されるかを調べるときに有用です。バイナリ サーチを行います。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' UInt16 DmFindSortPosition ( DmOpenRef dbP, void *newRecord, SortRecordInfoPtr newRecordInfo, DmComparF *compar, Int16 other ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **データベース アクセス ポインタ *{{span style='color:blue;font-family:monospace;',→ newRecord}} **新しいレコードへのポインタ *{{span style='color:blue;font-family:monospace;',→ newRecordIndfo}} **新しいレコードに関するソート情報。{{goto SortRecordInfoType,SortRecordInfoType}} を参照してください。 *{{span style='color:blue;font-family:monospace;',→ compar}} **比較関数へのポインタ。{{goto DmComparF,DmComparF}} を参照してください。 *{{span style='color:blue;font-family:monospace;',→ other}} **アプリケーションが比較関数に渡すすべての値。このパラメータは、しばしば、ソート方法(昇順または降順)を指示するのに使用されます。 '''返り値''' レコードが挿入される場所を返します。 挿入される場所は、返されたレコードとその前のレコードの間になります。返り値はレコード数よりも大きくなるかもしれないということに注意してください。 '''コメント''' {{span style='color:blue;font-family:monospace;',newRecord}} がデータベースの他のレコードと同じキーを持つ場合、{{span style='color:blue;font-family:monospace;',DmFindSortPosition}} は {{span style='color:blue;font-family:monospace;',newRecord}} はそのレコードの後に挿入されるだろうと仮定します。同じキーを持つレコードが複数ある場合、{{span style='color:blue;font-family:monospace;',newRecord}} はそれらのレコードすべての後に挿入されます。そのため、データベース中に存在していることがあらかじめわかっているレコードに対して {{span style='color:blue;font-family:monospace;',DmFindSortPosition}} を使用する場合は、結果から 1 引かなくてはなりません。(値が 0 にならないことを必ず確認してください。) データベースに削除されたレコードがある場合、{{span style='color:blue;font-family:monospace;',DmFindSortPosiotion}} はそれらのレコードがデータベースの最後にあるものとして処理します。{{span style='color:blue;font-family:monospace;',DmFindSortPosition}} は常に削除されたレコードは他のすべてのレコード以上であると仮定します。 '''互換性''' {{goto 2.0 New Feature Set,2.0 New Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に実装されます。 {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmFindSortPositionV10,DmFindSortPositionV10()}} !{{anchor DmFindSortPositionV10}}DmFindSortPositionV10 関数 {{goto p0,^TOP^}} '''目的''' 与えられたレコードがソートされたレコードのリストのどこに位置しているかについて返します。レコードが {{goto DmAttachRecord,DmAttachRecord()}} でどこに挿入されるかを調べるときに有用です。バイナリ サーチを行います。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' UInt16 DmFindSortPositionV10 ( DmOpenRef dbP, void *newRecord, DmComparF *compar, Int16 other ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **データベース アクセス ポインタ *{{span style='color:blue;font-family:monospace;',→ newRecord}} **新しいレコードへのポインタ *{{span style='color:blue;font-family:monospace;',→ compar}} **比較関数へのポインタ。{{goto DmComparF,DmComparF}} を参照してください。 *{{span style='color:blue;font-family:monospace;',→ other}} **アプリケーションが比較関数に渡すすべての値。このパラメータは、しばしば、ソート方法(昇順または降順)を指示するのに使用されます。 '''返り値''' レコードが挿入される場所を返します。 挿入される場所は、返されたレコードとその前のレコードの間になります。返り値はレコード数よりも大きくなるかもしれないということに注意してください。 '''コメント''' データベースに削除されたレコードがある場合、{{span style='color:blue;font-family:monospace;',DmFindSortPosiotionV10}} はそれらのレコードがデータベースの最後にあるものとして処理します。{{span style='color:blue;font-family:monospace;',DmFindSortPositionV10}} は常に削除されたレコードは他のすべてのレコード以上であると仮定します。 '''互換性''' この関数は {{span style='color:blue;font-family:monospace;',DmFindSortPosition}} をバージョン 1.0 に対応させたものです。 '''参照''' {{goto DmFindSortPosition,DmFindSortPosition()}}, {{goto DmQuickSort,DmQuickSort()|Palm OS Programmer's API Reference/30-2}}, {{goto DmInsertionSort,DmInsertionSort()}} !{{anchor DmGetAppInfoID}}DmGetAppInfoID 関数 {{goto p0,^TOP^}} '''目的''' アプリケーション情報ブロックのローカル ID を返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' LocalID DmGetAppInfoID ( DmOpenRef dbP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **データベース アクセス ポインタ '''返り値''' アプリケーション情報ブロックのローカル ID を返します。アプリケーション情報ブロックは、データベースがデータベースに関するアプリケーション特有の情報を保存するかもしれないオプションのフィールドです。データベースがアプリケーション情報ブロックを持たない場合、{{span style='color:blue;font-family:monospace;',DmGetAppInfoID}} は 0 を返します。 '''参照''' {{goto DmDatabaseInfo,DmDatabaseInfo()}}, {{goto DmOpenDatabase,DmOpenDatabase()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmGetDatabase}}DmGetDatabase 関数 {{goto p0,^TOP^}} インデックスとカード番号からデータベースのデータベース ヘッダを返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' LocalID DmGetDatabase ( UInt16 cardNo, UInt16 index ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ cardNo}} **データベースのカード番号 *{{span style='color:blue;font-family:monospace;',→ index}} **データベースのインデックス '''返り値''' データベース ID を返します。無効なパラメータが渡された場合は、0 を返します。 '''コメント''' インデックスからデータベースのデータベース ID を調べるのにこのルーチンを使用します。インデックスの範囲は、0 から {{goto DmNumDatabase,DmNumDatabase()|Palm OS Programmer's API Reference/30-2}}-1 です。 このルーチンは、カードに存在しているすべてのデータベースのディレクトリを取得する場合に有用です。返されるデータベースは ROM または RAM のどちらかに存在するかもしれません。データベースが返される順序は固定されていません。したがって、あなたは特定の順序のデータベースのリストを受け取るのを当てにするべきではありません。 '''参照''' {{goto DmOpenDatabase,DmOpenDatabase()|Palm OS Programmer's API Reference/30-2}}, {{goto DmNumDatabases,DmNumDatabases()|Palm OS Programmer's API Reference/30-2}}, {{goto DmDatabaseInfo,DmDatabaseInfo()}}, {{goto DmDatabaseSize,DmDatabaseSize()}} !{{anchor DmGetDatabaseLockState}}DmGetDatabaseLockState 関数 {{goto p0,^TOP^}} '''目的''' データベース中のロックされ Busy 状態のレコード数に関する情報を返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' void DmGetDatabaseLockState ( DmOpenRef dbR, UInt8 *highest, UInt32 *count, UInt32 *busy ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbR}} **データベース アクセス ポインタ *{{span style='color:blue;font-family:monospace;',← highest}} **データベース中のすべてのレコードのロック カウントで最も高いカウント。データベースが 2 つのレコードを持ち、1 つが 2 のロック1カウントを持ち、もう 1 つが 1 のロック カウントを持つ場合、最も高いロック カウントは 2 になります。この値について調べたくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡してください。 *{{span style='color:blue;font-family:monospace;',← count}} **{{span style='color:blue;font-family:monospace;',highest}} パラメータで返されるロック カウントを持つレコード数。この値について調べたくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡してください。 *{{span style='color:blue;font-family:monospace;',← busy}} **Busy ビットがセットされているレコード数。この値について調べたくない場合は、このパラメータに {{span style='color:blue;font-family:monospace;',NULL}} を渡してください。 '''返り値''' 返り値はありません。すべての情報を渡されたパラメータに収めて返します。 '''コメント''' この関数はデバッグするために用いられます。この関数を使って、いくつのレコードが Busy 状態にあるか、どれだけロックが起きているのか知ることができます。 '''互換性''' {{goto 3.2 New Feature Set,3.2 New Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に実装されます。 !{{anchor DmGetLastErr}}DmGetLastErr 関数 {{goto p0,^TOP^}} '''目的''' 最後のデータ マネージャの呼び出しからのエラー コードを返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmGetLastErr ( void ) '''パラメータ''' ありません。 '''返り値''' 最後の成功しなかったデータ マネージャが呼び出しからのエラー コード。 '''コメント''' データ マネージャの呼び出しが失敗した理由を調べるためにこのルーチンを使用します。特に、{{goto DmGetRecord,DmGetRecord()}} のように失敗したときに 0 を返す関数の場合、失敗した理由を調べる唯一の方法は {{goto DmGetLastErr,DmGetLastErr()}} を呼び出すことです。 {{span style='color:blue;font-family:monospace;',DmGetLastErr}} がいつでも最後のデータ マネージャの呼び出しのエラー ステータスを反映するわけではないということに注意してください。むしろ、この関数はエラー コードを返さないデータ マネージャのエラー ステータスを反映します。それらのデータ マネージャのいくつかは、呼び出しが成功したときのエラー コードが 0 ではありません。 例えば、{{goto DmOpenDatabaseByTypeCreator,DmOpenDatabaseByTypeCreator()|Palm OS Programmer's API Reference/30-2}} の呼び出しが、データベースへの参照として {{span style='color:blue;font-family:monospace;',NULL}} を返してきた(つまり、呼び出しが失敗した)場合、{{span style='color:blue;font-family:monospace;',DmGetLastErr|Palm OS Programmer's API Reference/30-2}} の返り値は意味のあるものになります。一方、{{span style='color:blue;font-family:monospace;',DmGetLastErr}} が、以前のデータ マネージャの呼び出しのエラーを返す場合もあります。 現在のところ、以下のデータ マネージャ関数が、{{span style='color:blue;font-family:monospace;',DmGetLastErr}} の返り値に影響を与えます。 *{{goto DmFindDatabase,DmFindDatabase()}} *{{goto DmOpenDatabaseByTypeCreator,DmOpenDatabaseByTypeCreator()|Palm OS Programmer's API Reference/30-2}} *{{goto DmOpenDatabase,DmOpenDatabase()|Palm OS Programmer's API Reference/30-2}} *{{goto DmNewRecord,DmNewRecord()|Palm OS Programmer's API Reference/30-2}} *{{goto DmQueryRecord,DmQueryRecord()|Palm OS Programmer's API Reference/30-2}} *{{goto DmGetRecord,DmGetRecord()}} *{{goto DmQueryNextInCategory,DmQueryNextInCategory()|Palm OS Programmer's API Reference/30-2}} *{{goto DmPositionInCategory,DmPositionInCategory()|Palm OS Programmer's API Reference/30-2}} *{{goto DmSeekRecordInCategory,DmSeekRecordInCategory()|Palm OS Programmer's API Reference/30-2}} *{{goto DmResizeRecord,DmResizeRecord()|Palm OS Programmer's API Reference/30-2}} *{{goto DmGetResource,DmGetResource()}} *{{goto DmGet1Resource,DmGet1Resource()}} *{{goto DmNewResource,DmNewResource()|Palm OS Programmer's API Reference/30-2}} *{{goto DmGetResourceIndex,DmGetResourceIndex()}} *{{goto DmNewHandle,DmNewHandle()|Palm OS Programmer's API Reference/30-2}} *{{goto DmOpenDBNoOverlay,DmOpenDBNoOverlay()|Palm OS Programmer's API Reference/30-2}} *{{goto DmResizeResource,DmResizeResource()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmGetNextDatabaseByTypeCreator}}DmGetNextDatabaseByTypeCreator 関数 {{goto p0,^TOP^}} '''目的''' 与えられた型と/または、作者から、データベース ヘッダ ID とカード番号を返します。このルーチンはすべてのメモリ カードに対して探索を行います。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmGetNextDatabaseByTypeCreator( Boolean newSearch, DmSearchStatePtr stateInfoP, UInt32 type, UInt32 creator, Boolean onlyLatestVers, UInt16 *cardNoP, LocalID *dbIDP ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ newSearch}} **新しい探索を始める場合は {{span style='color:blue;font-family:monospace;',true}} にします。 *{{span style='color:blue;font-family:monospace;',←→ stateInfoP}} **{{span style='color:blue;font-family:monospace;',newSearch}} が {{span style='color:blue;font-family:monospace;',false}} の場合、このパラメータには前回の探索で使用したデータと同じものを指定しなくてはなりません。 *{{span style='color:blue;font-family:monospace;',→ type}} **探索するデータベースの型。ワイルドカードにするには 0 を渡します。 *{{span style='color:blue;font-family:monospace;',→ creator}} **探索するデータベースの作者。ワイルドカードにするには 0 を渡します。 *{{span style='color:blue;font-family:monospace;',→ onlyLatestVers}} **{{span style='color:blue;font-family:monospace;',true}} の場合、与えられた型と作者から最新バージョンのデータベースのみを返します。 *{{span style='color:blue;font-family:monospace;',← cardNoP}} **見つかったデータベースのカード番号を返します。 *{{span style='color:blue;font-family:monospace;',← dbIDP}} **見つかったデータベースのローカル ID を返します。 '''返り値''' エラーが無い場合は、{{span style='color:blue;font-family:monospace;',errNone}} を返します。何も見つからなかった場合は {{goto dmErrCantFind,dmErrCantFind}} を返します。 '''コメント''' 特定の型/作者のすべてのデータベースを見つけるために、この関数を相次いで呼び出す必要があるかもしれません。 探索を開始するには、{{span style='color:blue;font-family:monospace;',newSearch}} に {{span style='color:blue;font-family:monospace;',true}} を渡します。{{span style='color:blue;font-family:monospace;',DmSearchStateType}} 構造体を割り当て、それを {{span style='color:blue;font-family:monospace;',stateInfoP}} パラメータとして渡します。{{span style='color:blue;font-family:monospace;',DmGetNextDatabaseByTypeCreator}} は内部情報を {{span style='color:blue;font-family:monospace;',stateInfoP}} に保存して、探索が続けられる場合にそれを使用します。 前回の探索で残された分の探索を続ける場合、{{span style='color:blue;font-family:monospace;',newSearch}} に {{span style='color:blue;font-family:monospace;',false}} を渡し、前回この関数を呼び出す際に使用した {{span style='color:blue;font-family:monospace;',stateInfoP}} と同じものを渡します。 より幅広い指定で探索を行うために、{{span style='color:blue;font-family:monospace;',type}} または {{span style='color:blue;font-family:monospace;',creator}} パラメータに対しワイルドカードとして 0 を渡すことができます。{{span style='color:blue;font-family:monospace;',type}} パラメータが 0 の場合、与えられた作者のすべてのデータベースを返すために、このルーチンを相次いで呼び出すことができます。{{span style='color:blue;font-family:monospace;',creator}} パラメータが 0 の場合、与えられた型のすべてのデータベースを返すために、このルーチンを相次いで呼び出すことができます。また、型と作者を指定せず、すべての利用可能なデータベースを返すために、これらのパラメータの両方に 0 を渡すこともできます。 データベースはメモリ空間中を自由に散らばっているため、特定の順番で返されるわけではありません -- 指定された型/作者の評価基準に合うどんなデータベースからでも返されます。そのため、{{span style='color:blue;font-family:monospace;',onlyLatestVers}} パラメータ値が {{span style='color:blue;font-family:monospace;',false}} の場合、この関数が返すデータベースは、指定した型/作者に一致する最新バージョンのデータベースではないかもしれません。指定した評価基準に一致する最新バージョンのデータベースのみを取得するには、{{span style='color:blue;font-family:monospace;',onlyLatestVers}} パラメータ値に {{span style='color:blue;font-family:monospace;',true}} をセットします。 どのデータベースが最新バージョンか決定する際、バージョン番号が同じなら RAM データベースのほうが ROM データベースよりも新しいと見なされます。このため、指定したバージョンのデータベースを使用するどんな ROM ベースのアプリケーションであっても置き換えることができます。また、バージョン番号が同じなら、カード 1 の RAM データベースのほうがカード 0 の RAM データベースよりも新しいと見なされます。 ---- '''"{{span style='color:red;',WARNING!}}"''' {{span style='color:blue;font-family:monospace;',DmGetNextDatabaseByTypeCreator}} を存在しているデータベースに対して繰り返し呼び出している間に、データベースの作成または削除を行ってはいけません。これを行うと、一致するデータベースがスキップされたり、一度返されたデータベースが再度返される可能性があります。 ---- '''互換性''' Palm OS version 3.1 以降では、{{span style='color:blue;font-family:monospace;',onlyLatestVers}} が {{span style='color:blue;font-family:monospace;',true}} の場合、型/作者に一致する 1 つのデータベースを返します。Palm OS version 3.0 以前では、{{span style='color:blue;font-family:monospace;',onlyLatestVers}} が {{span style='color:blue;font-family:monospace;',true}} であっても、複数の一致するデータベースを返す可能性があります。 この関数の振る舞いが異なるのは、型と作者の両方を指定し、かつ、{{span style='color:blue;font-family:monospace;',onlyLatestVers}} が {{span style='color:blue;font-family:monospace;',true}} の場合のみであるということに注意してください。 例えば、あるアプリケーションが同じ型、作者、それにバージョン番号を持つ 3 つのデータベースを保持していて、それらのデータベースを以下のように処理するコードを書いたと仮定します。 DmSearchStateType state; Boolean latestVer; UInt16 card; LocalID currentDB = 0; theErr = DmGetNextDatabaseByTypeCreator(true, &state, myType, myCreator, latestVer, &card, ¤tDB); while (!theErr && currentDB) { /* do something with currentDB */ /* now get the next DB */ theErr = DmGetNextDatabaseByTypeCreator( false, &state, myType, myCreator, latestVer, &card, ¤tDB); } {{span style='color:blue;font-family:monospace;',latestVer}} が {{span style='color:blue;font-family:monospace;',false}} の場合、このコードはすべての Palm OS で同じように機能し、指定した型と作者に一致する 3 つすべてのデータベースを返します。{{span style='color:blue;font-family:monospace;',latestVer}} が {{span style='color:blue;font-family:monospace;',true}} の場合、このコードは Palm OS version 3.0 以前では 3 つすべてのデータベースを返しますが、version 3.1 以降では 1 つのデータベースしか返しません。(どのデータベースが返されるかはわかりません。) 評価基準に一致するデータベースが複数あると予想される場合、コードがすべての Palm OS バージョンで同じように振舞うように、{{span style='color:blue;font-family:monospace;',DmGetNextDatabaseByTypeCreator}} を以下に示す方法の 1 つを使って呼び出すようにしてください。 *{{span style='color:blue;font-family:monospace;',type}} と {{span style='color:blue;font-family:monospace;',creator}} の両方を指定する場合は、{{span style='color:blue;font-family:monospace;',onlyLatestVers}} に {{span style='color:blue;font-family:monospace;',false}} をセットする。 *{{span style='color:blue;font-family:monospace;',type}} または {{span style='color:blue;font-family:monospace;',creator}} のどちらか(または両方)に 0 をセットする。 {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmGetDatabase,DmGetDatabase()}}, {{goto DmFindDatabase,DmFindDatabase()}}, {{goto DmDatabaseInfo,DmDatabaseInfo()}}, {{goto DmOpenDatabaseByTypeCreator,DmOpenDatabaseByTypeCreator()|Palm OS Programmer's API Reference/30-2}}, {{goto DmDatabaseSize,DmDatabaseSize()}} !{{anchor DmGetRecord}}DmGetRecord 関数 {{goto p0,^TOP^}} '''目的''' インデックスからレコードへのハンドルを返し、レコードを Busy 状態にします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' MemHandle DmGetRecord ( DmOpenRef dbP, UInt16 index ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたデータベースへの {{span style='color:blue;font-family:monospace;',DmOpenRef}} *{{span style='color:blue;font-family:monospace;',→ index}} **探索するレコードのインデックス '''返り値''' レコード データへのハンドルを返します。レコードが解放される前に、同じレコードに対してもう 1 つの {{span style='color:blue;font-family:monospace;',DmGetRecord}} 呼び出しが試みられた場合、{{span style='color:blue;font-family:monospace;',NULL}} が返され、{{goto DmGetLastErr,DmGetLastErr()}} は失敗理由を示すエラー コードを返します。 '''コメント''' 与えられたレコードへのハンドルを返し、そのレコードに対して {{span style='color:blue;font-family:monospace;',busy}} をセットします。 レコードが ROM ベース(pointer accessed 訳者??)の場合、このルーチンはそのレコードに対する偽の(訳者注: fake)ハンドルを作成し、このハンドルを {{span style='color:blue;font-family:monospace;',DmAccessType}} 構造体に保存します。 この関数呼び出しでレコードを閲覧または編集した直後に、{{goto DmReleaseRecord,DmReleaseRecord()|Palm OS Programmer's API Reference/30-2}} を呼び出すべきです。 '''互換性''' {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmSearchRecord,DmSearchRecord()|Palm OS Programmer's API Reference/30-2}}, {{goto DmFindRecordByID,DmFindRecordByID()}}, {{goto DmRecordInfo,DmRecordInfo()|Palm OS Programmer's API Reference/30-2}}, {{goto DmReleaseRecord,DmReleaseRecord()|Palm OS Programmer's API Reference/30-2}}, {{goto DmQueryRecord,DmQueryRecord()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmGetResource}}DmGetResource 関数 {{goto p0,^TOP^}} '''目的''' すべてのオープンされたリソース データベースを探索し、与えられたリソースの型と ID からリソースへのハンドルを返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' MemHandle DmGetResource ( DmResType type, DmResID resID ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ type}} **リソースの型 *{{span style='color:blue;font-family:monospace;',→ resID}} **リソース ID '''返り値''' リソース データへのハンドル。指定されたリソースが見つからない場合、この関数は {{span style='color:blue;font-family:monospace;',NULL}} を返し、{{goto DmGetLastErr,DmGetLastErr()}} が失敗理由を示すエラー コードを返します。 '''コメント''' すべてのオープンされたリソース データベースのうち最も最近にオープンされたものから、与えられた型と ID のリソースを探します。見つかった場合は、そのリソース ハンドルを返します。リソース データへのアクセスが終了するとすぐに、アプリケーションは {{goto DmReleaseResource,DmReleaseResource()|Palm OS Programmer's API Reference/30-2}} を呼び出すべきです。この関数ではリソース ハンドルはロックされません。 オープンされたオーバレイが指定された型と ID に一致するリソースを持つ場合、この関数は常にオーバレイに存在するリソースを返します。オーバレイにリソースが無い場合、この関数はベース データベースからリソースを返します。 '''参照''' {{goto DmGet1Resource,DmGet1Resource()}}, {{goto DmReleaseResource,DmReleaseResource()|Palm OS Programmer's API Reference/30-2}}, {{goto ResLoadConstant,ResLoadConstant()}} !{{anchor DmGetResourceIndex}}DmGetResourceIndex 関数 {{goto p0,^TOP^}} '''目的''' インデックスからリソースへのハンドルを返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' MemHandle DmGetResourceIndex ( DmOpenRef dbP, UInt16 index ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたデータベースへのアクセス ポインタ *{{span style='color:blue;font-family:monospace;',→ index}} **ハンドルを取得したいリソースのインデックス '''返り値''' リソースへのハンドル。指定されたインデックスが範囲外の場合、この関数は {{span style='color:blue;font-family:monospace;',NULL}} を返し、{{goto DmGetLastErr,DmGetLastErr()}} が失敗理由を示すエラー コードを返します。 データベースがリソース データベースではない場合、致命的なエラー メッセージを表示するかもしれません。 ---- '''重要:''' この関数は指定されたデータベースのみに対してリソースの探索を行います。ベース リソース データベースを渡した場合、そのオーバレイは探索されません。したがって、潜在的に局所化されたリソースにアクセスする場合にこの機能を使用するとき注意すべきです。リソースが局所化されている場合、オーバレイ データベースへのポインタを取得するために {{goto DmSearchResouce,DmSearchResouce()|Palm OS Programmer's API Reference/30-2}} を使用することができます。しかしながら、{{goto DmGetResource,DmGetResouce()}} または {{goto DmGet1Resource,DmGet1Resouce()}} を使用するほうが便利です。 ---- '''参照''' {{goto DmFindResource,DmFindResource()}}, {{goto DmFindResourceType,DmFindResourceType()}}, {{goto DmSearchResource,DmSearchResource()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmGet1Resouce}}DmGet1Resouce 関数 {{goto p0,^TOP^}} '''目的''' 最も最近にオープンされたリソース データベースを探索し、与えられたリソースの型と ID からリソースへのハンドルを返します。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' MemHandle DmGet1Resource ( DmResType type, DmResID resID ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ type}} **リソースの型 *{{span style='color:blue;font-family:monospace;',→ resID}} **リソース ID '''返り値''' リソース データへのハンドル。失敗した場合、この関数は {{span style='color:blue;font-family:monospace;',NULL}} を返し、{{goto DmGetLastErr,DmGetLastErr()}} は失敗理由を示すエラー コードを返します。 '''コメント''' 最も最近にオープンされたリソース データベースを探索し、与えられたリソースの型と ID からリソースへのハンドルを返します。データベースが関連するオーバレイを持つ場合、そのオーバレイが最初に探索され、オーバレイがリソースを持っていなかった場合にベース データベースが探索されます。リソースが見つかると、そのリソース ハンドルが返されます。アプリケーションは、リソース データへのアクセスが終了するとすぐに、{{goto DmReleaseResouce,DmReleaseResource()|Palm OS Programmer's API Reference/30-2}} を呼び出すべきです。この関数によってリソース ハンドルはロックされません。 '''参照''' {{goto DmGetResource,DmGetResource()}}, {{goto DmReleaseResource,DmReleaseResource()|Palm OS Programmer's API Reference/30-2}}, {{goto ResLoadConstant,ResLoadConstant()|Palm OS Programmer's API Reference/23}} !{{anchor DmInsertionSort}}DmInsertionSort 関数 {{goto p0,^TOP^}} '''目的''' データベース中のレコードをソートします。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmInsertionSort ( DmOpenRef dbR, DmComparF *compar, Int16 other ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbR}} **データベースにアクセスするためのポインタ *{{span style='color:blue;font-family:monospace;',→ compar}} **比較関数。{{goto DmComparF,DmComparF()}} を参照してください。 *{{span style='color:blue;font-family:monospace;',→ other}} **アプリケーションが比較関数に渡すすべての値。このパラメータは、しばしば、ソート方法(昇順または降順)を指示するのに使用されます。 '''返り値''' エラーが無い場合は、{{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが起きた場合は、以下の 1 つを返します。 *{{goto dmErrReadOnly,dmErrReadOnly}} *{{goto dmErrNotRecordDB,dmErrNotRecordDB}} いくつかのエラーは、エラー コードを返す代わりに致命的なエラー メッセージを表示するかもしれません。 '''コメント''' 削除されたレコードは、どのような順序でも最後にきます。他のすべてのレコードは、渡された比較関数によって、ソートされます。すでにソートされたレコードの範囲外のレコードのみが移動させられます。移動させるレコードは、ソートされたレコードの後に移動させされます。多くのレコードがソートされる場合は、クイック ソートを使用してみてください。 以下の挿入-ソート アルゴリズムが使用されます: 2 番目のレコードから開始し、各レコードを 1 つ前のレコードと比較します。最終レコードよりも大きくないレコードは、すでにソートされたレコードの適切な位置に挿入されます。バイナリ ソートを行います。移動されるレコードは、他のレコードの後に挿入されます。 {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 '''参照''' {{goto DmQuickSort,DmQuickSort()|Palm OS Programmer's API Reference/30-2}} !{{anchor DmMoveCategory}}DmMoveCategory 関数 {{goto p0,^TOP^}} カテゴリ中のすべてのレコードを他のカテゴリに移動させます。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmMoveCategory ( DmOpenRef dbP, UInt16 toCategory, UInt16 fromCategory, Boolean dirty ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたデータベースへの {{span style='color:blue;font-family:monospace;',DmOpenRef}} *{{span style='color:blue;font-family:monospace;',→ toCategory}} **レコードを追加すべきカテゴリ *{{span style='color:blue;font-family:monospace;',→ fromCategory}} **レコードが削除されるカテゴリ *{{span style='color:blue;font-family:monospace;',→ dirty}} **{{span style='color:blue;font-family:monospace;',true}} の場合、Dirty ビットをセットします。 '''返り値''' 成功した場合は、0 を返します。データベースが Read-only モードの場合は、{{goto dmErrReadOnly,dmErrReadOnly}} を返します。いくつかのエラーは、エラー コードを返す代わりに、致命的なエラー メッセージを表示するかもしれません。 '''コメント''' {{span style='color:blue;font-family:monospace;',dirty}} が {{span style='color:blue;font-family:monospace;',true}} の場合、移動させられたレコードには Dirty ビットがセットされます。 {{span style='color:blue;font-family:monospace;',toCategory}} と {{span style='color:blue;font-family:monospace;',fromCategory}} パラメータには、カテゴリ インデックス値が入ります。あるレコードが存在しているカテゴリは {{goto DmRecordInfo,DmRecordInfo()|Palm OS Programmer's API Reference/30-2}} を呼び出すことで調べることができ、その値をこの関数に使用することができます。例えば、以下のコードでは、レコード {{span style='font-family:monospace;',rec1}} と {{span style='font-family:monospace;',rec2}} が同じカテゴリに入ることが保証されます。 DmOpenRef myDB; UInt16 rec1, rec2; UInt16 rec1Attr, rec2Attr; UInt16 category1, category2; DmRecordInfo (myDB, rec1, &rec1Attr, NULL, NULL); category1 = rec1Attr & dmRecAttrCategoryMask; DmRecordInfo(myDB, rec2, &rec2Attr, NULL, NULL); category2 = rec2Attr & dmRecAttrCategoryMask; if (category1 != category2) DmMoveCategory(myDB, category1, category2, true); '''互換性''' {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、{{span style='color:blue;font-family:monospace;',sysErrNotAllowed}} が返されます。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 !{{anchor DmMoveRecord}}DmMoveRecord 関数 {{goto p0,^TOP^}} '''目的''' 与えられたインデックスのレコードを他のインデックスに移動させます。 '''宣言されている場所''' {{span style='color:blue;font-family:monospace;',DataMgr.h}} '''Prototype''' Err DmMoveRecord ( DmOpenRef dbP, UInt16 from, UInt16 to ) '''パラメータ''' *{{span style='color:blue;font-family:monospace;',→ dbP}} **オープンされたデータベースへの {{span style='color:blue;font-family:monospace;',DmOpenRef}} *{{span style='color:blue;font-family:monospace;',→ from}} **移動させるレコードのインデックス *{{span style='color:blue;font-family:monospace;',→ to}} **レコードの移動先 '''返り値''' エラーが無い場合は、{{span style='color:blue;font-family:monospace;',errNone}} を返します。エラーが起きた場合は、以下の 1 つを返します。 *{{goto dmErrReadOnly,dmErrReadOnly}} *{{goto dmErrIndexOutOfRange,dmErrIndexOutOfRange}} *{{goto dmErrNotRecordDB,dmErrNotRecordDB}} *{{goto dmErrMemError,dmErrMemError}} *{{goto memErrInvalidParam,memErrInvalidParam}} *{{goto memErrChunkLocked,memErrChunkLocked}} いくつかのエラーは、エラー コードを返す代わりに、致命的なエラー メッセージを表示するかもしれません。 '''コメント''' {{span style='color:blue;font-family:monospace;',to}} インデックスにレコードを挿入して、他のレコードを下げます。{{span style='color:blue;font-family:monospace;',to}} で指定された場所が、挿入場所と見なされます。この値は、データベースの最後のレコードのインデックスよりも大きくなるかもしれません。{{span style='color:blue;font-family:monospace;',to}} が {{span style='color:blue;font-family:monospace;',from}} よりも大きい場合、レコードの新しいインデックスは、移動が完了すると、{{span style='color:blue;font-family:monospace;',to}}-1 になります。 '''互換性''' {{goto Palm OS Cobalt Feature Set,Palm OS Cobalt Feature Set|Palm OS Programmer's API Reference/B}} を満たす場合に PIM アプリケーション データベースにかかわるこの関数を呼び出すと、PACE は呼び出しを阻止して、対応するスキーマ データベースに対して適切な行動をとります。詳細は、[[「PIM アプリケーション データベースへのアクセス」|Palm OS Programmers's API Reference/B]] を参照してください。 [[この章のページ 2 へ|Palm OS Programmer's API Reference/30-2]] ---- [[← 29 章に戻る|Palm OS Programmer's API Reference/29]] [[↑トップへ|Palm OS Programmer's API Reference]] [[31 章に進む →|Palm OS Programmer's API Reference/31]]