接続時の動作や文字化けについて

接続時の動作について

QueryBookは初回接続時に対象DBのスキーマ情報のうち、テーブル一覧とフィールド一覧、インデックス一覧を一括で取得します。そして取得したスキーマ情報はQueryBookの起動ディレクトリ下に保存され、次回接続時は保存されたスキーマ情報を使用します。また、テーブル設計書とリンクする場合、その情報もスキーマ情報と同じファイル内に保存されます。初回接続には時間がかかりますが、次回以降は早くなります。

 ※一括取得しないモードもあります。接続設定のその他の設定で全カラム情報事前取得をFalseにしてください。

注意事項

・テーブル一覧が表示されない。

ADOのスキーマ取得APIは規格がゆるゆるのため、使用するOleDBドライバーにより挙動が著しく異なります。QueryBookは何とかして最低限テーブル一覧だけでも取得すること試みますが、何にも取得できないことがあります。このような場合は、ドライバーを変えてみる、接続文字列で取得するカタログやスキーマを限定する、カタログ、スキーマの取得フィルタを設定するなど試みてください。また、どうしてもテーブル一覧が取得できない場合でも、ツリー表示でDBツリーの上から掘り下げて行けばテーブルが見えることもあります。

また、UniDAC接続の場合、接続設定に Schema ってのがある場合があります。特にOracleの場合はここを設定しないと上手くいかないことが多いです。

・初回接続に非常に長い時間がかかる。

単純に接続がうまく行かないだけですといずれタイムアウトしますが、稀に大量のスキーマ情報を取得しに行って帰ってこなくなることがあります。こんなときは、タスクマネージャで落として、上記のようにドライバや接続文字列、Schema、取得フィルターの設定を見直してください。それか接続設定のその他の設定で全カラム情報事前取得をFalseにしてください。

※Schemaって概念のあるDBに接続する場合は、必ず取得フィルターやUniDACのSchemaを設定してください。ユーザーの権限が強いとエライことになります。

・激しく文字化けする。

現状のQueryBookはUNICODE表示ですので、S-JISとの変換で一部の怪しい文字が化けることがありますが、激しく文字化けする場合は大概DBとドライバーの設定の問題です。
ADO接続での文字化けについては経験的にはODBC経由にすると解決する場合が多いですね。

※ADO接続でOracleを使用する場合、スキーマ変換はMS製のプロバイダーの方が安定しているような気がしますが、Oracle製プロバイダの方が文字化けしにくいようです。
※UniDAC接続の場合は、Ansi系DBの場合 UseUnicodeをFalseとしてください。

・DBの構成が反映されない。

DBの構成が変わった場合、最新の情報を再取得する必要があります。接続メニューでで「スキーマ再取得」を実行してください。。