第9回 データベース 「8.おまけ」
|
|
9−8 おまけ
今回は、データベースの使い方を簡単なサンプルでみてきました。 とりあえず、色々触ってみることが一番です。 内容的には、十分プログラミングできると思いますので、後はアイディア勝負です。 と、ここまで初心者入門は終わりですが、今回は、ちょっとオマケ付きです。 本稿を執筆するにあたって、データベースについて試したことが幾つかありますので、ここで紹介しておきます。 Basic BASICと直接関係ないかもしれませんが、よろしければ、続けて読んで下さい。 【おまけ編:異なるモードのデータベースを読む】 キーモードのデータベースのイメージは、 KEY001,ABC,DEF と言うように、1つのレコードに、キーとデータが並んでいるイメージになります。 一方、ノンキーモードで書きこんだデータは、 X01234567890 のように1レコード中に1つのデータが置いてあるようにイメージすることができます。 これらのデータを読み取る時に、キーモードであれば、DbRead()を使い、ノンキーモードでは、DbGet()を使いますね。 この時、DbRead()は、キーを指定してデータを読み取り、DbGet()はポジションとオフセット値を指定してデータを読み取ります。 では、これらのコマンドを別のモードのデータベースに対して使った場合どうなるのでしょう? 実は、幾つか試してみたのですが、まともに使えるお話は「キーモードのデータベースをノンキーモードで読み取った場合」でしたので紹介しておきます。 あとは、サンプル等作成しながら研究して下さい。 ●キーモードのデータベースをノンキーモードで読み取る このモードを知るためには、次のサンプルレコードを使って説明します。取り扱いが便利でわかりやすいので、全て文字列型のデータです。 KEY001,ABC,DEF コマンドだと、 res=DbInsert(Dbx,"KEY001","ABC","DEF") ですね。 DbGet()でデータを参照する時、必要な情報はポジションとオフセット値で、そのうちのポジションは単なるレコード番号です。 したがって、この情報は、あまり重要ではないと思われます。問題は、オフセット値、と呼ばれるものです。 オフセット値は、いわば、先頭からのバイト数です。簡単に言えば文字数で、先頭が 0 でしたね。 では、このデータをDbGet()で読み取ってみましょう。
このような結果となりました。このことから、次のような事が推測されるますね。
また、オフセットが 0以外の時は、データのどこを読んでいるのかわからないので、読み込みに関しては、ちょっと危険です。 一方、その逆の、DbPut()を使って、キーモードのキーを作成することですが、これも可能でした。これも、オフセット 0 にすれば可能です。 しかし、ノンキーモードでは、データの重複が可能ですが、キーモードではキーの重複ができませんので、こういう処理をすると思わぬ動作を起す可能性があります。特に、表面上エラーが出なくても、内部的に問題を抱えていることがありますので、できれば、使わないようにしましょう。 今回は、おまけとして、ちょっとしたお話を載せておきました。とりあえず、データベース関連については、これくらい知っておけば良いでしょう。 内容的には、入門講座から離れてしまったかもしれませんが、いずれ役に立つことを祈って、今回は、ここまでとしておきます。 尚、探求心旺盛なユーザーのために、Palmデバイス標準のアプリケーションのデータベース名を掲載しておきます。 (これは、現在休筆中のNS Basic界の貴公子、おぢーさんのサイトより転載させていただきました。ありがとうございました。)
|
||||||||||||||||||||||||||||||||||||||||||||
第9回 データベース 「8.おまけ」
|