以下のセクションでは、一般的なエラーとその解決法、または代替案を説明します。問題が引き続き起こる場合は、Connector/ODBC メーリングリストを利用してください。項24.1.7.1. 「Connector/ODBC のコミュニティー支援」 参照。
多くの問題は、Connector/ODBC ドライバを最新版に更新することで解決できます。Windows では、最新バージョンの Microsoft Data Access Components (MDAC) をインストールするようにしてください。
Questions
24.1.6.3.1: 私の MyODBC 2.50 アプリケーションは Connector/ODBC 3.51 に対応しますか?
24.1.6.3.2:
Windows XP x64 版、または Windows Server 2003 R2 x64
に Connector/ODBC
をインストールしました。インストールは成功したのですが、Connector/ODBC
ドライバが ODBC Data Source
Administrator
に現われません。
24.1.6.3.3:
ODBC Data Source Administrator
にある Test
ボタンを接続、または使用すると、エラー
10061 ( サーバー接続不可 ) が発生します。
24.1.6.3.4:
トランザクションを使用すると、次のエラーが報告されます
:Transactions are not enabled
24.1.6.3.5:
クエリをサブミットすると、次のエラーが報告されます
:Cursor not found
24.1.6.3.6:
リンクしたテーブルに記録をインサートまたはアップデートするとき、Access
が記録を #DELETED#
として報告してきます。
24.1.6.3.7: Write Conflicts および Row Location エラーにはどう対処すべきですか?
24.1.6.3.8:
データを Access 97 から MySQL
にエクスポートすると Syntax
Error
が報告されます。
24.1.6.3.9:
データを Microsoft DTS から MySQL
にエクスポートすると Syntax
Error
が報告されます。
24.1.6.3.10: ODBC.NET を Connector/ODBC と使用すると、空のストリング ( 長さ 0 ) を摘出している間、SQL_NO_DATA 例外を出し始めます。
24.1.6.3.11:
Visual Basic と ASP で SELECT COUNT(*)
FROM
を使用すると、エラーが戻ってきます。
tbl_name
24.1.6.3.12:
AppendChunk()
または
GetChunk()
ADO
メソッドを使用すると、Multiple-step
operation generated errors.Check each status
value
エラーが戻ってきます。
24.1.6.3.13:
Linked Table で記録を編集していると、Access
が Another user had modified the record that you
have modified
を戻してきます。
24.1.6.3.14: Unix/Linux 下にある Connector/ODBC ライブラリにアプリケーションを直接リンクしようとすると、アプリケーションがクラッシュします。
24.1.6.3.15:
Microsoft Office
スイートのアプリケーションでは、DATE
または TIMESTAMP
カラムのあるテーブルをアップデートできません。
24.1.6.3.16:
Connector/ODBC 5.x (Beta) を MySQL 4.x
サーバに接続しているとき、1044
Access denied for user 'xxx'@'%' to
database 'information_schema'
エラーが戻ってきます。
Questions and Answers
24.1.6.3.1: 私の MyODBC 2.50 アプリケーションは Connector/ODBC 3.51 に対応しますか?
MyODBC 2.50 を基にしたアプリケーションならば、Connector/ODBC 3.51 以降であれば問題なく作動するはずです。以前のバージョン下で使用していたことのある最新版 Connector/ODBC に不具合がある場合は、バグ レポートを提出してください。項24.1.7.2. 「Connector/ODBC の不具合またはバグのレポート」 参照。
24.1.6.3.2:
Windows XP x64 版、または Windows Server 2003 R2 x64
に Connector/ODBC
をインストールしました。インストールは成功したのですが、Connector/ODBC
ドライバが ODBC Data Source
Administrator
に現われません。
これはバグではありませんが、Windows x64
版の ODBC
ドライバとの作動傾向に関連しています。Windows
x64 版では、Connector/ODBC ドライバが
%SystemRoot%\SysWOW64
フォルダにインストールされています。しかし、Administrative
Tools
または Windows x64 Editions の
Control Panel
で入手できる、デフォルトの ODBC Data
Source Administrator
は
%SystemRoot%\system32
フォルダに入っており、このフォルダでしか
ODBC ドライバを探しません。
Windowx x64
版では、%SystemRoot%\SysWOW64\odbcad32.exe
にある ODBC
管理ツールを使用すれば、インストールされた
Connector/ODBC
ドライバの所在を正確に特定し、それによって
Connector/ODBC DSN を作成することができます。
この問題は、当初 Bug#20301 として報告されました。
24.1.6.3.3:
ODBC Data Source Administrator
にある Test
ボタンを接続、または使用すると、エラー
10061 ( サーバー接続不可 ) が発生します。
このエラーの原因には、サーバーの不具合、ネットワークの問題、ファイアウォールとポートブロックの問題等、多くの事柄が考えられます。詳細は
項B.1.2.2. 「Can't connect to [local] MySQL server
」
をご覧ください。
24.1.6.3.4:
トランザクションを使用すると、次のエラーが報告されます
:Transactions are not enabled
このエラーは、トランザクションをサポートしない
MySQL
テーブルでトランザクションを使用しているということを示します。トランザクションは
InnoDB
データベース
エンジンを使っているときに、MySQL
でサポートされます。また、MySQL Mysql 5.1
以前のバージョンでは、BDB
エンジンも使用してください。
先に進む前に、次を確認してください :
あなたの MySQL サーバが
トランザクション データベース
エンジンをサポートしているか確認。SHOW
ENGINES
を使って、利用可能なエンジン
タイプのリストを得る。
あなたがアップデートしているテーブルが、トランザクション データベース エンジンを使用するか確認。
DSN で、disable transactions
オプションを有効にしていないことを確認。
24.1.6.3.5:
クエリをサブミットすると、次のエラーが報告されます
:Cursor not found
これはアプリケーションが 古い MyODBC 2.50 バージョンを使用していることが原因で、そのため SQLSetCursorName を介して明確にカーソル名を設定していません。これを解決するには、Connector/ODBC 3.51 バージョンへアップグレードしてください。
24.1.6.3.6:
リンクしたテーブルに記録をインサートまたはアップデートするとき、Access
が記録を #DELETED#
として報告してきます。
インサートされた、またはアップデートされた記録が、アクセスで
#DELETED#
と表示される場合 :
Access 2000 を使用している場合は、最新の
( バージョン 2.6 以降 ) Microsoft MDAC (
Microsoft Data Access Components
)
を http://www.microsoft.com/data/
から入手してインストールしてください。データを
MySQL
にエクスポートすると、テーブルおよびカラムの名前が特定されない、という
Access
のバグは、これで解消されます。このバグに対する他の代替案は、MyODBC
を 2.50.33 以降、そして MySQL を 3.23.x
以降にアップグレードすることで、このふたつがそろえば、この問題を回避することができます。
また、Microsoft Jet 4.0 Service Pack 5 (SP5) を
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q239114
から入手して加えることもお勧めします。それによって、Access
でカラムが #DELETED#
と表示されるという問題の一部は解決します。
MySQL 3.22 を使用している場合は、MDAC パッチを施し、 MyODBC 2.50.32 または 2.50.34 以降を使用することで問題が回避できます。
すべてのバージョンの Access
で、Connector/ODBC Return matching
rows
オプションを有効にしてください。Access
2.0 では、Simulate ODBC 1.0
オプションも加えて有効にしてください。
アップデートを可能にしたいすべてのテーブルに、タイムスタンプを設けてください。
テーブルに基本キーを設けてください。それを行わない場合、新規またはアップデートされた行が
#DELETED#
と表示される場合があります。
DOUBLE
浮動小数点フィールドのみを使用。単精度浮動小数点値と比較する際、Access
に不具合が起きるためです。この徴候では通常、新規またはアップデートされた行が
#DELETED#
と表示される、または行の検出もしくはアップデートができなくなるということがあります。
Connector/ODBC を使って BIGINT
カラムのあるテーブルへリンクしている場合、結果が
#DELETED#
と表示されます。この問題を避けるには
:
データタイプとして、TIMESTAMP
にもうひとつダミー
カラムを設ける。
ODBC DSN Administrator
の接続ダイアログで、Change
BIGINT columns to INT
オプションを選択。
Access からテーブル リンクを削除し、また再作成する。
古い記録はまだ #DELETED#
と表示されるが、新しく加えられた、またはアップデートされた記録は正常に表示される。
24.1.6.3.7: Write Conflicts および Row Location エラーにはどう対処すべきですか?
下記のエラーが表示されたら、DSN
構成ダイアログで Return Matching
Rows
オプションを選択するか、OPTION=2
を接続パラメータとして指定してください
:
Write Conflict. Another user has changed your data. Row cannot be located for updating. Some values may have been changed since it was last read.
24.1.6.3.8:
データを Access 97 から MySQL
にエクスポートすると Syntax
Error
が報告されます。
このエラーは Access 97 と、Connector/ODBC 3.51.02 より前のバージョンに特有のものです。最新バージョンの Connector/ODBC にアップグレードすれば、この問題は解決できます。
24.1.6.3.9:
データを Microsoft DTS から MySQL
にエクスポートすると Syntax
Error
が報告されます。
このエラーは、TEXT
または
VARCHAR
データタイプを使っている MySQL
テーブルでのみ起こります。Connector/ODBC
ドライバを バージョン 3.51.02
以降にアップグレードすれば、この問題は解決されます。
24.1.6.3.10: ODBC.NET を Connector/ODBC と使用すると、空のストリング ( 長さ 0 ) を摘出している間、SQL_NO_DATA 例外を出し始めます。
この問題を解決するパッチが、http://support.microsoft.com/default.aspx?scid=kb;EN-US;q319243 から入手できます。
24.1.6.3.11:
Visual Basic と ASP で SELECT COUNT(*)
FROM
を使用すると、エラーが戻ってきます。
tbl_name
このエラーは、COUNT(*)
発現が
BIGINT
を戻しており、これほど大きな数字になると、ADO
が理解しきれないのが原因です。Change
BIGINT columns to INT
オプション (
オプション値 16384 ) を選択してください。
24.1.6.3.12:
AppendChunk()
または
GetChunk()
ADO
メソッドを使用すると、Multiple-step
operation generated errors.Check each status
value
エラーが戻ってきます。
ADO の GetChunk()
と
AppendChunk()
メソッドは、カーソル ロケーションが
adUseServer
として定義されていると予想通りに作動しません。一方、adUseClient
を使用することで、この問題を乗り越えることができます。
簡潔な例は、次のリンクで見つけることができます。 http://www.dwam.net/iishelp/ado/docs/adomth02_4.htm
24.1.6.3.13:
Linked Table で記録を編集していると、Access
が Another user had modified the record that you
have modified
を戻してきます。
ほとんどの場合、この問題は次のうちからひとつを行うと解決します :
テーブルに基本キーがなければ追加する。
タイムスタンプ カラムがなければ追加する。
倍精度浮動小数フィールドのみを使用。プログラムによっては、単精度浮動小数と比較する際に不具合が発生する。
これらの対策でも解決しない時は、ODBC マネージャーからのログ ファイル ( ODBCADMIN からログを要求する際に得られるログ ) 、そして Connector/ODBC ログ の作成を開始し、問題点の追求に役立ててください。詳しい方法は、項24.1.3.8. 「ODBC トレース ファイルの獲得」 をご覧ください。
24.1.6.3.14: Unix/Linux 下にある Connector/ODBC ライブラリにアプリケーションを直接リンクしようとすると、アプリケーションがクラッシュします。
Unix/Linux 下の Connector/ODBC 3.51 は、アプリケーションへの直接リンクに対応していません。iODBC もしくは unixODBC などのドライバ マネージャーを使用して、ODBC ソースに接続しなければなりません。
24.1.6.3.15:
Microsoft Office
スイートのアプリケーションでは、DATE
または TIMESTAMP
カラムのあるテーブルをアップデートできません。
これは、Connector/ODBC
のよく知られた問題です。フィールドが確実にデフォルト値
( NULL
ではなく、また、ゼロでないデフォルト値。つまり
0000-00-00 00:00:00
のデフォルト値は無効 )
を持っているか確認してください。
24.1.6.3.16:
Connector/ODBC 5.x (Beta) を MySQL 4.x
サーバに接続しているとき、1044
Access denied for user 'xxx'@'%' to
database 'information_schema'
エラーが戻ってきます。
Connector/ODBC 5.x は MySQL 5.0
以降に対応するよう設計されており、データ定義情報を特定する
INFORMATION_SCHEMA
データベースを有効に使用しています。MySQL
4.1
のサポートは最終的なリリースで予定されています。