web-dev-qa-db-ja.com

CygwinでのSQLite3の使用

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コマンドのプロンプトに戻る必要があります。

7
jmq

インタラクティブな非Cygwinプログラムは、疑似端末( "pty")デバイスに基づくminttyなどのCygwin端末では正しく機能しないことがよくあります。これは、CygwinがWindowsパイプを使用してptyをエミュレートするため、ネイティブコンソールプログラムは、コンソールを表示する予定の場所にパイプを表示するためです。他の問題の中でも、それはしばしば彼らが非対話型モードに入ることを引き起こします。詳細については、こちらをご覧ください。

http://code.google.com/p/mintty/issues/detail?id=56

-interactiveスイッチを使用すると、問題なく動作するようになる可能性がありますが、実際の解決策は、Cygwin setup.exe を介してCygwinバージョンのsqlite3をインストールすることです。

10
ak2

コマンドでCygwinを起動する

C:\cygwin\Cygwin.bat

の代わりに

C:\cygwin\bin\mintty.exe
2
Chentuo

よくわかりません。

 ~>sqlite3

2番目の〜> sqlite3の後に「ハング」しますか?

その時点で、sqlite3を実行していませんか?プロンプトに戻りました。最初は、ヘルプを表示するだけで、プログラムは終了しました。 sqlite3.exeを単独で入力するか、sqlite3.exeplaces.sqliteのように開くデータベースを指定します。その後、プログラムは開いたままになり、コマンドを待ちます。

(私はcygwinやminttyの知識がないので、私を失望させる可能性がありますか?)

0
therube

Cygwinで動作するためにSQLiteが特に必要でない限り、 Windows用のSQLite ODBCドライバー の方が適している場合があります。これにより、WindowsネイティブでODBCを介してSQLiteデータベースにアクセスできるため、OpenOfficeBaseやMicrosoftAccessなどのプログラムやその他の多くのプログラムが接続して使用できます。

0
amphetamachine