mSQL 用クライアントを作成する
mSQL と MySQL 間の C 言語 API の違いはとてもわずかなもので、自動コンバータさえある。主な違いは次
のとお
り。
- mSQL は接続データ ブロックを格納しない。格納するのは、ある 1 つの数 (
int
bookstore) だ
けだ。
- mSQL の関数には接続を引数として取らないものがある。
- mSQL の関数名は Pascal 方式である (アンダースコアの代わりに大文字をおりまぜて使う)。
便利な MONEY データ型は、2 桁の小数をもつ固定精度小数点型である。mSQL で
MONEY 列にセント数を整数で正しく格納するには、それらをキャストして float
型へ
変換し、add_new_book() 関数の sprintf 文で分割してフォーマットする必要が
あっ
た。
以下は、mSQL へ移植された list_books() だ。
void
list_books(void)
{
int count;
m_result *result;
msqlQuery(bookstore, "SELECT ARTICLE_NO, AUTHOR_FIRST_NAMES,
AUTHOR_LAST_NAMES, TITLE, ISBN, WHOLESALE_PRICE, RETAIL_PRICE,
COPIES_AVAILABLE FROM BOOK");
result = msqlStoreResult();
for(count = msqlNumRows(result); count > 0; count--)
{
m_row record;
record = msqlFetchRow(result);
printf("
Article no. %s
", record[0]);
printf("%s, %s:
", record[2], record[1]);
printf(" %s (%s)
", record[3], record[4]);
printf("Bought at %s; selling at %s; %s copies available
",
record[5], record[6], record[7]);
};
msqlFreeResult(result);
}
mSQL の C 言語 API に関するドキュメントは、PostScript ファイルおよび多数のHTML ファイルの形で
mSQL に
同梱されている、mSQL のマニュアル中で見つけることができた。
次は
Some Early Conclusions
>>