mysql:8822
From: "oka nobunobu" <"oka nobunobu" <sanwaufj@xxxxxxxxxx>>
Date: Thu, 19 Feb 2004 19:17:32 +0900
Subject: [mysql 08822] Re: C 言語でデータベースにラージオブジェクトを挿入する方法
MySQLメーリングリストのみなさま、はじめまして。 無料でMySQLを利用させてもらっています。 > 現在C言語を使ってMySQLのデータベースにデータを登録するプログラムを作成 > しているのですが、バイナリファイルをそのまま挿入・取り出しして使用する必要 > があるため、BLOBのフィールドを作ってやったのですが、 CREATE TABLE tbl ( id INTEGER, bn BLOB ); char bin[4]; bin[0] = 0x12; bin[1] = 0x18; bin[2] = 0x00; bin[3] = 0x6F; という4バイトを挿入したい場合 INSERT INTO tbl VALUES(125, 0x1218006F); とすればいいです。 取り出したい場合は mysql_query(mysqlhandle, "SELECT bn FROM tbl WHERE id = 125") MYSQL_ROW row の row[0] が結果となります。(MYSQL_ROW の実態は char ** のこと) 挿入したデータのサイズ分だけ row[0] にはいっています。MySQLが内部でメモリー 確保してます。 バイナリーデータの場合はサイズが重要なので、サイズフィールドをあらかじめ作っ たほうがいいです。 サイズをSQLから知りたい場合は SELECT length(bn) FROM tbl などとします。 > あんまりC言語ではMySQLって使わないんでしょうか? > 見つけるページのほとんどはPHPやPerl、Rubyを使ってたりするんで…。 C言語オンリーでは使わないでしょう。 Visual C++ とか Borland のやつでは使うかもしれません。 _________________________________________________________________ 友達と24時間ホットライン「MSN メッセンジャー」、今すぐダウンロード! http://messenger.msn.co.jp