2009年12月24日

[mysql 15115] バイナリデータの取り込みについて

皆様 お世話になります。

質問です。

今、私はファイルのバイナリデータをMySQLに取り込みたいと
思い悪戦苦闘しおります。

LAN上でMySQL経由でバイナリファイルを共有したいと思い

VS2008 C++でアプリを組み、アプリ内でクエリを発行して
データをinsertしたいのですがうまくいきません。

皆様のお知恵を拝借願えないでしょうか?

コードはこんな感じです。

FILE *pStream;
CString sPath1("G:\\file1.***"); // 読込元のファイル
CString sPath2("G:\\file2.***"); // 保存先のファイル
CString Sql; // Sqlクエリ
CString sSqlData; // MySQLからselectで取り出したデータ
char pD[100000]; // ファイルの読み書き用

// ファイルの取得(読込モード)
fopen_s(&pStream, sPath1, "rb");
int n = fread(pD, sizeof(char), sizeof(pD), pStream);
fclose(pStream);

// クエリの作成
Sql.Format(_T(
"INSERT INTO eudc (id, eudc_data, count) "
"VALUES (0, '%s', n)"
), cData, n);

// Sqlクエリの発行

// MySQLからのバイナリデータを取得

// char への変換
pD == "";
strcpy(pD, sSqlData);
// ファイルへの書き込み
fopen_s(&pStream, sPath2, "wb");
fwrite(pD, sizeof(char), n, pStream);
fclose(pStream);

freadでは、ちゃんと取得できてるようですが、
pDの先頭がNULLみたいでCStringに変換できません。
(%sのところにバイナリデータが入らない。)

ちなみにテキストファイルの場合は、これで問題ないです。
又、pDを触らずにそのまま別のファイルに書き込んでも
大丈夫みたいです。

使用環境
OS Windows Vista Ultimate SP2
開発ツール VS2008 C++
MySQL Ver5.1

以上、初歩的なことかもしれませんが、
よろしくお願いします。

--------------------------------------
Get Disney character's mail address on Yahoo! Mail
http://pr.mail.yahoo.co.jp/disney/


投稿者 xml-rpc : 2009年12月24日 15:54
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/91681
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。