[前][次][番号順一覧][スレッド一覧]

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 


[前][次][番号順一覧][スレッド一覧]