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

mysql:12636

From: yoshiyasu tanaka <yoshiyasu tanaka <yoshiyasu.tanaka@xxxxxxxxxx>>
Date: Mon, 16 Jan 2006 11:52:58 +0900
Subject: [mysql 12636] Re: MySQL Connector/NET で Update できない

田中です。
UpdateCommandを取得してみました。
以下のような感じです。

--------------------
UPDATE
    `DB名`.`テーブル名`
SET
      `列名`=?列名
    , ....
    , (省略)
    , ....
WHERE
    `列名` <=> ?Original_列名
AND ....
AND (省略)
AND ....
;
SELECT
      `列名`
    , `列名`
    , (省略)
    , `列名`
FROM
    `DB名`.`テーブル名`
WHERE
    (`キー列名`=?Original_キー列名)
--------------------

18件までで成功する場合も19件で失敗する場合も同様です。
内部的に後半のSELECT文で元値を取得し、それを前半のWHERE句にバインドしているのでしょうか?
うーん・・・


06/01/14 に yoshiyasu tanaka<yoshiyasu.tanaka@xxxxxxxxxx> さんは書きました:
> 田中です。
> なるほど、ありがとうございます。
> 確認して、また報告します。
>
> 06/01/14 に 天野 潔<kiyoshi.amano@xxxxxxxxxx> さんは書きました:
> > 天野です。
> >
> > >"同時実行違反 : UpdateCommand によって 0件処理されました。"
> > >
> > >という、Exceptionが発生します。
> >
> > このExceptionは、更新しようとしているフィールドの値が、データセットを読み込んだ
> > ときの値と異なっているときに発生します。
> >
> > もし、データが書き換えられていないのにこの例外が発生するとしたら、MySQLCommandBu
> > ilderが自動生成したUpdateCommandに問題がある可能性がありますので、生成されたコマ
> > ンド文を調べられるとよいでしょう。
> >
> > コマンド文は、MySQLCommandBuilder.GetUpdateCommand で取得できます。
> >
> > 生成されるコマンドは簡略化すると次のようなものです。テーブル table1 のキーフィー
> > ルド keyfield がキー値である行のフィールド field1 を「元値」から「変更値」に変更
> > するとしたら、
> >
> >        update table1 set field1 = 変更値 where keyfield = キー値 and field1 = 元値
> >
> > のような感じです。
> > ここで、where 句の該当行がない場合、上記Exceptionが発生します。
> >
> >
> > ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> > 天野 潔 <kiyoshi.amano@xxxxxxxxxx>
> > ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
> >
> >
>

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

     12633 2006-01-14 00:49 [yoshiyasu tanaka <yo] MySQL Connector/NET  で Update  できない
     12634 2006-01-14 13:46 ┗[天野 潔 <kiyoshi.am]                                       
     12635 2006-01-14 22:35  ┗[yoshiyasu tanaka <yo]                                     
->   12636 2006-01-16 11:52   ┗[yoshiyasu tanaka <yo]                                   
     12637 2006-01-16 15:44    ┗[天野 潔 <kiyoshi.am]                                 
     12638 2006-01-16 16:48     ┗[yoshiyasu tanaka <yo]