MySQLにODBC接続
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
technonomori
投稿数: 22
![半人前 半人前](../../uploads/rank3dbf8e94a6f72.gif)
お世話になっております。
MySQLにODBCで接続しています。
・クライアント
Windows10+Xpa3.1a+MySQL ODBC 3.51 Driver+Character set:cp932
・サーバ
CentOS+MySQL5.0.95
default-character-set = utf8
既に作られているテーブルから定義取得でテーブルリポジトリに登録できました。
CTRL+G:APGのタスクタイプオンラインでテーブルを開くと、先頭の一行しか表示されないのです。上下、PageUp、PageDown、Home、End押しても一行しか表示されません。なぜか位置付けをすると、全行表示されます。
APGをバッチにしただけの全行通すプログラムでも一行しか処理されないようです。(オプションタブのオプションをYesで確認)
どのようにしたら解決できますでしょうか。
宜しくお願いします。
MySQLにODBCで接続しています。
・クライアント
Windows10+Xpa3.1a+MySQL ODBC 3.51 Driver+Character set:cp932
・サーバ
CentOS+MySQL5.0.95
default-character-set = utf8
既に作られているテーブルから定義取得でテーブルリポジトリに登録できました。
CTRL+G:APGのタスクタイプオンラインでテーブルを開くと、先頭の一行しか表示されないのです。上下、PageUp、PageDown、Home、End押しても一行しか表示されません。なぜか位置付けをすると、全行表示されます。
APGをバッチにしただけの全行通すプログラムでも一行しか処理されないようです。(オプションタブのオプションをYesで確認)
どのようにしたら解決できますでしょうか。
宜しくお願いします。
投票数:0
平均点:0.00
ISHIJIMA
居住地: 静岡県
投稿数: 1827
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
ログ等を採取してどんなSQL文が発行されているか確認されてみてはいかがでしょうか?
投票数:0
平均点:0.00
technonomori
投稿数: 22
![半人前 半人前](../../uploads/rank3dbf8e94a6f72.gif)
お返事ありがとうございます。
ODBCのログを採取しましたところ、APG実行の際に二つのSQLが発行されていました。
一つはTABLE情報を取得するSELECT文
二つは該当テーブルの各項目のプライマリキーに沿うデータを取得するSELECT文
両方、ターミナルから発行してみましたが想定通り、情報の表示と全行のテーブル内データの一覧が行われました。
問題の一行だけというような動きではないですね。
ODBCのログを採取しましたところ、APG実行の際に二つのSQLが発行されていました。
一つはTABLE情報を取得するSELECT文
二つは該当テーブルの各項目のプライマリキーに沿うデータを取得するSELECT文
両方、ターミナルから発行してみましたが想定通り、情報の表示と全行のテーブル内データの一覧が行われました。
問題の一行だけというような動きではないですね。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
MySQLをODBC経由でExcelとかにつないだ場合はどうですか?
投票数:0
平均点:0.00
technonomori
投稿数: 22
![半人前 半人前](../../uploads/rank3dbf8e94a6f72.gif)
お返事ありがとうございます。
Excelのその他のデータソースから外部データの取込を実行してみました。
全項目の全行が取得、表示できました。
問題の一行だけということはありませんでした。
Excelのその他のデータソースから外部データの取込を実行してみました。
全項目の全行が取得、表示できました。
問題の一行だけということはありませんでした。
投票数:0
平均点:0.00
ISHIJIMA
居住地: 静岡県
投稿数: 1827
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
となるとxpaのODBCの問題なのかなと思いますがODBCはベータ版なのでサポートに問い合わせしてもだめかな・・・・
位置づけをしてできるのであればそれで何とか回避するとか・・・
あとすべてのテーブルで同じ現象になるのかな・・・
位置づけをしてできるのであればそれで何とか回避するとか・・・
あとすべてのテーブルで同じ現象になるのかな・・・
投票数:0
平均点:0.00
ISHIJIMA
居住地: 静岡県
投稿数: 1827
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
すべてのテーブルでならないのであれば定義取得した情報に何か問題がある可能性はありますね
投票数:0
平均点:0.00
technonomori
投稿数: 22
![半人前 半人前](../../uploads/rank3dbf8e94a6f72.gif)
お返事ありがとうございます。
いくつかのテーブルでやってみましたが同じ現象でした。
マイグレーションしたプロジェクトが原因なのかと、新規で作成したプロジェクトでやってみても同じでした。
とりあえず、プライマリキーの範囲開始に、0などを指定してやると、オンラインでもバッチでも全行(正確には開始0以降)表示され、想定通りの動きをするようです。
範囲に指定せずとも全行出力されるようになれば良いのですが。
いくつかのテーブルでやってみましたが同じ現象でした。
マイグレーションしたプロジェクトが原因なのかと、新規で作成したプロジェクトでやってみても同じでした。
とりあえず、プライマリキーの範囲開始に、0などを指定してやると、オンラインでもバッチでも全行(正確には開始0以降)表示され、想定通りの動きをするようです。
範囲に指定せずとも全行出力されるようになれば良いのですが。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
ひょっとすると、CndRange()関数にまつわる問題なのかもしれませんね。動きからすると、そのような気がします。
投票数:0
平均点:0.00
technonomori
投稿数: 22
![半人前 半人前](../../uploads/rank3dbf8e94a6f72.gif)
ご返信ありがとうございます。
仰ることは何となくですがわかるような気がします。
キーなのか型なのか、その辺りなのかなと見当しています。
ただCndRange()関数はある条件の時だけ範囲位置付けを指定したいがそれ以外は指定したくない場合に使用する関数と認識しています。今回の問題は同じような状況ですが、真逆なのかなと思います。
逆ですが動きというか動作として共通するものを感じます。
位置付けをしても、全範囲が表示されますので。
かつ全範囲が表示される操作として、一番左の項目で、更に左を押すと全範囲表示されますね。不思議です。
仰ることは何となくですがわかるような気がします。
キーなのか型なのか、その辺りなのかなと見当しています。
ただCndRange()関数はある条件の時だけ範囲位置付けを指定したいがそれ以外は指定したくない場合に使用する関数と認識しています。今回の問題は同じような状況ですが、真逆なのかなと思います。
逆ですが動きというか動作として共通するものを感じます。
位置付けをしても、全範囲が表示されますので。
かつ全範囲が表示される操作として、一番左の項目で、更に左を押すと全範囲表示されますね。不思議です。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
はい、そうなんです。私も真逆なところが気になっていて、何もしないと何かの設定が効いてしまっているような気がします。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
関係ないかもしれませんが、ODBCドライバーを古いバージョンに戻したら、ある不具合が直った、という投稿がアメリカの英語版Magicのフォーラムに出ていました。
投票数:0
平均点:0.00
technonomori
投稿数: 22
![半人前 半人前](../../uploads/rank3dbf8e94a6f72.gif)
お返事ありがとうございます。
この場合のODBCドライバーはMySQLのODBCドライバでしょうか?
Xpaのゲートウェイでしょうか?
MySQLのODBCドライバは既存MySQLに合わせて最新のものではなく、あえて古いドライバ(3.51)を使用しております。これ以上古いものは公式サイトから見つけることはできませんでした。逆に最新のものは認証系に差異があり使用できないのです。
この場合のODBCドライバーはMySQLのODBCドライバでしょうか?
Xpaのゲートウェイでしょうか?
MySQLのODBCドライバは既存MySQLに合わせて最新のものではなく、あえて古いドライバ(3.51)を使用しております。これ以上古いものは公式サイトから見つけることはできませんでした。逆に最新のものは認証系に差異があり使用できないのです。
投票数:0
平均点:0.00
Tanda
投稿数: 2151
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
MySQL側のODBCドライバです。
投票数:0
平均点:0.00