2009年12月24日

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

岩崎と申します。
すいません。訂正です。

iida様 すいません消し忘れです。

> 皆様 お世話になります。
>
> 質問です。

>
> 今、私はファイルのバイナリデータを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); ← 訂正 cData でなく pD です
>
> // 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/
>
>


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


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




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