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

mysql:15123

From: 岩崎 誠司 <岩崎 誠司 <iwasaki_ryuqseed_6130@xxxxxxxxxx>>
Date: Fri, 25 Dec 2009 12:18:00 +0900 (JST)
Subject: [mysql 15123] Re: バイナリデータの取り込みについて

岩崎です。

iida様、Eigo様、柳本様、chisa様、
返信有難うございます。

iida様、Eigo様、
strcpy()では、'\0'で止めるということはバイナリデータは
取り扱えない事になるのですね

chisa様
これは、とりあえずテスト用のコードです。
なのでメモリの確保やエラーチェックはしてません。
selectは、その前の段階でつまずいたので書きません
でした。
memcpy()一度、調べてみます。

CString型は'\0'がある場合は、だめみたいです
皆様、勉強不足ですいません。

MySQL言うよりVC++の問題ですね。

一から考え直してみます。有難うございました。

> @夜勤明けです。
> 
> 少し細かいのとMYSQLから少し外れてしまうですが・・・
> 
> > CString sPath1("G:\\file1.***"); //
> 読込元のファイル
> > CString sPath2("G:\\file2.***"); //
> 保存先のファイル
> > char pD[100000];	 // ファイルの読み書き用
> ↑ハードコーディングすると後で死ぬ思いするかも。
> 
> >
> > // ファイルの取得(読込モード)
> > fopen_s(&pStream, sPath1, "rb");
> > int n = fread(pD, sizeof(char), sizeof(pD),
> pStream); fclose(pStream);
> ↑読み込みファイルサイズがpDを超えた部分は切り捨てられ
るよ。
>  Cチックに書くと
>  char *pD = NULL;
>  FILE *fp = NULL;
>   fopen節
>   if(!fp)〜でエラー処理
>   fseek(fp, 0L, SEEK_END);
>   int Length = (int)ftell(fp);
>   pD = (*char)malloc(sizeof(char) * Length);
>  if(pD == NULL)〜でエラー処理
>   fseek(fp, 0L, SEEK_SET);
>   fread(fp, Length, sizeof(char), fp);
>   fclose(fp);
> 処理
>  free(pD);
>  pD = NULL;
> といった具合に動的にメモリ確保した方がよいかも(端折り
かつうろ覚えだからちゃ
> んと調べてね)
> 
> > // char への変換
> > pD == "";
> ↑警告出ませんでしたか?
> 仮にpDに""を代入したい場合、C/C++でコレは通用しません
。Cだとmemsetとかが一般
> 的かな。
> 
> > strcpy(pD, sSqlData);
> ↑皆様の仰るとおり\0の手前までしかコピーしてくれません> バイナリの場合はCだとmemcpyを用いるのが一般的かな。
> 
> Insert文を作成している部分が抜けていますが、
> 作成前にバイナリファイルをエスケープする必要があります> ↑にも書いてありますが、文字列は\0で終端を判定していま
す。
> 検索すればすぐ出てくるので調べてみて下さい。
> 
> Selectの処理も抜けているようですが、
> insertと似たように配列をそのまま文字列としてコピーする
と\0迄しか取ってくれま
> せん。
> コレの対処法もマニュアルに記載されているので検索してみ
て下さい。
> 
> C/C++は頭が良すぎる言語なので書いたこと以外実行してく
れません。
> エラー処理もしてくれません。突然落ちます。最悪OSが壊れ
て起動しないと言うこと
> もあるそうです。
> 基本は0エラー0警告でコンパイルが終了することです。
> 送って頂いたソースが原文のままでしたら後で泣きを見るこ
と間違い無しなので
> 今一度基礎をしっかり作り上げる事をお勧めするです。
> 
> 無理にバイナリとして格納する必要性があるか考察の余地は
あると思います。
> C/C++だとテキストエンコーディング処理挟んでも体感速度
は変わらないと感じま
> す。
> 
> 以上
> 
> 
> --
> Chisa
> Mail:admin@xxxxxxxxxx
> Web:http://chisa.dtdns.net
> 
> 
> 


--------------------------------------
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_]