mysql:15115
From: 岩崎 誠司 <岩崎 誠司 <iwasaki_ryuqseed_6130@xxxxxxxxxx>>
Date: Thu, 24 Dec 2009 15:54:15 +0900 (JST)
Subject: [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/
15105 2009-12-14 19:00 [Honda Takayuki <hond] レプリケーションエラー(server id was not set) 15106 2009-12-14 20:26 ┗[Honda Takayuki <hond] -> 15115 2009-12-24 15:54 ┗[岩崎 誠司 <iwasaki_] バイナリデータの取り込みについて 15116 2009-12-24 16:01 ┣[<y-iida@xxxxxxxxxx> ] 15117 2009-12-24 16:25 ┣[岩崎 誠司 <iwasaki_] 15118 2009-12-24 17:17 ┃┗["Eigo Mori" <eigom@x] 15121 2009-12-24 19:45 ┣[Yoshiaki Yanagimoto ] 15122 2009-12-25 01:59 ┗[ちさ <admin@xxxxxxxx] 15123 2009-12-25 12:18 ┗[岩崎 誠司 <iwasaki_]