mysql:11495
From: Ryuji Matsushita <Ryuji Matsushita <maturyu@xxxxxxxxxx>>
Date: Wed, 01 Jun 2005 18:04:28 +0900
Subject: [mysql 11495] Re: ODBC経由で、time型の取り扱いについて
松下と申します リンクを張った状態でACCESSではかなり制限があります http://dev.mysql.com/doc/mysql/ja/myodbc-clients.html を一読することをおすすめします 特にTIMESTAMP型のフィールド等実装やODBCの細かいバージョン3.51.×× などが気になるところですね。 > Access > > Access を動作させるには、以下の処理を実行する。 > > Access 2000 を使用している場合、http://www.microsoft.com/data/ から最新(バージョン 2.6 以降)の Microsoft MDAC(Microsoft Data Access Components)をダウンロードし、インストールする必要がある。これによって、MySQL にデータをエクスポートする際にテーブル名およびカラム名が指定されないという Access のバグが修正される。このバグは、MyODBC バージョン 2.50.33 および MySQL バージョン 3.23.x にアップグレードすることによって回避することもできる。 > > その他に、http://support.microsoft.com/support/kb/articles/Q 239/1/14.ASP で公開されている Microsoft Jet 4.0 サービスパック 5 をダウンロードし、適用する必要もある。これは、Access でカラムが #deleted# とマークされる場合があるバグを修正する。 > > 注意: MySQL バージョン 3.22 を使用している場合、この問題を回避するには、MDAC パッチを適用し、MyODBC 2.50.32 または 2.50.34 以降を使用する必要がある。 > > Access のすべてのバージョンで、MyODBC のオプションフラグ Return matching rows を有効にする必要がある。Access 2.0 では、さらに Simulate ODBC 1.0 を有効にする必要がある。 > > 更新可能にするすべてのテーブルでタイムスタンプ型のカラムを定義する必要がある。移植性を最大にするために、TIMESTAMP(14) または単純な TIMESTAMP を、TIMESTAMP(X) の代わりに使用することが推奨される。 > > テーブルに主キーを定義する必要がある。これを定義しない場合、新しく追加したレコードまたは更新したレコードが #DELETED# として表示される可能性がある。 > > DOUBLE 浮動小数点型のフィールドだけを使用する。Access では、単精度浮動小数点型の値を比較できない。その結果、表面上は、新しく追加したレコードまたは更新されたレコードが #DELETED# として表示されたり、レコードを検索または更新できないという現象が発生する。 > > BIGINT 型のカラムを持つテーブルを MyODBC 経由でリンクしている場合、結果が #DELETED として表示される。以下に回避策を示す。 > > データ型が TIMESTAMP、できれば TIMESTAMP(14) のダミーカラムを 1 つ追加する。 > > ODBC DSN アドミニストレータの接続オプションを指定するダイアログボックスで、'Change BIGINT columns to INT' をオンにする。 > > Access からテーブルリンクを削除し、再作成する。 > > 上記の回避策を実行した後も、既存のレコードは #DELETED# として表示されたままだが、新しく追加または更新されたレコードは正しく表示されるようになる。 > > TIMESTAMP 型カラムを追加した後でもエラー Another user has changed your data が発生する場合、次の対策で解決する可能性がある。 > > テーブルデータシートビューを使用しない。代わりに必要なフィールドを定義したフォームを作成し、フォームデータシートビューを使用する。TIMESTAMP 型カラムの DefaultValue プロパティを NOW() に設定する必要がある。このテーブルを使用するユーザが混乱しないように、TIMESTAMP 型カラムを非表示にすることも 1 つの方法である。 > > 場合によっては、Access が、MySQL が解釈できない不正な SQL クエリを生成する可能性がある。これは、Access のメニューから "Query|SQLSpecific|Pass-Through" を選択することによって修正できる。 > > NT 上で動作する Access が BLOB 型カラムを OLE OBJECTS 型として報告する。代わりに MEMO 型カラムを使用する場合は、ALTER TABLE を使用してカラムを TEXT 型に変更する必要がある。 > > Access が DATE 型カラムを正しく処理できない場合がある。この問題が発生する場合、カラムを DATETIME 型に変更する。 > > Access で BYTE 型として定義されているカラムを使用している場合、Access はこのカラムを、TINYINT UNSIGNED 型ではなく、TINYINT 型としてエクスポートしようとする。この場合、カラムに 127 より大きい値が格納されていると問題が発生する。 > こんにちは。初めてメールします。 > > ODBC経由でAccessのリンクテーブルを作成しています。 > 時刻の表示をさせたいのですが、Accessの日付時刻型では > 表示できない状態です。 > > 例)MYSQLのデータ > date(date型) time(time型) > 2005-03-30 23:10:12 > 2005-04-20 10:14:52 > 2005-05-11 12:34:22 > 2005-05-32 16:10:19 > > 例)Accessでの表示 > date(日付時刻型) time(日付時刻型) > 2005/03/30 2024/12/23 > 2005/04/20 2024/12/26 > 2005/05/11 2024/12/26 > 2005/05/32 2024/12/26 > ※timeというデータ型にAccessが対応していないのか? > 時刻を表示することが出来ません。 > > > 原因をご存知の方いらっしゃったらアドバイスいただけないでしょうか? > よろしくお願いします。 > > 使用しているバージョン。 > MySQL 4.1.11 > MySQL ODBC 3.51 > Access2000 > +++++++++++++++++++++++++++++++++++++++++++++++++++ Sony Digital Network Applications Inc.(SDNA) Navigation Track Information System 松下 龍士(Ryuji Matsushita) maturyu@xxxxxxxxxx +++++++++++++++++++++++++++++++++++++++++++++++++++
11494 2005-06-01 17:52 ["nobuko" <nobukos@xx] ODBC経由で、time型の取り扱いについて -> 11495 2005-06-01 18:04 ┗[Ryuji Matsushita <ma] 11533 2005-06-03 09:12 ┗["nobuko" <nobukos@xx]