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

mysql:3835

From: Kengo Jinno <Kengo Jinno <kengo@xxxxxxxxxx>>
Date: Wed, 27 Jun 2001 12:53:45 +0900
Subject: [mysql 03835] Re: MyODBC で UPDATE ができない

神野です。
#新規の話題を「返信」で投稿しないでください。

Wed, 27 Jun 2001 11:46:04 +0900 ごろに
<004101c0feb3$4f7ff1c0$49453c81@xxxxxxxxxx> の
"[mysql 03834] MyODBC で UPDATEができない" のメールで
"西田 玄" <nishida@xxxxxxxxxx> さんは書きました。

> 現在,VC++からMyODBC経由でMySQLサーバに接続するアプリを
> 作成しています.
> 
> しかし,レコードの参照はできたのですが,更新や削除を行うと,
> 「レコードセットは読み取り専用です」
> というメッセージが出て更新や削除ができません.
> (新規追加はできます)

私の知識は、VC++5.0 MyODBC 2.50.16 なので、最近のとは
違うかもしれませんが。

MyODBCは、MFC CRecordsetの要求するカーソル機能を持って
いないようです。
Delete()やUpdate()にブレークポイントを置いてMFC内を
トレースしてみると、CRecordset::BuildUpdateSQL()で
"WHERE CURRENT OF <cursorname>"
といったSQL文を作成されているのがわかると思います。
どうも、MyODBCはこれに対応していないようです。

私はどうしたかというと、CRecordsetをオーバーライドして、
"WHERE 主キー = ? (AND 主キー = ? ...)"
というSQL文を生成するようにして対処しました。
が、めんどくさいです。

最初に書いたとおり、私の知識は古いです。

> [VC++]   6.0
> [MySQL]  3.23.32
> [MyODBC] 2.50.29

というような環境であれば、MyODBCのオプション(ODBCデータ
ソースで設定)やCRecordsetのオプションで対応できるように
なるかもしれません。

-- 
神野健吾 <kengo@xxxxxxxxxx>

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

      3815 2001-06-25 16:13 ["william" <william@x] or 条件で、 Index が使われない          
      3816 2001-06-25 17:58 ┣[Akihiko Shinohara <s]                                       
      3817 2001-06-25 18:39 ┃┗["william" <william@x]                                     
      3820 2001-06-25 19:08 ┃ ┗[Akihiko Shinohara <s]                                   
      3821 2001-06-25 19:31 ┃  ┗["MINOHATA Norio" <mi]                                 
      3828 2001-06-26 10:31 ┃   ┗["william" <william@x]                               
      3833 2001-06-27 10:33 ┃    ┗["MINOHATA Norio" <mi]                             
      3834 2001-06-27 11:46 ┃     ┣["西田 玄" <nishida@x] MyODBC で UPDATE ができない
->    3835 2001-06-27 12:53 ┃     ┃┣[Kengo Jinno <kengo@x]                         
      3837 2001-06-27 13:59 ┃     ┃┃┗["西田 玄" <nishida@x]                       
      3839 2001-06-27 16:33 ┃     ┃┃ ┗["william" <william@x]                     
      3840 2001-06-27 16:58 ┃     ┃┃  ┗["西田 玄" <nishida@x]                   
      3863 2001-06-29 12:01 ┃     ┃┃   ┗["西田 玄" <nishida@x]                 
      3836 2001-06-27 13:22 ┃     ┃┗[madara <madara@xxxxx]                         
      3838 2001-06-27 16:20 ┃     ┗[Hiroshi Takiguchi <t]                           
      3818 2001-06-25 18:41 ┣[Seiji Tateyama <tate]                                       
      3819 2001-06-25 19:00 ┃┣["william" <william@x]                                     
      3825 2001-06-26 06:47 ┃┗[とみたまさひろ <tomm]                                     
      3826 2001-06-26 09:36 ┃ ┗["MINOHATA Norio" <mi]                                   
      3822 2001-06-25 20:36 ┗[Hiroshi Takiguchi <t]