mysql:12603
From: ま 弐 <ま 弐 <masashini@xxxxxxxxxx>>
Date: Thu, 22 Dec 2005 15:00:46 +0900
Subject: [mysql 12603] odbc driver 3.51 を使用した decimal の扱い
はじめまして。石川と申します。よろしくお願いします。 さっそくですが、一つ質問があります。 開発環境 Windows XP Visual Studio .NET MySQL 4.1.15 MySQL connector odbc 3.51.12 現在、データグリッドにテーブルデータを配置して、編集・更新ができる修正ツー ルを作成しているのですが ODBCドライバを使用して、Update、Delete、Insert を行った場合、データベース のカラムの型にdecimalがあると ERROR [07006] [MySQL][ODBC 3.51 Driver][mysqld-4.1.15-nt]Restricted data type attribute violation(SQL_C_NUMERIC) と、型変換で失敗とのエラーが出てしまいます。公式ページの掲示板の開発者回答 によると、MySQLのODBCドライバのバグとのことです(2004/7の時点で 3.53が出るま で待ちなさいとかなんとか・・・) http://bugs.mysql.com/bug.php?id=3028 http://lists.mysql.com/myodbc/6900 ドライバのバグではどうしようもないので、テーブルの型はdecimal のままで、 アプリケーション側の型を decimal → double へ変更しようとしています。 以下の変更を行いましたが、同様のエラーが出てしまいます。 OdbcDataAdapter.UpdateCommand.Parameters[].OdbcType OdbcDataAdapter.UpdateCommand.Parameters[].DbType の変更 DataSetのクローンを作成し、カラムの追加時にdecimalだったら型変換 OdbcDataAdapter.Update( dataSetClone ); のように、クローンをアップデート 同様のバグに当たり、解決できた方はいませんでしょうか?よろしくお願いしま す。