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

mysql:2826

From: Kengo Jinno <Kengo Jinno <kengo@xxxxxxxxxx>>
Date: Thu, 07 Dec 2000 14:38:42 +0900
Subject: [mysql 02826] Re: C言語でのクエリー発行

神野です。

Thu, 07 Dec 2000 14:05:54 +0900 ごろに
<4.3.1-J.20001207134756.033ac490@xxxxxxxxxx> の
"[mysql 02824] Re: C言語でのクエリー発行" のメールで
Yoshiyuki Asano <asano@xxxxxxxxxx> さんは書きました。

> >あの、気持ちはわからんでもないですが、もっときっちり
> >切り分けましょうよ。
> 
> この意味もよくわからない....
> どういうことでしょうか?

原因を追求するために、いろいろと試行錯誤されているのは
すごくよくわかるんです。
でも横から見てると、何をしてそうなったのか、さっぱり
わからないんです。

> クエリーを発行しているところで、メモリ破壊が起こっているのは明らかだと思
> いましたので。

とは限らなくて、破壊は別のところで起こっていて、
たまたまmysql_query()が地雷を踏んで表面化しただけかも
しれません。

> ちなみに、sprintfで書き込んでいる、char型のワークをbzeroで初期化している
> のですが、
> 初期化するだけでもこけてしまいます。しかもそのワークは初期化以外何もして
> いないのです

bzeroって何でしょう? memset( buff, 0, size );のようなもの?

> これはもともと、コンパイルして確認してって思って書いたのではなく
> 私のプログラムでの操作の仕方を聞きたかったのです。
> 関数の扱い方、DBサーバーの扱い方などです。
> ちなみにwhile(1)で回しています。その中でデータをロードするところがあり、
> データが読めなくなったらbreakしています。

いや、ですから、コンパイルするかどうかはともかく。
「完全に動くはず」だと思われるソースを提示して
いただかないと、検証のしようがないでしょう?

明らかなミスを見つけても、「コピーして貼り付けて編集する時の
ミスかもしれない」なんてことだとキリがないです。

「データをロードする」なんてのは、今回初めて聞いたように
思いますけど、もしかしたらそっちが影響しているのでは?
なんてことも考えられます。

「関係のないところは削ろう」とされたんだろうと思いますが、
それじゃぁ意味がないんです。

よりシンプルに、固定文字列だけでいいじゃないですか。

int     main( int ac, char* av[] )
{
    MYSQL*  p = NULL;
    p = mysql_real_connect( p, "server", "user", "pass", 3306, NULL, 0 );
    if( p != NULL ) {
        if( mysql_select_db( p, "test" ) == 0 ) {
            int     i, n;
            char    s[ 1024 ];
            for( i = 0; i < 10; i++ ) {
                sprintf( s, "insert into ttt values( %d, 'iii=%d' )", i, i );
                n = mysql_query( p, s );
                if( n == 0 ) {
                    printf( "[%02d:%d]Success\n", i, n );
                } else {
                    printf( "[%02d:%d]Error:%s\n", i, n, mysql_error( p ) );
                }
            }
        }
        mysql_close( p );
    }
    return 0;
}

みたいなところから始めてみてはどうですか?
#私が実際に検証に使ったコードです。
#これもsprintf()使っているので、そう*シンプル*でもない。
#テーブル定義は
#  create table ttt (
#    iii integer not null,
#    xxx char(20),
#    primary key iii (iii)
#  );
#です。
#MYSQL_VERSION_IDが32125なので、mysql_init()はないし、
#mysql_real_connect()も多少違うと思います。

> >printf("[%04d:%d]失敗:%s\n",i,error,mysql_error(d_mysql));
> >とでもした方がより詳しい情報が得られるかもしれません。
> 
> 早速、試してみました。
> 結果は Duplicate entry '0' for key 1 とありました。
> プライマリーキーを設定しているので、その関係のエラーだと思うのですが...
> 違います?

mysql_error()が言っているのはそういうことですね。

