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

mysql:7046

From: Kengo Jinno <Kengo Jinno <kengo@xxxxxxxxxx>>
Date: Tue, 25 Feb 2003 13:35:43 +0900
Subject: [mysql 07046] Re: ODBC 経由の UPDATE でエラーにならない

神野です。

Tue, 25 Feb 2003 13:16:32 +0900 ごろに
<3E5AEE20.882CAB06@xxxxxxxxxx> の
"[mysql 07043] Re: ODBC 経由の UPDATE でエラーにならない" のメールで
kazuo kaku <kkaku@xxxxxxxxxx> さんは書きました。

> ODBC経由で、UPDATEでエラーにならないのなら
> 上記のような回避方法は、思いつくのですが、
> ODBC経由であれば、UPDATEで一致するキーが無い時に
> エラーが返って来ないのは、普通なのでしょうか?

ODBCドライバ依存なのでは?

ODBCドライバがやっているのは
・プログラムから与えられたクエリー文をDBMSに投げつける
・DBMSから返された結果をプログラムに返す
だけでしょう。

「普通」かどうかはちょっとわかりかねます。
#SQLの定義やら、ODBCの仕様やら、調べてみないことには…?

#参考までに。
#VC++のCRecordsetクラスでは、UPDATE実行後に「updateが反映された行数」
#を調べて(ということはODBCドライバからは返されているのでしょう)、
#それがゼロだったら例外を発生させる、という処理をしていたように
#記憶しています。
##ODBCドライバがやっているのではなく、CRecordset(=ODBCドライバ
##から見たら「プログラム」)がやっていることに注意。

> コマンドプロンプトからMYSQLへUPDATEコマンドを発行すれば
> 一致するキーがないとエラーになります。

こちらのテストでは、ならないようですが。↓

| mysql> create table foo ( bar char(10), baz char(10) );
| Query OK, 0 rows affected (0.00 sec)
| 
| mysql> insert into foo values ( 'bar', 'baz' );
| Query OK, 1 row affected (0.00 sec)
| 
| mysql> select * from foo;
| +------+------+
| | bar  | baz  |
| +------+------+
| | bar  | baz  |
| +------+------+
| 1 row in set (0.00 sec)
| 
| mysql> update foo set baz = 'piyo' where bar = 'hoge';
| Query OK, 0 rows affected (0.00 sec)
| Rows matched: 0  Changed: 0  Warnings: 0

「ゼロ件更新した」と言ってますね。

-- 
神野健吾 <kengo@xxxxxxxxxx>

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

      7031 2003-02-25 10:35 [kazuo kaku <kkaku@xx] ODBC 経由の UPDATE でエラーにならない   
      7037 2003-02-25 11:29 ┗[Kengo Jinno <kengo@x]                                       
      7039 2003-02-25 12:00  ┗[kazuo kaku <kkaku@xx]                                     
      7040 2003-02-25 12:11   ┣[Kengo Jinno <kengo@x]                                   
      7043 2003-02-25 13:16   ┃┗[kazuo kaku <kkaku@xx]                                 
      7045 2003-02-25 13:24   ┃ ┣[Ryuichiro Munechika ]                               
      7048 2003-02-25 13:44   ┃ ┃┗[kazuo kaku <kkaku@xx]                             
->    7046 2003-02-25 13:35   ┃ ┣[Kengo Jinno <kengo@x]                               
      7049 2003-02-25 13:51   ┃ ┃┗[kazuo kaku <kkaku@xx]                             
      7047 2003-02-25 13:39   ┃ ┗[SUGAWARA Hajime <sug]                               
      7041 2003-02-25 12:13   ┣[Daiju Azuma <daiju_a]                                   
      7042 2003-02-25 12:58   ┗[遠藤 俊裕 <endo_t@xx]                                   
      7044 2003-02-25 13:20    ┗[kazuo kaku <kkaku@xx]