Cygwinのminttyターミナルでsqlite3.exeコマンドShellを使用しようとしています。 Windowsコマンドプロンプトからプログラムを試しましたが、動作します。 cygwin minttyターミナルから使用しようとすると、プログラムがハングしているように見えます。パラメータとバージョンが表示されます。シェルを実行すると、端末への書き込みが停止するようです。
他の誰かが以前にこの問題を抱えていましたか?もしそうなら、どのようにそれを修正しましたか? TIA。
~>sqlite3 -help
Usage: C:\Windows\sqlite3.exe [OPTIONS] FILENAME [SQL]
FILENAME is the name of an SQLite database. A new database is created
if the file does not previously exist.
OPTIONS include:
-init filename read/process named file
-echo print commands before execution
-[no]header turn headers on or off
-bail stop after hitting an error
-interactive force interactive I/O
-batch force batch I/O
-column set output mode to 'column'
-csv set output mode to 'csv'
-html set output mode to HTML
-line set output mode to 'line'
-list set output mode to 'list'
-separator 'x' set output field separator (|)
-nullvalue 'text' set text string for NULL values
-version show SQLite version
~>sqlite3
これはそれがぶら下がっているところです。以下は、関連するソフトウェアのいくつかのバージョンです。
~>uname -srv
CYGWIN_NT-6.1-WOW64 1.7.7(0.230/5/3) 2010-08-31 09:58
~>mintty --version
mintty 0.9.5
(C) 2010 Andy Koppe
~>bash -version
bash -version
GNU bash, version 4.1.9(3)-release (i686-pc-cygwin)
Copyright (C) 2009 Free Software Foundation, Inc.
[〜#〜] edit [〜#〜]:Windowsコマンドラインからプログラムを実行すると、プログラムは機能します。これは私が見るべきものです:
C:\Users\jmquigley\workspace\apis.net\sqlite>sqlite3
SQLite version 3.7.5
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .quit
Cygwinでコマンドを実行すると、シェルに入ることはありません。ハングアップしたように見えます。CTRL+ Cを押して強制終了し、bashコマンドのプロンプトに戻る必要があります。
インタラクティブな非Cygwinプログラムは、疑似端末( "pty")デバイスに基づくminttyなどのCygwin端末では正しく機能しないことがよくあります。これは、CygwinがWindowsパイプを使用してptyをエミュレートするため、ネイティブコンソールプログラムは、コンソールを表示する予定の場所にパイプを表示するためです。他の問題の中でも、それはしばしば彼らが非対話型モードに入ることを引き起こします。詳細については、こちらをご覧ください。
http://code.google.com/p/mintty/issues/detail?id=56
-interactive
スイッチを使用すると、問題なく動作するようになる可能性がありますが、実際の解決策は、Cygwin setup.exe を介してCygwinバージョンのsqlite3をインストールすることです。
コマンドでCygwinを起動する
C:\cygwin\Cygwin.bat
の代わりに
C:\cygwin\bin\mintty.exe
よくわかりません。
~>sqlite3
2番目の〜> sqlite3の後に「ハング」しますか?
その時点で、sqlite3を実行していませんか?プロンプトに戻りました。最初は、ヘルプを表示するだけで、プログラムは終了しました。 sqlite3.exeを単独で入力するか、sqlite3.exeplaces.sqliteのように開くデータベースを指定します。その後、プログラムは開いたままになり、コマンドを待ちます。
(私はcygwinやminttyの知識がないので、私を失望させる可能性がありますか?)
Cygwinで動作するためにSQLiteが特に必要でない限り、 Windows用のSQLite ODBCドライバー の方が適している場合があります。これにより、WindowsネイティブでODBCを介してSQLiteデータベースにアクセスできるため、OpenOfficeBaseやMicrosoftAccessなどのプログラムやその他の多くのプログラムが接続して使用できます。