-- 
神野健吾 <kengo@xxxxxxxxxx>

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

      2788 2000-12-06 14:56 ["Y. Tsutsui" <tutui@] 関東支部会合について                    
      2789 2000-12-06 15:17 ┣[Tatsuo Hiramatsu <ta]                                       
      2790 2000-12-06 15:37 ┃┗["Y. Tsutsui" <tutui@]                                     
      2791 2000-12-06 15:43 ┃ ┗[Michiaki Mitachi <mi]                                   
      2793 2000-12-06 16:35 ┃  ┗[<endo_t@xxxxxxxxxx> ]                                 
      2795 2000-12-06 17:29 ┗[Tatsuo Hiramatsu <ta]                                       
      2796 2000-12-06 17:35  ┣["Y. Tsutsui" <tutui@]                                     
      2798 2000-12-06 17:46  ┃┣[<ikezawa@xxxxxxxxxx>]                                   
      2807 2000-12-06 18:47  ┃┗[Tatsuo Hiramatsu <ta]                                   
      2814 2000-12-06 20:58  ┃ ┗[<ikezawa@xxxxxxxxxx>]                                 
      2815 2000-12-06 21:06  ┃  ┗["Y. Tsutsui" <tutui@]                               
      2880 2000-12-18 17:56  ┃   ┗["Y. Tsutsui" <tutui@]                             
      2881 2000-12-19 10:32  ┃    ┣[Tatsuo Hiramatsu <ta]                           
      2884 2000-12-20 18:19  ┃    ┃┗["Y. Tsutsui" <tutui@]                         
      2885 2000-12-20 21:27  ┃    ┃ ┗[<ikezawa@xxxxxxxxxx>]                       
      2890 2000-12-22 02:41  ┃    ┗["Y. Tsutsui" <tutui@]                           
      2892 2000-12-22 11:50  ┃     ┗[Tatsuo Hiramatsu <ta]                         
      2893 2000-12-22 13:49  ┃      ┗[<ikezawa@xxxxxxxxxx>]                       
      2797 2000-12-06 17:33  ┗[Yoshiyuki Asano <asa] C言語でのクエリー発行              
      2799 2000-12-06 18:12   ┣[Kayama Yoichi <yoich]                                   
      2801 2000-12-06 18:13   ┃┗[Yoshiyuki Asano <asa]                                 
      2803 2000-12-06 18:40   ┃ ┣[Kayama Yoichi <yoich]                               
      2804 2000-12-06 18:33   ┃ ┃┗[Yoshiyuki Asano <asa]                             
      2806 2000-12-06 18:40   ┃ ┗[Kengo Jinno <kengo@x]                               
      2809 2000-12-06 18:51   ┃  ┣[Yoshiyuki Asano <asa]                             
      2810 2000-12-06 18:55   ┃  ┗[荒井 哲三  <tetsumi]                             
      2812 2000-12-06 19:35   ┃   ┗[Kengo Jinno <kengo@x]                           
      2813 2000-12-06 20:04   ┃    ┣[UNO Shintaro <uno@xx]                         
      2830 2000-12-07 15:57   ┃    ┗[荒井 哲三  <tetsumi]                         
      2800 2000-12-06 18:02   ┣[Kengo Jinno <kengo@x]                                   
      2802 2000-12-06 18:20   ┃┣[Yoshiyuki Asano <asa]                                 
      2805 2000-12-06 18:40   ┃┃┗[Kengo Jinno <kengo@x]                               
      2808 2000-12-06 18:49   ┃┃ ┗[Yoshiyuki Asano <asa]                             
      2811 2000-12-06 19:35   ┃┃  ┗[Kengo Jinno <kengo@x]                           
      2843 2000-12-08 11:54   ┃┗[Yoshiyuki Asano <asa] MySQL のC言語用のライブラリって...
      2844 2000-12-08 13:19   ┃ ┗[Kengo Jinno <kengo@x]                               
      2845 2000-12-08 13:52   ┃  ┣[Tomohiro KATO <tomop]                             
      2846 2000-12-08 14:14   ┃  ┃┗[Kengo Jinno <kengo@x]                           
      2847 2000-12-08 15:18   ┃  ┃ ┗[Yoshiyuki Asano <asa]                         
      2852 2000-12-11 10:59   ┃  ┗[Yoshiyuki Asano <asa]                             
      2853 2000-12-11 11:28   ┃   ┗[Kengo Jinno <kengo@x]                           
      2854 2000-12-11 11:54   ┃    ┗[Yoshiyuki Asano <asa]                         
      2856 2000-12-11 12:41   ┃     ┗[Kengo Jinno <kengo@x]                       
      2857 2000-12-11 17:36   ┃      ┗[Yoshiyuki Asano <asa] MySQL サーバーに接続の仕方
      2858 2000-12-11 19:20   ┃       ┗[Tomohiro KATO <tomop]                   
      2873 2000-12-15 11:03   ┃        ┗[Yoshiyuki Asano <asa] MySQL  サーバーにリモート接続
      2874 2000-12-15 14:26   ┃         ┗[Tomohiro KATO <tomop]               
      2886 2000-12-21 11:32   ┃          ┗[Yoshiyuki Asano <asa]             
      2887 2000-12-21 12:27   ┃           ┗[Kengo Jinno <kengo@x]           
      2888 2000-12-21 12:45   ┃            ┗[Yoshiyuki Asano <asa]         
      2889 2000-12-21 13:01   ┃             ┗[Kengo Jinno <kengo@x]       
      2891 2000-12-22 09:18   ┃              ┗[Yoshiyuki Asano <asa]     
      2817 2000-12-06 23:50   ┗[とみたまさひろ <tomm]                                   
      2820 2000-12-07 11:15    ┗[Yoshiyuki Asano <asa]                                 
      2823 2000-12-07 13:21     ┗[Kengo Jinno <kengo@x]                               
      2824 2000-12-07 14:05      ┗[Yoshiyuki Asano <asa]                             
->    2826 2000-12-07 14:38       ┣[Kengo Jinno <kengo@x]                           
      2827 2000-12-07 15:31       ┣[Kayama Yoichi <yoich]                           
      2828 2000-12-07 15:34       ┣[Tomohiro KATO <tomop]                           
      2829 2000-12-07 15:36       ┣[松並 <matunami@xxxxx]                           
      2831 2000-12-07 15:58       ┃┣[松並 <matunami@xxxxx]                         
      2833 2000-12-07 16:11       ┃┣[UNO Shintaro <uno@xx]                         
      2834 2000-12-07 16:39       ┃┗[Yoshiyuki Asano <asa]                         
      2836 2000-12-07 17:46       ┃ ┣[Tomohiro KATO <tomop]                       
      2837 2000-12-07 18:54       ┃ ┃┣[Yoshiyuki Asano <asa]                     
      2839 2000-12-07 21:21       ┃ ┃┗[Satoshi Tatsuoka <sa]                     
      2842 2000-12-08 09:25       ┃ ┃ ┗[Yoshiyuki Asano <asa]                   
      2838 2000-12-07 19:44       ┃ ┣[松並 <matunami@xxxxx]                       
      2841 2000-12-08 09:00       ┃ ┗[UNO Shintaro <uno@xx]                       
      2832 2000-12-07 16:05       ┗[<endo_t@xxxxxxxxxx> ]