Palm Programmer's Laboratory
BBS-雑談掲示板/33
データベースの使い方について教えてください。 - irija_bari (2007年10月13日 18時44分55秒)
質問させてください。
アドレス帳のようなデータベースとセットになっているアプリケーションでは、
どのようにデータベースを作成、オープン、クローズするものなのでしょうか?
下のコードのように、アプリケーション開始関数でデータベースをオープンすると、自動的にデータベースが作成されるようです。
しかし、アプリケーションを終了するときになにもしないと「メモリ リークが 1 つある」とエラー表示が出ます。
データベースをクローズ、または、メモリ ハンドルを解放すると「致命的なエラー」が表示されます。
どのような手順を踏むべきなのでしょうか?
DmOpenRef dmOpenRef;
UInt16 dbCardNo = 0;
MemHandle dbHandle;
LocalID dbID;
static Err AppStart(void)
{
dbHandle = MemHandleNew(1);
dbID = MemHandleToLocalID(dbHandle);
dmOpenRef = DmOpenDatabase(dbCardNo, dbID, dmModeReadWrite);
//この後、データベースをオープンできないときは、新たに作成、オープンするコードを
//書いたのですが、使用されていないようです。
...
}
static void AppStop(void)
{
// Close all the open forms.
FrmCloseAllForms();
DmCloseDatabase(dmOpenRef);
MemHandleFree(dbHandle);
}
また、Palm のデータベースには「カラム」という概念はないのでしょうか?
レコードが複数のカラムを持つため、カラムを「,」区切りにしてレコードに収めています。
問い合わせをするときには、全レコードに対して、
- レコードを取り出す
- 区切り文字で切り分ける
- 切り分けたデータに対して評価を行う
という手順を踏んでいます。なんだか、非効率な気がするのですが。。。
よろしくご指導ください。
コメント
- Palm のデータベースの概念は、一般的な PC 環境やサーバ環境におけるいわゆる「Database」とは違います。どちらかというと、ファイルに近いものと考えたほうが良いでしょう。ひとまず、このあたりを読みましょう。また、「Palm OS Programmer's Companion Volume I」はざっとでもいいので全体を読み通すことをお勧めします。 - 陰郎 (2007年10月13日 21時13分37秒)
- アドバイスをありがとうございます。Palm OS Programmer's Companion はいつも活用させてもらっています。2章の起動・終了コードにそれらしい記述があったので、サンプルプログラムも参考にして勉強してみます。概論を読むのがどうも苦手なのですよね。。。少しずつでもいいので覚えていきたいと思います。 - irija_bari (2007年10月14日 14時51分46秒)
- >影朗さんレコード データの作成と取得には構造体を使用し、表示にはテーブルを使用すると便利なのですね。次はレコード データの変更に対応し、次はレコード データのカテゴリ分け、その次は PC との同期に対応しようと思っています。Companion の訳出作業は順調に進んでいるようですね。お疲れ様です。区切りが付いたら、アンカ対応をよろしくお願いします。 - irija_bari (2007年10月30日 11時36分45秒)
- "【東京/大阪高級派遣・桃色倶楽部|店長靜香Gleezy:qin670】 — 忙しい毎日に、ひとときの安らぎを 都会の喧騒から離れて、心と身体を解き放つ時間を。 誰にも言えない秘密の夜、特別な美女が寄り添います。 東京23区・大阪府ホテル/自宅派遣OK(現金後払い) 完全匿名/安心のプライバシー保護 ご連絡は Gleezy:qin670 / Telegram:@qin670 または LINE:shypo6/ 669jp へ 公式サイト: https://av669jp.com/ 。" - 桃色倶楽部|店長靜香 (2025年12月17日 17時07分03秒)
