FAQ (Frequently Asked Questions) |
PostgreSQLで日本語がおかしい |
PostgreSQL接続時に「unknown hostname」と言われます |
PostgreSQLに接続できません |
CygwinのローカルPostgreSQL接続時に「unknown hostname 127.0.0.1」と言われます |
Oracle接続時の「ociw32.dllロードエラー」と「エラーコードがゼロのエラー」について |
「ORA-12154:TNSサービス名を解決できませんでした」について |
MySQLに接続できません |
Q. DLLはどこにおけばいいの?
「libpq.dll」や「libmysql.dll」などのDLLはWindowsのシステムディレクトリに
格納して下さい。
Windows 95/98なら「c:\windows\system\」、
Windows NT4.0/2000なら「c:\winnt\system32\」です。
※ ver1.55からは、cse.exeと同じフォルダに格納しても動作するようになりました。
Q. CSEは勝手にテーブルを作ったりしますか?
しません。
Q. CSEはレンタルサーバーなどで使えますか?
ご利用されているレンタルサーバーがDBで使用しているポートを
外部に公開していれば使用できます。
接続してみていただくのが一番手っ取り早いですが
ポート番号が標準以外のものに設定されている場合もあるので
レンタルサーバーの運営元にお尋ねください。
Q. Win2KでSHELLエラーが表示される
1.02以前のバージョンで発生します。お手数ですが、最新版をダウンロード下さい。
Q. Win2Kで日本語を入力すると例外エラーが発生する
最新版に同梱されている「RICHED32.DLL」が必要です。お手数ですが、最新版をダウンロード下さい。
Q. Win95/98/Meで日本語を入力すると例外エラーが発生する
レジストリの
「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\KnownDLLs」
以下にある「RICHED32」というエントリを削除して下さい。
※ レジストリの変更後はCSEを再起動して下さい。
※ このエントリはWin2K以降のOSではデフォルトで削除されています。
※ レジストリの変更は「regedit.exe」などが便利です。
KnownDLLsはWindowsがよく使用するDLLの場所を特定する為のレジストリです。
このキーに設定されている名前のDLLをアプリケーションが使う場合
通常の検索パス(exeと同じ位置など)にあるDLLよりも
Windowsのシステムディレクトリに格納されているDLLが優先されて使用されます。
CSEでは同梱の「RICHED32.DLL」を使用する必要があるのですが
KnownDLLsに「RICHED32」のエントリが設定されている場合
同梱のDLLではなくWindowsのシステムディレクトリ以下の
「RICHED32.DLL」が使われてしまいます。
Win95/98/Meが初期状態の場合、「RICHED32.DLL」はCSEに同梱のものと
同じ(又は互換性のある)バージョンがインストールされています。
しかし、このDLLは最新のMS Officeなどをインストールした場合に
CSEに同梱のものとは互換性のないバージョンにアップデートされる場合があります。
この場合、CSEは必要となるバージョンのRICHED32.DLLを読み込むことが出来ず
結果、日本語の入力で例外エラーを出力します。この現象を回避するには
先頭で記述した通り、KnownDLLs以下にある「RICHED32」というエントリを
削除する必要があります。Win2K以降のOSでは「RICHED32」エントリが
デフォルトで削除されているため、この問題は発生しません。
Q. Win2Kで接続画面を表示しようとするとエラーが表示される
1.30〜1.40のバージョンで発生します。お手数ですが、最新版をダウンロード下さい。
Q. SQLエクスプローラなどの位置が元に戻りません
メニューの[表示]→[配置を初期状態に戻す]で初期状態に戻すことが出来ます。
Q. 設定画面などの項目がずれて表示される
この現象は、ディスプレイの詳細でフォントサイズを「大きいフォント」に設定している場合に
発生します。現バージョンでは「大きいフォント」には対応しておりません。
「小さいフォント」でのみご利用可能です。
Q. Excelがインストールされているのに、Excel起動エラーが発生する
この現象は、Office2000へのアップグレードを行った場合などに一部の環境で発生します。
このエラーが発生する場合、Office2000インストーラによるExcelの設定が正常に行われて
いない可能性があります。
Excelの再インストールをお勧めしますが、非常手段として以下の方法で回避することが
出来ます。
レジストリに次のエントリを追加。
\HKEY_CLASSES_ROOT\Excel.Application
|-CLSID (標準){00024500-0000-0000-C000-000000000046}
|-CurVer (標準)Excel.Application.9
\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Application
|-CLSID (標準){00024500-0000-0000-C000-000000000046}
|-CurVer (標準)Excel.Application.9
※ これはあくまで非常手段ですので自己責任で行ってください。
Q. WinXPで「空のドキュメントの作成に失敗しました」と言われる
最新版に同梱されている「GAPI32.DLL」が必要です。お手数ですが、最新版をダウンロード下さい。
Q. SELECT * FROM ???? が実行されたままになる
一度に扱うデータの量が多い場合、処理に時間がかかります。
データの件数が千件を超える場合は、全てのデータを開かずに、
条件を指定するなどして扱うデータの件数を減らして下さい。
又、全てのデータが必要な場合はCSVで出力するなどの
代替手段を取って下さい。
※ コンソールスプレッドへのデータ出力のパフォーマンスに関しては
出来るだけ改善したいと考えています。
Q. DBに接続した後、例外エラーが発生します
DBアクセス用のDLLを動作環境のページで紹介されているDLLと交換して下さい。
Q. 定義書出力時に「シートを設定中エラー」が発生する
この現象はプリンタの設定が行われていない場合や
プリンタがオフラインになっている場合に発生します。
プリンタの設定をご確認下さい。
Q. PostgreSQLで日本語がおかしい
PostgreSQLで日本語を扱うには、サーバーがマルチバイト対応で
かつ、データベースのエンコーディングがEUC_JP(又はUNICODE)に設定されている
必要があります。
この場合、PostgreSQLサーバーは自動的にエンコーディングを変換します。
エンコーディングの変換イメージは次のようになります。
データベースのエンコーディングがEUC_JPになっているかどうかは
DBエクスプローラで確認できます。
SQL文で確認するなら、
「select encoding from pg_database where datname = 'db名'」を
発行して下さい。返ってくる値が1ならEUC_JPになっています。
Q. PostgreSQL接続時に「unknown hostname」と言われます
これは、サーバーの情報がLMHOSTSに記述されていない為に発生します。
pingは通じるのに接続出来ないという場合はネットワークの設定をご確認下さい。
Q. PostgreSQLに接続できません
色々な原因が考えられますが、一番多いのは、pg_hba.confファイルに
接続しようとしているホストの許可を記述していないケースです。
PostgreSQLでは、セキュリティの為、ホスト毎に接続許可の設定を行います。
具体的には$PGDATA直下にあるpg_hba.confというテキストファイルに
接続を許可するホストのアドレスを記述します。
試験的にPostgreSQLを触っていてセキュリティの心配が全くない場合
次の1行を入れることによって全てのホストからの接続を許可することが出来ます。
host all 0.0.0.0 0.0.0.0 trust
又、特定のホストの接続を許可する場合、次のように記述します。
host all 192.168.10.1 255.255.255.255 trust
更に、特定のネットワークからの接続を許可するには、次のように記述します。
host all 192.168.10.0 255.255.255.0 trust
その他にも、postmasterが-iオプション付きで起動していないと接続できませんし
データベース名やユーザー名、パスワードなどが間違っていれば
もちろん接続することは出来ません。
詳しくはPostgreSQLドキュメント→管理者用ガイド→クライアント認証
を参照して下さい。
Q. CygwinのローカルPostgreSQL接続時に「unknown hostname 127.0.0.1」と言われます
以下の方法で接続をお試しください。
(1)サーバー名にlocalhostを指定
(2)サーバー名に空白文字を指定
(3)サーバー名に127.0.0.1を指定
(4)サーバー名にLAN側のIPを指定
(5)サーバー名にグローバルIPを指定
以上の方法で接続出来ない場合はネットワークの設定をご確認下さい。。
Q. Oracle接続時の「ociw32.dllロードエラー」と「エラーコードがゼロのエラー」について
Oracleに接続するにはociw32.dllというDLLが必要になります。
通常このDLLはOracleホームディレクトリ以下のbinディレクトリに格納されています。
ociw32.dllが格納されているディレクトリにシステムパスが通っているかご確認下さい。
なお、cse.exeが格納されているディレクトリのパスに()など特殊な文字列が
含まれている場合にも同様の現象が発生することがあるようです。
この場合、cseのフォルダを「Program Files」などに格納してからご使用下さい。
システムパスが正常に設定されているにもかかわらずこのエラーが発生する場合、
システムに複数のOracle環境が混在している可能性があります。
※ クリーンインストールが行われている場合も、一部の環境でこのエラーが発生します。
この場合、以下の対処方法をお試しください。
@ システムパスの順序の変更
システムパスに複数のOracleパスが設定されている場合は
最新のOracleパスが先頭にくるようにシステムパスを変更して下さい。
※システムパス変更後はCSEを再起動して下さい。
A レジストリ値の変更
システムパスの変更でエラーが回避されない場合はレジストリを編集します。
「HKEY_LOCAL_MACHINE\Software\ORACLE\」以下に「ORAOCI」文字列を
次の値で作成して下さい。
Oracleクライアントバージョン | ORAOCIの値 |
Oracle8i | ORACLIENT8.DLL |
Oracle8.0.5 | ORA805.DLL |
Oracle8.0.4 | ORA804.DLL |
Oracle8.0.3 | ORA803.DLL |
Oracle7.3 | ORA73.DLL |
Oracle7.2 | ORA72.DLL |
Oracle7.1 | ORANT71.DLL |
Oracle7.0 | ORA70.DLL |
※ レジストリの変更は「regedit.exe」などが便利です。
B 古いバージョンの「ociw32.dll」の削除
レジストリの変更でもエラーが回避されない場合、Windowsのシステムディレクトリなどに
古いバージョンの「ociw32.dll」が格納されている可能性があります。
この場合、このDLLの名前を変更するか、削除して下さい。
C レジストリのORACLE_HOMEの値を変更
古いバージョンの「ociw32.dll」の削除でもエラーが回避されない場合、
レジストリの「HKEY_LOCAL_MACHINE\Software\ORACLE\ORACLE_HOME」の値を
適切な値に設定する必要があります。
「HKEY_LOCAL_MACHINE\Software\ORACLE」以下のORACLE_HOMEの値を
「C:\Oracle\Ora81」など最新のOracleのホームディレクトリのPATHに
変更して下さい。
D 上記の方法でエラーが回避されない場合
上記の方法でエラーが回避されない場合は、お手数ですが
つみきソフトウェア CSEサポートまでメール下さい。
Q. 「ORA-12154:TNSサービス名を解決できませんでした」について
システムに複数のOracle環境が混在している場合にこのエラーが
発生するようです。対処方法はひとつ上のFAQ
Oracle接続時の「ociw32.dllロードエラー」と「エラーコードがゼロのエラー」についてと同様です。
Q. MySQLに接続できません
色々な原因が考えられますが、一番多いのはユーザーや接続しようとしているホストに
アクセス権限がないケースです。
MySQLではホストやユーザー、データベースの組み合わせによって権限を設定します。
具体的な例をあげると
ホスト「192.168.10.1」からアクセスするユーザー「tsumiki」を作成する場合
次のようなSQL文を実行します。
GRANT ALL ON *.* TO tsumiki@192.168.10.1 IDENTIFIED BY 'password'
この場合、全てのデータベースに対して全ての権限を持つユーザー「tsumiki」が
作成されます。ただし、「tsumiki」はホスト「192.168.10.1」からしか
接続することが出来ません。
作成されたユーザーの情報は「mysql」データベースの「user」テーブルに格納されます。
エラーが発生した場合は、エラーメッセージをきちんと読んで、このuserテーブルを
編集して、設定を変更して下さい。
「user」テーブルを編集した場合、SQLで「FLUSH PRIVILEGES」を実行して権限の再読込を
行う必要があります。
詳しくは
MySQLドキュメント
→4 MySQL Database Administration
→4.2 General Security Issues and the MySQL Access Privilege System
→4.2.8 Access Control, Stage 1: 接続の承認
を参照して下さい。