sqliteを語るスレ

このエントリーをはてなブックマークに追加
1名無しさん@お腹いっぱい。
とりあえず立てときますた

参考:http://www.sqlite.org
2名無しさん@お腹いっぱい。:03/06/30 16:02 ID:???
>>2またお前かよ、なんなんだよ「2」ってのは、何か楽しいのか?お前さぁ、みんなが楽しく話してるところに近付いただけでススーっと目を合わさずに去られたって事ってないか?
なに? いつだってそうなのか?まぁ、そうだろうな。一般社会ではお前みたいにキモいヤツは相手にしたくないんだよお前はネットの中でも「おマメ」みたいなもんだからな
引きこもった挙げ句、朝からネットにかじりついてスレが立つのを一日中待ち、すかさず「2」と書き込む。 つまんねえ人生だな
みんなが書き込む掲示板に「2」って書き込んだことで自分も社会に参加してるつもりになってんだろ
それにしてもさぁ、もう少し考えろよなんとか社会復帰しようと一晩中考えて出来たギャグが「2」かよ!!
おまえさぁ、一度外に出て人が話してるところでいきなり「2!」って言ってみろよ!もうダメなんだよ、無理なんだよ、お前には
ネット社会ですらコミュニケーションとれてないじゃんわからないだろうけどさぁ
みんな苦虫を噛み潰すような目でお前の自信作の「2」を見てるんだよそう、もう終わりにしようよ、この先楽しい事なんかないんだよ、きっと。

3名無しさん@お腹いっぱい。:03/06/30 21:49 ID:???
誰か使ってる人いませんか?
4nobodyさん:03/07/01 18:36 ID:KD9GbSVt
PHP5でデフォルトでバンドルになったはいいけど、
Windows + Apache + MySQL + phpMyAdmin 環境で
ずっとテストやってたからとりあえずどうしていいかわかんないや。

PEAR DBはまだサポートしてないんですよね?
んでもってphpMyAdminみたいなツールはSQLiteにはあるのかなあ。

まあPHP5デフォルトバンドルになる以上、
今後お付き合いしていくのは間違いないだろうと思われるので期待あげ。
詳しい方解説きぼん。
5名無しさん@お腹いっぱい。:03/07/12 11:37 ID:???
>んでもってphpMyAdminみたいなツールはSQLiteにはあるのかなあ。

ない。全部コマンドラインで頑張るのが漢のロマン。
ツール欲しかったらそれこそMySQLでやればいい、的なものだからねえ…。
6あぼーん:あぼーん
あぼーん
7ぼるじょあ ◆ySd1dMH5Gk :03/08/02 05:11 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ
8あぼーん:あぼーん
あぼーん
9山崎 渉:03/08/15 22:12 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
10山崎 渉:03/08/15 22:36 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
11NAME IS NULL:03/10/19 03:06 ID:fcozYorT
PEARのsqlite試し中
期待age
12あぼーん:あぼーん
あぼーん
13NAME IS NULL:03/10/23 21:14 ID:w0drDQcj
NUT NULLって書いたのにテーブルできてる・・・
スキーマダンプしてもNUT NULL・・・
ていうか誰も使ってないのかよぅ
14NAME IS NULL:03/10/29 09:35 ID:???
情報少なすぎです。
15NAME IS NULL:03/10/29 22:13 ID:i9iRWIvB
>>14
少ないからこそ話し合おうやないかと。
とりあえずはオフィシャルのマニュアルでなんとかいける。

PHPでPEAR DBインターフェイスで使ってます。
コマンドラインからCSVから一括インポートできないのが今面倒。
それくらい自分で作れってわかってはいるけど。
あと、完全なカラム名入りのINSERT文でダンプできないのも面倒。
16NAME IS NULL:03/11/05 13:36 ID:???
delphiのラッパーでやろうと思ってるんだけど、、、
17NAME IS NULL:03/11/06 22:49 ID:???
こんなツールもありますね。
SQLiteデータベースを操作するGUIツール。

SQLiteCC
http://bobmanc.home.comcast.net/sqlitecc.html
> SQLite Control Center is a visual tool for working with
> SQLite database files.

スクリーンショットはこちら。
http://home.comcast.net/~bobmanc/sqlitecc.jpg
http://home.comcast.net/~bobmanc/sqlitecc2.jpg
18NAME IS NULL:03/11/15 19:28 ID:pb0zFJJB
sqliteのワイド文字対応版ってない?
19NAME IS NULL:03/11/26 09:28 ID:hrsdO7GB
.NETユーザーにとても便利。
SQLite用のADO.NETデータプロバイダSQLite.NET登場。
http://sourceforge.net/projects/adodotnetsqlite
まだα版ながら.NET Framework上ですでに動作。
これでODBCドライバもDSN登録もいらなくなった。
20NAME IS NULL:03/11/29 15:59 ID:BZztAbw6
SQLでデータベースを操作するGUIツールなら、SQLite専用を考えなくても、
ODBCで接続してくれる汎用のものを使えばいいよ。というか、それが普通。
定番は「Common SQL Environment」かな。->
http://www.hi-ho.ne.jp/tsumiki/
同じフリーウェアの範囲だけでも、
「ぷれぷれPlus」 http://www.geocities.jp/nai_777/
「ODBC Order」 http://homepage2.nifty.com/KENCH/
もSQLiteに使えている。どれも日本製だからちゃんと日本語データが通る。
むろんどれ使うときも、まずはSQLite用のODBCドライバをインストールして
データソースネームを登録してDSNで接続する。
21NAME IS NULL:03/11/29 21:01 ID:???
>>20
情報ありがとう。でも、

> まずはSQLite用のODBCドライバをインストールして
> データソースネームを登録して

これが面倒(と感じる人もいるよね)。
22NAME IS NULL:03/12/01 00:51 ID:???
PHPで使おうと思ってるんですが、日本語(EUC)は通りますか?
2320:03/12/01 09:34 ID:O/R85Nmb
ODBCドライバのインストールは一度やっとけばいいやと思うけれども、
データソースネームの登録をデータベースごとにいちいちやるのは
本当にうっとうしい操作で嫌いです。
でも今の所こうするしかないようで・・・いい手あったら教えて下さい。
JScriptやVBScriptなどからSQLiteやJetを使うときは 、
DSNなしでドライバ名とファイル名を直接指定する接続の方を
使っちゃうんですが、この手はどこでも通用するわけではないようで。
24NAME IS NULL:03/12/01 16:34 ID:???
API経由で作れるんだから、必要なときにその場でスクリプトから
作ってしまうのはどうか
25名無しさん@Linuxザウルス:03/12/01 19:55 ID:fM+FlLdE
コンパクトなので組込用途にも使えそうでつ。
2623:03/12/02 09:12 ID:UGNuLnLW
>>24
データソースネームの登録をスクリプトからしてしまうということでしょか。
できるかも。方法を調べてみます。
2723:03/12/02 10:31 ID:/D3psl+q
ありました。DSN登録はスクリプトでもできそうです。
「ファイルDSNを使用して接続する」
http://homepage2.nifty.com/inform/vbdb/filedsn.htm
というVBでのサンプルみつけました。これを応用すればできそうです。
2823:03/12/02 11:00 ID:/D3psl+q
あれ。APIを使うならこっちでしたか。
「ODBCデータソースの登録・削除 (API) 」
http://homepage2.nifty.com/inform/vbdb/api_dsn.htm
何度も失礼しました。
29NAME IS NULL:03/12/05 14:41 ID:zpfAzYND
100行ほどのデータを
SQLiteとMySQLにつっこんで、
それぞれ一万回selectしてみたけど、
MySQLの方が速かった…

↓一万回selectにかかった時間
 SQLite        MySQL
2.0537250042     1.35091304779
1.91771602631     1.58153700829
2.04412007332     1.39080893993
1.93604099751     1.38392806053
1.98756504059     1.34185707569
30NAME IS NULL:03/12/05 22:33 ID:???
>>29
何回おきにcommitした?
31NAME IS NULL:03/12/05 22:34 ID:???
ああ、INSERTと読み間違えた。
ごめんなさい。
32NAME IS NULL:03/12/06 07:47 ID:Y3cvNAdD
データ投入のスピードはどうよ、おねーさん
33NAME IS NULL:03/12/06 21:12 ID:???
sqlite_create_function() や sqlite_create_aggregate() って
どんなことに使ってる?
34NAME IS NULL:03/12/07 18:13 ID:???
>>29
SQLiteの設定値は?
速度あげるためにチューニングした?
35NAME IS NULL:03/12/07 22:27 ID:???
>>34
そんなチューニングがあるのかい?
36NAME IS NULL:03/12/09 01:31 ID:???
MySQL使わない?としてSQLiteを使うのだろうか?
PHPにSQLiteが搭載されてもPostgreを使うのではと思う俺。
いやいやMySQLが擦り寄ってくるのでは?と期待する俺。


          正直なところSQLiteはどうだい?
37いなむらきよし:03/12/09 13:39 ID:90H4pzxx
キケー!
38NAME IS NULL:03/12/09 23:33 ID:???
とあるオンラインソフトを作ってるんですが、
データ量が多くなってきたのでデータベースを導入しようと思っていた矢先に
SQLite を見つけました。
ソースコードから全部結合させて SQLite を内包させちゃいます。
(これが組み込みってやつですよね?)
これから追っていくつもりなのでよろしくです。
ちなみに DB は初心者です。
3938:03/12/12 23:07 ID:fEBGkoUY
オンラインソフトってのは、Windows 用のフリーソフトとか
シェアウェアとかです。
既存のソフトのデータベースを SQLite のデータベースに変換する
プログラムを書いたんですが、以外と遅いですね。
40NAME IS NULL:03/12/13 09:27 ID:???
>>39
そゆ書き方をすると「SQLiteって遅いのか」というイメージだけが広がって
「遅いからクソ」とか自分は知りもしないのにけなす奴が増えていく悪寒
4138:03/12/13 20:07 ID:???
>>40
ごめんなさい。私がまさにそういうイメージを植え付けられて試していたフシがあります。
で、TRANSACTION 化(って言うのかな?)すると十分に実用的な速度になりました。
だいたい10万件くらいのデータを変換したんですが、所要時間のほとんどが
SQL 文を作る処理で、SQLite の速度はめちゃ速かったです。
フリーソフトとかに組み込むような用途では SQLite 以外の
選択肢は考えられないように思います。速いし。
42NAME IS NULL:03/12/14 14:35 ID:???
>>40
そゆ書き方をすると「SQLiteって遅いのか」というイメージだけが広がって
「遅いからクソ」とか自分は知りもしないのにけなす奴が増えていく悪寒

>>41
比較などの詳細をキボンヌ。
4338:03/12/18 01:01 ID:???
SQLiteCC をちょっぴり日本語化してみました。
グリッドに日本語を表示できます。グリッドで更新もできます。
クエリー部では日本語を使えません。ごめんなさい。
http://d.hatena.ne.jp/halts/20031217#1071676215

>>42
そのうち。
44NAME IS NULL:03/12/23 13:03 ID:???
WEB+DB PRESS Vol.18 pp.86-94
45NAME IS NULL:04/01/02 14:56 ID:cP+5Z7n4
SQLiteExplorer というGUIツールを知りました。外国製にしては珍しく
文字セット変更があって日本語が使える。
作者や出所が不明になっているらしいですが、下でダウンロードは可能。
http://members.rogers.com/mbi/software/software_index.htm
46NAME IS NULL:04/01/02 17:19 ID:GTnsxWCQ
データ型のないSQLiteで、型の宣言をしています?
(1) 無意味だからやらない。 (2) 目印になるからやる。
(3) しないよりした方がいいと言う人がいるからやる。
(4) するとやっかいな結果になるからやらない。
など、考えていますが、どれが適当かはわかりません。
Date型を付けてしまって、後悔したことがあります。
読むときにアプリのDateTime型が例外を出してきたり...
単なる目印のつもりはまずいことがある。ということはメリットは?
Integerも要注意みたい。
47NAME IS NULL:04/01/02 21:34 ID:???
>>46
> Date型を付けてしまって、後悔したことがあります。
> 読むときにアプリのDateTime型が例外を出してきたり...

具体的にどんなことになったの?
48NAME IS NULL:04/01/05 11:44 ID:gQ8zMdLQ
NULLの扱いがよくわからん!
4946:04/01/06 10:49 ID:Pt3TSpWu
>>47
ADO.NETのDataSetに型の指定をしないデフォルトの読み込みをすると、
Date型をSQLiteで指定してあるときは、それをスキーマから読み取るようで、
.NETのDateTime型を使ったDataSetができて、データが"2004/01/02"という
形式でないと読み込みのエラーを起こすのが原因らしいです。
こういうことはADOのRecortSetでも起きるのかも。上にのってるSQLiteExplorer
でやってみるとわかる。Date型に"2004-01-02"なんていうデータでは、SQLでの
Insertはできても、読むときにはエラーになる。Integer型に"3.14"のデータでも
Double型に"テスト"でも、SQLiteは受け付けるけれど、
SQLiteExplorerは読み取り表示ができない。といったことです。
読むときの型を指定すればいいと思うかもしれないけど、SQLite専用に何でも
Stringで読む指定は何とかできるかもしれないけど、一般的には
もう汎用性がなくなって、用途によっては困ると思います。
50NAME IS NULL:04/01/06 15:45 ID:???
>>49
SQLite以前に型チャックちゃんとしようぜ。
Double型に文字列を投入しちゃうようなプログラムはダメだ。
5146:04/01/07 09:06 ID:UJmgjzrz
>>50
けっきょく、そういうことです。
型のないSQLiteに型チェックなんかないし、
型をつければ、それをスキーマから読んであてにしようとするプログラムは
あるんだから。いっそ型を付けない方が正しい。型はないんだから。
>SQLite以前に型チャックちゃんとしようぜ。
52NAME IS NULL:04/01/07 16:10 ID:???
>>51
型はつけなよ。他のDBからテーブルをインポートしたり
エクスポートしたりするときそのまま持ってけるから便利じゃん。
君の場合は使ったADO.NETのラッパー?が型のチェックを
ちゃんとしてないだけじゃろ。
53NAME IS NULL:04/01/07 21:34 ID:???
>>49
Date型のカラムに '2004-01-02' という値が紛れ込んでてエラーになったという話ですか
どうしてそんなことに?

入力の際にそれをはねなかったのが問題だと思う
5446:04/01/08 11:00 ID:lOX/MR5Z
>>52
型はつけない方がむしろ正統と結論にしたのは、
型をつけて利用することの方が裏技に近いものと思った、ということです。
うまく使えば便利かも。

ADOやADO.NETがデータベースに付けられた型を見たあとそれをどう料理するかは、
もっと調べてみる。

>>53
元はMySQLのデータベースに入れてたデータなんです。
MySQLは Date型の書式に ISO準拠の国際標準書式"yyyy-mm-dd"を採用していて、これ以外ははねられる。
だからこれをSQLiteにそのままインポートしても全部 '2004-01-02'の書式。日付は例でした。
変換してからインポートが正しい? ISO書式じゃだめ?
どうせSQLiteは Date型にすれば日付計算がサポートされるなんてわけないから、
Date型を付けなけりゃうまくいったのに、との後悔だったんだけど・・・
5546:04/01/08 14:50 ID:wdL+QGFi
>>52
ラッパーの件がありました。たぶん、そこの問題じゃないです。
ADO.NETでも高級な DataSetでの例だったんです。
低級で高速な DataReaderでは、明示しなけりゃDateTime型にデータを投入しませんから、
もともと問題なしです。
5646:04/01/08 17:41 ID:7mJL8ouu
型チェックのことに話は膨らんじゃってごめんなさい。
言葉たらずでしたが、"2004-01-02"のデータはミス入力のつもりではなかったんです。
元々のこのDate型の話を整理すれば、こんなことです。
次の3つは同時に成り立たない。
(1) 日付の書式に ISO書式"yyyy-mm-dd"を使う。(MySQLと同じにする)
(2) SQLiteのデータ型に Dateを付ける。
(3) ADO.NETの DataSetをオートで使う。
だから、最も不要なものをやめるとすると(2)を選ぽうか、ということだったんです。
むろん、がんばれば、他にも手はあるにしても。
「Integer型に"3.14"のデータでも、Double型に"テスト"でも、SQLiteは受け付けるけれど」
が誤解の元でした。失礼しました。
57NAME IS NULL:04/01/08 18:37 ID:???
まあこれでも読め。

** NOTES:
**
** SQLite processes all times and dates as Julian Day numbers. The
** dates and times are stored as the number of days since noon
** in Greenwich on November 24, 4714 B.C. according to the Gregorian
** calendar system.
**
** 1970-01-01 00:00:00 is JD 2440587.5
** 2000-01-01 00:00:00 is JD 2451544.5
**
** This implemention requires years to be expressed as a 4-digit number
** which means that only dates between 0000-01-01 and 9999-12-31 can
** be represented, even though julian day numbers allow a much wider
** range of dates.
**
** The Gregorian calendar system is used for all dates and times,
** even those that predate the Gregorian calendar. Historians usually
** use the Julian calendar for dates prior to 1582-10-15 and for some
** dates afterwards, depending on locale. Beware of this difference.
58NAME IS NULL:04/01/08 18:43 ID:???
ついでにこれも読めや。

/*
** Parse dates of the form
**
** YYYY-MM-DD HH:MM:SS.FFF
** YYYY-MM-DD HH:MM:SS
** YYYY-MM-DD HH:MM
** YYYY-MM-DD
**
** Write the result into the DateTime structure and return 0
** on success and 1 if the input string is not a well-formed
** date.
*/
static int parseYyyyMmDd(const char *zDate, DateTime *p){
int Y, M, D;

Y = getDigits(zDate, 4);
if( Y<0 || zDate[4]!='-' ) return 1;
zDate += 5;
M = getDigits(zDate, 2);
if( M<=0 || M>12 || zDate[2]!='-' ) return 1;
zDate += 3;
D = getDigits(zDate, 2);
if( D<=0 || D>31 ) return 1;
zDate += 2;
while( isspace(*zDate) ){ zDate++; }
if( isdigit(*zDate) ){
if( parseHhMmSs(zDate, p) ) return 1;
}else if( *zDate==0 ){
p->validHMS = 0;
}else{
return 1;
}
p->validJD = 0;
p->validYMD = 1;
p->Y = Y;
p->M = M;
p->D = D;
if( p->validTZ ){
computeJD(p);
}
return 0;
}
5946:04/01/09 10:57 ID:vDXjRDTC
>>57 >>58
ずばりサポート、ありがとうございました。
訂正: ラッパーが対応していないも正解でした。
やることが山ほどできました。
60NAME IS NULL:04/02/10 22:26 ID:1wsqz1Hs
SQLiteManagerはなかなかいい。

しかし、情報が少ないよね〜
もう少しすればいろいろ情報も出てくるんだろうけど・・・

標準の関数が少ないのが辛い。
61NAME IS NULL:04/02/20 12:01 ID:???
良さそうなDBなのに、話がなかなか進まないね。
まあ、俺も使っていないのだが。

タイプレスのDBっていうのは、
アプリ側のやる仕事が増えそうな印象があって(それが本当かどうかはしらんが)、
それでなかなか触手が伸びないのかな?
62NAME IS NULL:04/02/21 02:04 ID:UE2tYF6F
MySQL なり PostgreSQL なりと同列に考えるような Web のバックエンドとしては
アプリ側の仕事が多くて使いにくいんでしょうが,Windows や Mac ネイティブな
ソフト用の組み込み DB としてはほかに選択肢がないから sqlite が一番だと思ってます.
自分でゴリゴリと DB 操作コードを書かなくていいのは激しく楽です.
JET エンジンとかがほかの選択肢なんでしょうか.
個人的には alter table がないのが厳しい.
あと,sqlite 自身ちょくちょくバージョンアップしてるみたいですが,
どこがどう変わったか公式サイトをみてもわからないのがつらいです.
63NAME IS NULL:04/02/22 00:53 ID:???
>>62
サイトは殺伐としすぎてますよね。
sqlite 自体に必要な機能を備えさせるのは構わないけど、サイトやらドキュメントは
もっと饒舌であってほしい。
64NAME IS NULL:04/02/22 13:34 ID:84o4/Ew4
>>62
http://www.hwaci.com/sw/sqlite/changes.html
ちゃんと書いてるだろうがヴォケ。英語嫁。空気嫁。
65NAME IS NULL:04/02/22 21:58 ID:4n+LahDS
>>64
あ,ほんとだ.こっちみてますた
http://www.sqlite.org/cvstrac/timeline
つーか
http://www.sqlite.org/
からそこに辿れないのが不親切よね(辿れたらスマソ)
66NAME IS NULL:04/02/23 08:23 ID:gJFAyjPD
>>65
http://www.sqlite.org/トップの、"Current Status"の"Change Summary"じゃだめなん?
67NAME IS NULL:04/02/23 09:16 ID:xmVB1NEu
辿れたよ。スマソ(65の代筆)。
68NAME IS NULL:04/02/23 14:51 ID:???
sqlite使ってますが、型なしで困るのが日付と時刻。
表示や入力フォーマットの統一も面倒だし、
並べ換えもねえ。

PHPとかかませばいいんだろうが、sqliteそのものをダイレクトに使ってるからねえ。


69NAME IS NULL:04/02/23 16:56 ID:aEcQvCoc
最初は、alter table を使おうとして動かずあせった。
ドキュメント見直したらサポートしてない、とあって、
じゃあどうすりゃいいんだと、またもあせった。
答えは単純なのであった。
70NAME IS NULL:04/02/23 22:12 ID:???
このスレには詳しく調べる前に
すぐに文句を言っちゃう人が多いですね・・・。
71NAME IS NULL:04/02/24 01:56 ID:???
>>70
2ちゃんねる全体の傾向です。
72NAME IS NULL:04/02/24 09:21 ID:tHk27BoL
型なしのsqliteで、ALTER TABLE がどれだけ必要かということがある。
>Integer型に"3.14"のデータでも、Double型に"テスト"でも、SQLiteは受け付ける
という便利な仕様だから ALTER TABLE にほとんど実質的な意味がない。

columnが足りなくなる方に、とっておきの Tips
CREATE TABLE ex1(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z);
ご希望ならaaからzzも追加サポート。
73NAME IS NULL:04/02/24 22:53 ID:???
ワラッタ
Excel の表みたいだな。
7462:04/02/25 18:20 ID:UqpphvZs
>72
公式には「バックアップとって,dropして,createして,コピーすれ」って
書いてありますね.パフォーマンスはひどいと思われますが...
http://www.sqlite.org/faq.html#q13
私は a,b,...,z じゃないけど,列に「予約」を加えることにしてます.
75NAME IS NULL:04/02/25 20:23 ID:???
パフォーマンスはあまり気にならないのでは
1回だけだし
76NAME IS NULL:04/02/25 20:35 ID:???
ちょっとは自動化できるスクリプトかバッチファイルでも作ってみるかな。
77NAME IS NULL:04/02/26 00:12 ID:1lxCODMs
PHPと連携して、管理システムを構築した。

プロセスが起動しないっていうのがいいよ。
サーバーがないような小規模だと、クライアントで
数MBでもメモリー食うのが辛いから。

PHP5が普及すれば、レンタルサーバーでDBを付ける必要もないから
利用価値は大いにあるだろうね。

後はプロシージャさえ組めれば・・・・・
78NAME IS NULL:04/02/26 09:25 ID:???
サービスとして起動しておく必要がないのに、とても高速で使えるよね。
これだけコンパクトだと、組み込み用途で重宝というのもよくわかる。やったことないけど。
PHP5で知名度が上がれば「SQLite本」出るかな。
79NAME IS NULL:04/02/26 13:29 ID:???
>>74
もうすこし効率のいい方法があったような気がしたけど
やりかた忘れた・・・
80NAME IS NULL:04/03/01 01:16 ID:v+M0GB6E
ハマったのでmemo。

PHPでMySQLのデータをSQLiteにインポートしたんだけど
INSERTするときにaddslashesでエスケープしても
正しくINSERTできない時があります。
そんなときはsqlite_escape_stringつかいましょう。


alter tableないんですね・・
SQLiteManagerで作ってたから知らなかった。

ttp://www.rakuto.net/study/htdocs/sqlite/manip.html

上記の例だと一旦メモリ上に元テーブルに行を追加した仮テーブルを作って
元テーブルからデータを拾ってきたあとDROP&CREATEしてますね。
81NAME IS NULL:04/03/01 10:02 ID:???
>80
この場合は「行を追加」ではなく「列を追加」でしょうね。
行を追加するInsertのサンプルに上がっているけどね。よく見つけたな。
82NAME IS NULL:04/03/01 10:45 ID:LObuw1/6
結局、新しいテーブルを作ることは簡単だが、元のデータを移そうと思うと、
同じ名前の別テーブルに、名前の衝突を回避しながら入れ替えることは
ステップを踏まないと出来ないということだな。
83NAME IS NULL:04/03/03 10:09 ID:???
(゚Д゚)ハァ?
84NAME IS NULL:04/03/03 11:51 ID:???
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  |   ハァハァ禁止!  |
  |________|
      ∧∧.||
    ( ゚д゚)||
    / づΦ
85NAME IS NULL:04/03/03 20:41 ID:???
(゚д゚)ハーン?
86NAME IS NULL:04/03/04 17:40 ID:3W8zShnU
日本でもフリーなPHPスクリプト配布する人が増えているが
海外に比べるとDB使っている人が非常に少ない。
理由はやはりレンタルサーバが対応している所が少ないからってのがあると思う。
で、それが>>77-78の理由で大ブレイクする予感。
87NAME IS NULL:04/03/04 18:05 ID:???
8880:04/03/05 08:16 ID:???
>>81
すんません・・行と列間違える俺って相当DQN。

>>86
PEAR DB使えれば簡単に使えるし。
PHP5がでたら間違いなく流行りますね。

ところで日付型のゼロパディングって皆さんどうやってます?
自分はマメに

//$date = "2004-3-5";
$arr_date = explode("-",$date);
$date = sprintf("%0d-%02d-%02d",$arr_date[0],$arr_date[2],$arr_date[3]);
//型がないってこういう時便利ですよねー
//Cのsprintfではこんなのありえない

ってやってるんですが・・・
もっと便利な方法あります?
PEAR DB内で自動的にできたらいいなぁとか思って
ソースのぞいてみたけど、カラムの型なんかいちいち調べてたら
時間かかりそうだし・・・
89NAME IS NULL:04/03/05 20:03 ID:kZCYuHRE
Sqlite で JDBC接続している人いませんか?
英語のサイトを読みつつ 接続したのですが うまくいきません
JAVAでウィンドウズ2000でやっている人いないかな 
90NAME IS NULL:04/03/05 22:08 ID:???
トリビア

SQLiteの作者はTclのハッカーである。
91NAME IS NULL:04/03/05 22:56 ID:???
>>89
何がうまくいかんの?
俺もちょっと前にJDBC接続してみたが、普通に使えたぞ。
日本語以外は。
92NAME IS NULL:04/03/12 00:40 ID:RfCZzlsO
>90
15ふ〜ん
93NAME IS NULL:04/03/15 16:28 ID:???
>>36
擦り寄って来たね♪
94NAME IS NULL:04/03/17 21:15 ID:InsPnmlY
>>93
そーすきぼんぬ
95[email protected]:04/03/17 22:15 ID:???
96NAME IS NULL:04/03/18 06:01 ID:tomkhCwI
97NAME IS NULL:04/03/18 06:31 ID:jR84uLHZ
a
9880:04/03/18 08:08 ID:???
>>96
SQLiteがきたからMySQLが戻ってきても・・・
ストアドとかテクニカルな事がしたかったらポスグレ使うし
規模がデカくなったらOracle使うし・・・

SQLiteManagerいつのまにか日本語化されてますね。
自分で日本語化ファイル作ってつかってますた。
99NAME IS NULL:04/03/18 21:45 ID:Us3+nbT1
>>96
ほんまや。必死だな藁
つーかSQLiteが当て馬になってんのかなあ。
それはちょっと政治的で嫌だなあ。
まあ俺はWebプログラマじゃないからPHP使わないけど・・・
100NAME IS NULL:04/04/14 10:02 ID:+XCDs49F
http://pcweb.mycom.co.jp/special/2004/php5/007.html

トランザクション使わずにぐるぐるINSERTしてます。
101NAME IS NULL:04/04/17 21:04 ID:PagAZNLN
>>100
なんか気の毒だね。
教えてあげた方がいいかもw
102NAME IS NULL:04/04/17 22:49 ID:x7N6mXCW
>>100, 101

先日教えてあげました.
すでに訂正が入っていますね.SQLite の方が速かったみたいです.
103NAME IS NULL:04/04/18 03:33 ID:???
俺のテストによればトランザクションでまとめてインサート
してもデータの数が500万件とかになると、インサートは
遅くなる。多分Bツリーのページ溢れによる再構築か
ディスクアクセスに時間がかかってるのだと思う。
どうすれば速くなるのかまだ実験中。
104NAME IS NULL:04/04/18 21:41 ID:hUv2zobH
>>98
>ストアドとかテクニカルな事がしたかったらポスグレ使うし
>規模がデカくなったらOracle使うし・・・

だな。MySQL、もうイラネ

>>103
素朴な疑問なんだが500万件をまとめてインサート
するようなことは頻繁に発生するの?
ていうかデータの絶対量が500万件を超えると
1件の挿入でも遅いってこと?
前者ならあんま気にせんでいいような。
105NAME IS NULL:04/04/18 23:03 ID:???
>>104
毎日500万件のテーブルに4000件程度の挿入をまとめてやるんだが
2000件目くらいから極端に遅くなる。CPUをフルに使ってズバズバやって
欲しいのだが、CPUの使用率も下がってしまう。どこにボトルネックがあるのか
いまいち掴みきれてない。
106NAME IS NULL:04/04/19 03:40 ID:???
>>105
CPU が下がってるときのディスク I/O は?
107NAME IS NULL:04/04/19 23:30 ID:???
>>106
どれくらいの頻度でアクセスしてるのかよくわからない。
アクセスランプ壊れてるんだわ。すまん。
トランザクション中のジャーナルファイルの更新が遅い感じ。
最適化のFAQ読んでたらジャーナルファイルをOFFにできる
みたいなんでそれやってみるわ。
108NAME IS NULL:04/04/19 23:51 ID:ZwzacxDL
>>105
なるほど。
オイラは「500万件という(ある意味小規模とは言いにくい?)
量のアクセスで遅くなるなら、素直にあきらめて別のものを使うのが
SQLiteにとって吉」という意見なのだが…どうかね?

SQLiteはシンプルでコンパクトであり続けて欲しい。
…1000アクセス/1日未満のサイトとか、ちょっとしたアプリで
バークレーDBよりもうちっと構造化されたDBが欲しいという場合に
フリーで使えるメジャーなDBライブラリになって欲しいのよね。
getopt的プログラマの共通言語「ああ、アレね」みたいな。
109NAME IS NULL:04/04/20 00:21 ID:???
>>107
ん? iostat とかで見れないすか? Windows とかだったらスマソ。
110NAME IS NULL:04/04/20 16:47 ID:???
>>108
俺はCとTcl/Tkを好んで使うんでSQLiteにはとても
親近感を持ってるんだよ。使いたいんだ。

>>109
うん。Windows。すまん
111NAME IS NULL:04/04/24 22:57 ID:???
>>110
そか、悪かった。
しかし逆説的に
>毎日500万件のテーブルに4000件程度の挿入をまとめてやるんだが
>2000件目くらいから極端に遅くなる。
未満ならなんら問題ないことを実証したヨカン

ところで先日クロスコンパイルに失敗。
見た感じではさくっといきそうな感じだったんだが_| ̄|○
112NAME IS NULL:04/04/25 23:30 ID:???
PocketPCで使える?
113NAME IS NULL:04/04/26 02:26 ID:ORUhb82C
>107
sqliteInt.h の
# define TEMP_STORE 1
ですね.俺もC/Win 環境で使ってるので続報期待.

ところで ver3 の開発が始まったみたいだね.
今のところ BTree に手が加えられてるみたいだけど詳細は不明.
個人的には圧縮関連ルーチンが取り込まれないかと期待.
114NAME IS NULL:04/04/26 11:19 ID:fJzkQNNx
SQLiteManagerを操作中
Tableを間違って消しちゃったみたいなんですが
DBの中身を見るとテーブル定義もデータも残ってるみたいなんです。
(でもselect * from sqlite_masterしてもでてこない)

これって救出する方法ありますか?
115NAME IS NULL:04/04/26 18:15 ID:gZB0Gfdi
あの、ちょっとMySQLについて教えて頂きたいです、このスレッドでいいですか?
調べてもわかんなくって。。。
バカにされても仕方ない話なんですけど、SQLをバッチファイルで流したいんです。
(create DATABASE ・・・ を直に手で打つんじゃなくて、「test.sql」というバッチファイルで実行したい)

Windows環境なんですが、どうやればよいでしょうか?
教えて下さると、とっても嬉しいです。よろしくお願いします。
116NAME IS NULL:04/04/26 19:15 ID:???
>>115
mysql <test.sql
つーバッチファイルつくりゃすむだろ
117NAME IS NULL:04/04/27 00:22 ID:???
なんでmysqlの質問がここなんだよw
118NAME IS NULL:04/04/27 09:24 ID:???
warata
119NAME IS NULL:04/04/27 23:17 ID:???
前言撤回。
>…1000アクセス/1日未満のサイトとか、ちょっとしたアプリで
とか言ったが、
http://www.sqlite.org/cvstrac/wiki?p=WhenToUseSqlite
を見ると
もちろんサイトがどれだけヘビーにDBを使うかによるが
お堅く評価して100,000 hits/day程度ならまだギリまで行ってなくて
テストではその10倍くらいまで行けたぜ
とあるな。<(_ _)>

あとクロスコンパイルはOKだった。PoketPCてのはわからんが
IntelのLinuxでコンパイルしてPowerPCのLinuxで動いたよ。

自宅サーバをOpenBlockSにでもしてみようかなぁ。静かそうだし
120NAME IS NULL:04/04/27 23:52 ID:???
おお、PocketPCってWindowsCEのPDAなのね。
ちょっと説明すると
SQLiteってのはDB1個が1個のファイルで、サーバデーモンってのは
特に必要ない。
ソースをコンパイルすると出来上がるのは単純には2個のファイル。
ユーザがCでプログラム組んでアクセスできるための.so
(Windowsでは.dll)と、SQLインタプリタの実行ファイル。
まあ、他にもシンボリックリンクとかインクルードファイルもできるけどね。
あと、ファイルを使わずメモリだけで済ますオプションもあるから
PDAには「向いてる」かと。

イメージ的にMS Accessの.mdbの利用方法に近いのかな…
商用利用もOKであるのが決定的に違うところか?
121NAME IS NULL:04/04/28 10:08 ID:zZMnOcUG
>>120
Accessのmdbは商用利用ダメなんですか。そうですか。

バックアップって.dumpでsqlファイルとしてとってます?
容量が小さいならファイルまるごとコピーでも良いのではないかと
思っておるのですが。
(というか.dumpはバックアップ用なのか?)
122112:04/04/28 23:29 ID:???
やっぱりそうですよね。
石の違いを吸収してしまうDBファイル形式。
母艦でOracle等の親DBからデータを切り出したSQLiteのDBファイルを作成。
PDA用のアプリは慣れたSQLを使って作成可能。

os.cを見てみたのですが、PDAは所詮利用者ひとりだけなので移植はそれほど
難しくなさそうな気がするんだけど。もしかしてほとんどそのままコンパイル可能?
PocketPCアプリ作ったことがないんでよくわからないので聞いてみたのですが。
PDAで動作すると商業ベースにも乗って意外とそっち方面でも流行るのでは?
123NAME IS NULL:04/04/29 00:18 ID:???
Accessのmdbが商用利用不可というのは初耳なんだが
124120:04/04/29 11:12 ID:???
失礼。ちょっと脳にウィルス入ってた。
125NAME IS NULL:04/04/29 20:07 ID:???
>123
たしか
accessのライセンスがないとダメだよ。
126NAME IS NULL:04/04/29 21:47 ID:WDx32sxT
>>121
dumpはバックアップ用じゃなくて、他のDB、というか
Postgresqlにデータを移すために使うんだよ。
バックアップは君のいうようにDBファイルを圧縮しとけば
いいと思うよ。差分は取れるのかどうかしらない。
127NAME IS NULL:04/04/30 08:57 ID:y7ZGN/fc
>>125
たぶんライセンスじゃなくて信頼性とかの問題で
商用利用不可なんじゃないかと。
128NAME IS NULL:04/04/30 21:19 ID:VZceiIAf
信頼性というのならsqliteは実績が無いから商用につかうのは
どうかと思うけど・・・。なんかsqlite使った有名アプリない?
PHPとかは無しで。
129NAME IS NULL:04/04/30 21:36 ID:???
>>128
有名かわからんが、TeamSpeak
http://www.teamspeak.org/
130NAME IS NULL:04/04/30 23:41 ID:???
調べずにカキコするが
sqliteのperlへの実装ってある?
131NAME IS NULL:04/05/01 00:11 ID:FaMfpc9Z
sqliteってシングルユーザなDBみたいですけど
ロックってどんなかんじ? なんも考えず select for update
でOK?
132NAME IS NULL:04/05/01 01:20 ID:???
133NAME IS NULL:04/05/03 08:02 ID:???
>>131
トランザクション開いてアクセスする。

(トランザクション閉じるまで他の人は読み込みも蹴られますた。
SQLite擁護派として何かもう一言フォローしたいところだが
漏れも調査中なんでスンマソ)
134NAME IS NULL:04/05/03 23:01 ID:AtGIA8g9
SQLiteに500万件なんてナンセンス!
135NAME IS NULL:04/05/03 23:57 ID:6ET0kvN6
>>133
最初に開いたのだけ書き込みできたんじゃなかったっけ。

>>134
うるせーバカ
136NAME IS NULL:04/05/04 04:30 ID:EWylYRto
>>135
だって意味なくね?
実験するのは大いにかまわないけど、なんか必死なのが痛い。
文字通り 軽量 のデータベースなんだからさ。
137NAME IS NULL:04/05/06 08:18 ID:YTLAADWx
>>136
言い回しは好きじゃないけど内容的には賛成。
SQLiteは好きだし便利だけど、データ量が多いと
その真価は発揮できないと思う。
(処理速度よりもバックアップとかのメンテの面で。)

俺の場合500万件なんていうたくさんのデータを扱う案件は
今後でてこないと思うのでSQLite使いつづけますが。
10万件程度なら全然問題ないし。
138NAME IS NULL:04/05/06 14:08 ID:kuYQWsdl
Windows向けGUIアプリのファイル形式としての応用に挑戦中。
オブジェクト指向によるプログラミングでよく使われるシリアライズと比べて、
1.ランダムアクセスがスマートにできる
2.ファイルの全てをメモリに読み込む必要が無い
3.ある程度の標準機能(ファイルの最適化とか)を持つ
あと、多言語対応に向けたアプリ中のロケール文字列も、
こいつにぶち込んでおけば海外の人が勝手に翻訳してくれるのではないかと期待できるかな。

まあまずは動くところまで作らないとね。

あと、今のところ単純なラッパーを越える使い勝手のC++ライブラリが存在しないんですが、
ACCESS VBAのADODB.Recordsetライクな使いやすいアクセスライブラリってどこかに落ちてませんかね?
板違いならスマソ。
139NAME IS NULL:04/05/06 18:29 ID:YTLAADWx
>>138
なんかすごいこと言いますね。
ロケール文字列をDBに入れるってすげーありえねー。
C++でGUIGUIしてる人の発言とは思えんw

RSSリーダーのGlucoseはSQLiteを内部にもってますね。

私はGUIアプリはマウス片手にDelphiってるんで
ttp://www.myprofile.ne.jp/blog/archive/moge/41
を参考にすれば簡単に作れそう。

Cなら
ttp://www.randynetwork.com/blog/87
かな。
140138:04/05/06 19:26 ID:kuYQWsdl
>>139
>なんかすごいこと言いますね。
>ロケール文字列をDBに入れるってすげーありえねー。

これですが、sqliteは文字列の入力チェックをほとんど何もしていないので、
ほとんど「何でも」入ります。
S-JISでもEUCでも区別なく入るようです。
簡単なチェックをしましたが、部分一致などもとりあえず問題無いようです。
なので、アプリ中で用いるWindowsロケールに依存した(要するに各国語)の
文字列リソースを入れる容器としては充分使えそうな気がします。

ライブラリのほうは家に帰って試してみます。ありがとう。
141NAME IS NULL:04/05/06 21:26 ID:S/PbMEEw
>>2
142NAME IS NULL:04/05/07 05:27 ID:???
>>140
> ほとんど「何でも」入ります。

>>139 はそういう話を言ってるわけじゃないだろう。
143NAME IS NULL:04/05/07 09:40 ID:uvn4YUcn
SQLiteなら、DBとしての利用という範囲で考えずに、
>>138 が言う「ファイル形式としての応用」への挑戦はありえるんじゃない。
XMLより使いやすい場合があるかも。
144NAME IS NULL:04/05/08 06:16 ID:Gf03gDXu
>>143
それはどうでしょう.いきなりファイル形式が変化することもあるんでは?
同様に内部コードが UTF-8 と ANSI の場合でファイル形式変わってしまいませんかね?
(調べてません.すんません)
基本的に非圧縮だし,と思えば亜種で圧縮サポート形式も出てきていて,標準には向かないような.
以上は交換用途としての(.pdfのような)ファイル形式としての話.
アプリのデータ保存用で,ある種独自のファイル形式としてなら,大いに結構.
公式にもその用途を謳っていますしね.でも比較対象はXMLではないと思います.
145NAME IS NULL:04/05/08 08:01 ID:???
ロケール文字列はDBに入れないほうがいいと思う。
なぜかというとsqliteのツールが無いとユーザーが
新しく追加できないから。UTF-8のテキスト形式が
シンプルでいいと思う。
初期設定の保存とかは便利でいいと思う。
146NAME IS NULL:04/05/08 15:04 ID:???
>>137
軽量ってのは、本体のコードのことで
DBのサイズでは無いと思うんだけど
どうなんでしょう
147NAME IS NULL:04/05/08 16:36 ID:???
locale文字列.....
ADODB.Recordset.......
ファイルシステムの代わりに最適........

上記の話題を見た直後の私の第一印象、
「はぁ........もうダメポ」
148NAME IS NULL:04/05/08 17:56 ID:???
>>147
なんか間違えたこと言った?変なこと言ってたら
訂正するから指摘してくれ。
149NAME IS NULL:04/05/08 18:38 ID:???
>>148
それほどには奇天烈なことは言ってないと思うがちょっとうなってしまう
部分はある。
ロケール文字列については、
 { 言語, 通し番号 } → 文字列
ができればいいわけだよね。
現状は言語ごとに分かれたファイルから通し番号でとってくる
やり方が主流だと認識してる。

「すでにそのアプリが内部データをSQLiteで持っているので、
ついでに入れてみた」というのりでなら、まぁそれは設計者が
選択したってことでいいかと思うが、
すでに確立した感のある方法(自動生成ツールがあったり、
その解説ドキュメントがあったりして他の開発者が
共通の知識を持っている)をあえて捨てるメリットがあるかは疑問。

新しいやり方にチャレンジする精神は立派。完成させてみて
発見したり実感したりすることもあると思うのでガンガレ
150NAME IS NULL:04/05/09 14:03 ID:6b2QA1ug
>>149
>すでに確立した感のある方法(自動生成ツールがあったり、
>その解説ドキュメントがあったりして他の開発者が
>共通の知識を持っている)をあえて捨てるメリットがあるかは疑問。

ソースキボン
プログラム板のスレタイトル眺めて、多国語対応でググってみたが、
いいサイトが見つからない
151NAME IS NULL:04/05/09 15:45 ID:???
>>150
おいらが言ったのは gettext とその周辺ツール。と、その類似品。

えっと、どういうものかつうと
(1)まずCで普通に(英語メッセージで)プログラム組む。
(2)そしたらソースをツールに通す。するとソース内の文字列リテラル
の頭に目印がつく。
(3)同時に、文字列が抜き出された「リソースファイル」ができる。これには
通し番号がつく。
(4)リソースファイルの「日本語版」をつくる。
(5)次回コンパイルする前に、専用のプリプロセッサに通す。
すると、ソースの文字列リテラルの部分が「文字列をリソース
ファイルからとってくる関数」に置き換わる。
(6)プリプロセスされたソースをコンパイル。
というやつ。たまに雑誌で解説記事あったりする。

おいらがこないだまでメンテやってたソフトでもそういう
仕組み(の別物)だった。

ソースイメージ
printf( "this is a message\n" )

printf( "><this is a message\n" )

printf( gethogehoge( lang, 100 ) );

リソースファイル英語
100,this is a message\n

リソースファイル日本語
100,これはメッセージです\n

その昔shi3z氏も似たようなプリプロセッサ
作ってた(たしかそのときの動機は日本語対応してないコンパイラで
SJISの文字をつかえるようにすることだった)。そんでその副作用
というか派生で日本語の変数名が使えるようになっていた気がする。

windowsも似たしくみのはず。
152139:04/05/10 08:14 ID:Is7LBGNM
>>147
私も最初思ったw
もまえ本当にC++でGUI作ってるのかと。VB極めたあと
MFCでHelloWorldってるだけちゃうんかと。
まー、>>149の言うようにそんなにおかしい事を言ってるわけでは
ないわけで・・・

まぁ、>>138よ。言いだしっぺなんだからごちゃごちゃ言う前にやってみれ。
ソース晒してくれれば協力するし。

ただ、DBをこういう風に使うのはなんか間違ってると思うが。
リレーション?なにそれ?っていう状況になるわけで。
153NAME IS NULL:04/05/10 10:20 ID:6CmpQPbS
> リレーション?なにそれ?っていう状況になるわけで。

それは、そう思った。
ただ、型なしの仕様が正しいと考える SQLite の面白い所で、
この考えは、リレーションを厳格には考えないという所に行くんじゃないかと
解釈してるけど、どう思う ?
キーさえ、しっかりしていれば、それで出し入れするデータは、
何だってかまわないという事になればリレーションとは違うかな、と。

以下の原文は
http://www.sqlite.org/datatypes.html

SQLiteのデータ型
第1節 型なし
SQLiteは「型なし」である。これは、そのカラムに宣言されたデータ型に関わらず、どのテーブルのどんなカラムにも君が望むあらゆる種類のデータを蓄積できる、という意味である。(このルールのただ一つの例外は、次の第2節を見よ。)この動作は仕様であってバグではない。
データベースはデータを蓄積し、復元しなければならないものであって、どんな形式のデータが入るかはデータベースには関係のないことである。
他のほとんどのSQLエンジンに見られ、SQL言語の仕様に定められている強い型システムは、間違った仕様である。この間違いはインターフェースの中に現れる実装の一例である。
SQLiteは、こうした間違った仕様の克服を求める。あらゆる種類のデータをあらゆるカラムに蓄えることを君にまかせ、データ型の定義に柔軟さを認めることによって。
154NAME IS NULL:04/05/10 20:37 ID:6CmpQPbS
>>138
思い出した。C++ から使えるやつで、
> ACCESS VBAのADODB.Recordsetライクな使いやすいアクセスライブラリ
ttp://www.microsoft.com/japan/msdn/netframework/downloads/
ttp://sourceforge.net/projects/adodotnetsqlite
この2つからクラスライブラリどころか、
cl.exe っていう C++コンパイラも SQLite も落っこちてくる。
しかも十分に ADODB.Recordsetライクな使いやすさだ。
Windows 使ってて、まだ持ってなかったのかい。
155NAME IS NULL:04/05/12 14:42 ID:???
156NAME IS NULL:04/05/18 16:19 ID:ZavbGlbD
SQLite コマンドチュートリアル(翻訳版)
ttp://www.net-newbie.com/sqlite/sqlite.html
SQLite SQLリファレンス(翻訳版)
ttp://www.net-newbie.com/sqlite/lang.html
157NAME IS NULL:04/05/19 18:07 ID:???
SQLiteをC++で使いたいけど英語が苦手なんで
昨日から少しずつ翻訳してるのですが、
うまく日本語になってないところ・・・というより
意味不明なところが多すぎる _| ̄|○

http://tria.s31.xrea.com/sqlite/c_interface.html
158NAME IS NULL:04/05/20 17:36 ID:???
ODBCドライバはファイルDSNには対応していないのかな?
やろうとしたらエラーが出たんだけど。
159NAME IS NULL:04/05/23 11:50 ID:???
>>157
ぐっじょぶ!
160NAME IS NULL:04/05/25 01:33 ID:???
未出のようなので一応リンクしておきます。

SQLite ODBC Driver
http://www.ch-werner.de/sqliteodbc/
161NAME IS NULL:04/05/25 01:34 ID:???
SQLite Control Center より使えるかどうかわかりませんが一応これも

SQLite Database Browser
http://sqlitebrowser.sourceforge.net/
162NAME IS NULL:04/05/25 01:52 ID:???
>>160
同じ所に JDBC ドライバもあるんだけど、誰か使ってる人いないかな。

http://www.ch-werner.de/javasqlite/

それにしても、アプリに組み込みできる、シンプルで、使い勝手が良くて、緩いライセンスの
データベースがあるって素晴らすぃ。
163NAME IS NULL:04/05/25 08:21 ID:???
>>161
カコイイ!でも文字コードがああああああ

逝ってくる。
164NAME IS NULL:04/05/25 10:14 ID:???
>>163
ttp://www.kumaryu.net/cgi-bin/diary/?date=20040110
で修正の手掛りが書かれているんだけど
C言語な人解らないかなぁ...
165NAME IS NULL:04/05/25 10:52 ID:???
文字コードがどうかしたの?
166NAME IS NULL:04/05/26 08:39 ID:???
Qt 使ってるのか。
167NAME IS NULL:04/05/26 10:49 ID:OP8x6gI1
ほんとだ。Windows版バイナリだと、日本語データ表示は文字化けだあ。
これで入力すると ?? というデータになるしね。Qtは知らないからなあ...
168sage:04/05/26 13:14 ID:YjzGdGIt
外国製でもきっちり日本語処理ができるのって、どういうのかな。
Unicodeを使ってるドットネットのものは、大丈夫なのが多いみたいだけど、
Javaのもいいか ?
169163:04/05/26 13:19 ID:???
>>167
最初、自分がINSERTしてるデータがEUCだったので表示されないのかと
思って「逝ってくる」ってパピコしたんだけど
その後UTF-8で入れなおしてもダメ。
私もQtなんて知らないです・・orz
170NAME IS NULL:04/05/26 20:21 ID:+wg1Ei5Q
SQLiteCC を日本語化してみた人です.
SQLite Database Browser のソースをちらっと見ましたが,SQLite 本体が
UTF-8 enable になっていないので UTF-8 は通らないようです.
で,SQLite DB Browser の QT が日本語を通すようになっているか調査した人いますか?
QT を触ったことありませんが QT 自体は日本語処理OKと聞きました.
ちょっといじってみます.
171NAME IS NULL:04/05/27 15:22 ID:R/pbcO4/
ちょっと前の話題の、ロケール文字列をデータベースに入れておくって話。
webで C# のサンプルコードに当たっているうちに、たまたま、それをやっているやつを発見。
http://www.wrox.com/books/0764557599.shtml
「 Professional C#, Third Edition 」という今月出た本のダウンロードコードにある。
第1版の翻訳は持っていて、中身が濃い良い本。新版もほしいな。(翻訳出版してね)
ch17code\Localization\DatabaseResourceReader の中にあるよ。

やっていることは、ロケール文字列などのカルチャ固有のリソースにアクセスする標準のクラス
ResourceManagerクラスを継承して、自前の DatabaseResourceManagerクラスを作ってしまう、
という所がミソ。
普通なら、リソースファイル名か、埋め込みリソース名を指定する所で、
データベースを指定するという以外は、普通と変わらないわけだ。
これ、使えそうだよ。サンプルでは SQL Server を使ってるけど、SQLite 向きだね。
172NAME IS NULL:04/05/27 18:11 ID:???
173171:04/05/28 09:03 ID:+ZceNJch
このライブラリ使って、ロケール文字列を SQLite に入れておくテストしたら、あっさり成功しました。
普通のリソースを使う既存のコードも、1行書き換えるだけ。
あとは SQLiteで
create table Messages ([key], [ja-JP], [en-US], [de-DE], [fr-FR])
なんてして、データを入れておけば、勝手にシステムのカルチャに合わせた文字列を表示する。
プログラムからカルチャを変更するような使い方も簡単だな。
標準クラスを継承するクラスの作り方・使い方のお手本みないなもんだ。
174163:04/05/28 15:10 ID:???
SQLiteのMLができたってー

http://www.net-newbie.com/sqlite.html
175NAME IS NULL:04/05/29 13:30 ID:???
176NAME IS NULL:04/05/29 15:08 ID:???
まとまったリファレンスはけん
http://www.rakuto.net/study/htdocs/sqlite/
177NAME IS NULL:04/05/29 15:43 ID:???
テキストストレージとして使うってのはありなのかな。
メモ帳、日記、掲示板みたいな、付帯属性のあるプログラムのバックエンドとして使いたい。
178NAME IS NULL:04/05/29 18:57 ID:???
>>177
おおあり
179NAME IS NULL:04/05/30 02:20 ID:???
>>178
そうでつか。今作ってるデータ集計用のアプリが完成したら、PIM ソフトを作ってみようと
思っていたので心強いです。どうもありがとう。
日本語の全文検索あたりが難関かなと思ってます(現在ノー・アイデア)。
180NAME IS NULL:04/05/30 06:23 ID:???
>>179
めんどくさいからlike演算で・・・。
181170:04/06/01 04:17 ID:???
SQLite Database Browser の日本語化をやろうとしましたが,
オリジナルの Windows 版は Qt の製品版を購入して作ったらしいので,
Qt を持っていない私には開発できないことがわかりました.残念.

>>179
SQLite 自身に手を入れてもいいかもしれませんね.
正規表現パッチとか勝手に作っちゃいます?
182NAME IS NULL:04/06/01 07:29 ID:???
>179
日本語は全てUTF8に変換してDBに突っ込む。
突っ込む際は、表示用のオリジナルのテキスト(フィールドA)のほか、
・全角英数記号を半角化
・半角カナを全角化
・ひらがなをカタカナ化
・無駄な空白を取り除く
等の処理を行ったテキストも別フィールドBに突っ込む。
検索の際は同じ処理を行ったUTF8のテキストをフィールドBに対してLIKE演算。
という感じで簡易あいまい検索を実現してま…
183174:04/06/01 08:21 ID:???
>>181
フリー版での国際化はこれでできそうなのにね。
http://www.asahi-net.or.jp/~hc3j-tkg/qt-i18n/index-j.html
184170:04/06/01 22:58 ID:???
>>183
私もそのサイト見ましたがだいぶ情報が古いです.Qt-1.41 に対するパッチとかで,
すでに本家では別の方法で国際化"自体"は取り入れられています.
問題は SQLite Database Browser 自身が全く国際化を意識せずに作られている点です.
ちなみに Qt の Windows 用フリー版は 2.x までしかなく,SQLite Database Browser は 3.2, 3.3
で作られています.

>>182
興味深い方法ですね.それって常套手段なんでしょうか?
185182:04/06/02 00:00 ID:???
>>184
適当に自分で考えただけなんで、常套手段なのかどうかは全然わかりません。
とりあえずこうしておかないとパフォーマンスが悪いと思うんで…
というかまずRDBは全文検索には向かないと思うんですよね。
186157:04/06/19 07:51 ID:???
ver 3.0 alpha 来ましたね
UTF-16使えるようになったのかな
187NAME IS NULL:04/06/24 22:59 ID:???
SQLite のサイト、いつのまにあんなデザインになってたんですか?
188NAME IS NULL:04/06/25 13:19 ID:???
>>187
私も気づかなかったー。
グラフィカル。でもやっぱりシンプル。良い。
189NAME IS NULL:04/06/28 20:24 ID:???
VB6で3を使う方法が書いてあるページ探し中・・・・・・・
だれか
190NAME IS NULL:04/06/28 21:15 ID:???
>>189
ODBC経由は駄目なの?
191NAME IS NULL:04/06/30 09:54 ID:???
>>190
ODBCを使うと配布やインストーラ作成が大変そうな気がするのですが、どうなんでしょう。
一般アプリの組み込みDBとしたいので。

・・・バージョン2使おうかな・・・
192NAME IS NULL:04/07/01 10:44 ID:mj80YqiM
>>191
そういう用途だと、インストールの点で、ODBCを使うのは面倒そう。
VB.NET にすれば ODBCはいらないけれど、.NET Framework が入っているかが問題になるし。
193NAME IS NULL:04/07/01 17:21 ID:QhIip2ce
>>186
なってるみたいですな。
http://sqlite.org/version3.html

自作プログラムは大して開発が進んでるわけでもないので、
さっそくVer3に移行しようかな。
194NAME IS NULL:04/07/01 20:08 ID:???
>>2またお前かよ、なんなんだよ「2」ってのは、何か楽しいのか?お前さぁ、みんなが楽しく話してるところに近付いただけでススーっと目を合わさずに去られたって事ってないか?
なに? いつだってそうなのか?まぁ、そうだろうな。一般社会ではお前みたいにキモいヤツは相手にしたくないんだよお前はネットの中でも「おマメ」みたいなもんだからな
引きこもった挙げ句、朝からネットにかじりついてスレが立つのを一日中待ち、すかさず「2」と書き込む。 つまんねえ人生だな
みんなが書き込む掲示板に「2」って書き込んだことで自分も社会に参加してるつもりになってんだろ
それにしてもさぁ、もう少し考えろよなんとか社会復帰しようと一晩中考えて出来たギャグが「2」かよ!!
おまえさぁ、一度外に出て人が話してるところでいきなり「2!」って言ってみろよ!もうダメなんだよ、無理なんだよ、お前には
ネット社会ですらコミュニケーションとれてないじゃんわからないだろうけどさぁ
みんな苦虫を噛み潰すような目でお前の自信作の「2」を見てるんだよそう、もう終わりにしようよ、この先楽しい事なんかないんだよ、きっと。
195NAME IS NULL:04/07/02 23:02 ID:???
ぬおーデータ変換が面土居。
196NAME IS NULL:04/07/09 11:34 ID:nSC8GXrZ
Ver3のsqlite3_execにUTF-16直接つっこんじゃ駄目?
197NAME IS NULL:04/07/09 16:12 ID:???
SQLite ODBC DriverがSQLite 2.8.14になりました。

ttp://www.ch-werner.de/sqliteodbc/

198NAME IS NULL:04/07/16 23:10 ID:RV+8pVD1
PHP 5.0.0 Released! [13-Jul-2004]
SQLite has been bundled with PHP.
199NAME IS NULL:04/07/23 13:33 ID:???
SQLite Delphi Components
SQLite 3.0 components released
ttp://www.aducom.com/sqlite/

200NAME IS NULL:04/07/29 22:45 ID:???
「SQLite」 (Chris Newman 著)
http://www.amazon.co.jp/exec/obidos/ASIN/067232685X
201NAME IS NULL:04/08/02 15:53 ID:CPTZa5VA
同上
2004年10月発売予定(SAMS Publishing)。ただいま予約受付中。
202NAME IS NULL:04/08/05 09:22 ID:???
>>201
200のは、Macmillan Computer Pub ; ISBN: 067232685X ; (2004/09/30)になってるけど
別の本ですか?
203NAME IS NULL:04/08/08 00:15 ID:???
>>185
>というかまずRDBは全文検索には向かないと思うんですよね。
つか、SQLiteについてはRDBMSっぽくない使い方を考えてみようや。
もともとは軍事アプリで使うためにバークレイDBに皮かぶせたもの
だったらしいし、リレーショナルっぽくないところで
なんか面白いことできそうな予感しない?

今出てるのって
国際化テキスト検索用
エクセルみたいにA〜Z、AA〜ZZ列
普通にテキスト突っ込んじゃう
とかかな?

オイラは、Lindaのタプル空間にできないかと画策中。
Lindaってなに?→増井氏の記事がわかりやすいので読んでください。
ttp://pitecan.com/UnixMagazine/
の、2002年10月号 「Linda」ね。
204NAME IS NULL:04/08/09 13:05 ID:cCyZtPbc
205NAME IS NULL:04/08/09 17:17 ID:52OdYyi7
>>203
> Lindaってなに?→増井氏の記事
面白い記事を紹介していただき、ありがとうございました。
こんなものがあるとは知らなかったです。
タプル空間に SQLiteを使うというのは、
SQLiteにプロセス間通信の仲介をさせてみよう、ということでしょうか。
できたら面白い。
206NAME IS NULL:04/08/10 05:34 ID:???
>>205
>SQLiteにプロセス間通信の仲介をさせてみよう
そゆことですな。
「タプル空間」って、イベントスプール+αなものだと解釈してます。
そのアルファの部分は、
・型宣言とかしなくても任意の型の任意列数のデータを入れておける
・先頭以外からもとりだせる
・パターンマッチを適用して取り出せる
・複数マッチしたらとりだされる順番は保障されない(どれか1つがでてくる)
と。
コンピュータにとっては重い要求だろうけど、
えらく簡単なソースでいろいろ表現できるメリットがある、と。
SQLiteは型がないから、エクセルみたいにA〜ZZ列にしておけば、
タプル的なデータが入る。
DBMSなのでパターンマッチで取り出すのもできる。
あとはウェイト処理と、希望に沿うレコードが入ってきたらそれを
通知する仕組みがあれば「タプル空間」になるのかな、とね。
207NAME IS NULL:04/08/10 10:09 ID:???
>>204
ありがとう。アマゾンで買ってみる。
208NAME IS NULL:04/08/11 20:17 ID:???
SQLiteって、sub select使えますか?
209NAME IS NULL:04/08/12 01:32 ID:???
PHP5でいじってます。SQLiteManagerもいい感じ。
ttp://www.zend.com/php5/articles/php5-sqlite.php
↑にPHPで使う文書があって、OOでグリグリいじってるけど
OOなマニュアルは発見できず。誰か場所知ってる人いる?
210NAME IS NULL:04/08/18 08:31 ID:???
OO?
211まなみ:04/08/19 02:30 ID:GGBYH8Yl
このカキコ見たあなたは4日後に不幸がおとづれ44日後に死にます。
それがイヤならコレをコピペして5ケ所にカキコして下さい。
私の友達はこれを信じず4日後に親が死にました。44日後友達は行方不明・・・・。
いまだに手がかりもなく私はこのコピペを5ケ所に貼り付けました。
すると7日後に彼氏ができ10日後に大嫌いな人が事故で入院しました。
212NAME IS NULL:04/08/24 17:59 ID:j0R9/TNS
> OO?
もしかして OOP の OO かな ? オブジェクト指向 ?
213NAME IS NULL:04/08/24 22:57 ID:???
>>209
へぇ〜

// create a new memory only database
$db = new SQLiteDatabase(":memory:");

こんなことできるんだ。知らなカターヨ
214NAME IS NULL:04/08/31 14:52 ID:???
根本的にsqlを分かってないうえperlで申し訳ないが、
$r=$h->prepare("begin;");
$r->execute();
(大量にデータ挿入)
$r=$h->prepare("end;");
$r->execute();
$r->finish();
としとけば、最後のend;でcommit;の代わりもしてくれる?
データ挿入中に1000件ごとにcommit;投げてるんだけども。
215NAME IS NULL:04/08/31 19:24 ID:???
>>209
そうそう。私も探してます。

// create new database (OO interface)
$db = new SQLiteDatabase("db.sqlite");

って書いてあるのに、SQLiteDatabaseクラスに関する
記述はどこにあるねん。
216NAME IS NULL:04/09/01 00:09 ID:cIZqANlL
>>209 >>215
すまん、最初何言ってるのか理解してなかった。

PHP5でSQLiteをオブジェクト的に使うラッパークラス(SQLiteDatabase)の
ドキュメントがどこにも見当たらない、ってことね。
確かにPHP5のソースをSQLiteDatabaseでgrepしても、テストコードしかヒットせず。
うーむ…

ttp://www.wiki.cc/php/Sqlite_oop?PHPSESSID=90c148e7399077180d696bfdd241288e

によると、PHP自身にクラスメソッドを問い合わせる方法が書いてあって、
SQLiteDatabase
SQLiteResult
のメソッド名一覧は、ある。

で、これとPHP5のソースをよく見比べてみたら、鍵は
php-5.0.1/ext/sqlite/ にある sqlite.c だな。

997行あたりに
REGISTER_SQLITE_CLASS(Database, db, NULL);
REGISTER_SQLITE_CLASS(Result, query, NULL);
REGISTER_SQLITE_CLASS(Unbuffered, ub_query, NULL);
REGISTER_SQLITE_CLASS(Exception, exception, zend_exception_get_default());
とあるから、おそらく

SQLiteDatabase, SQLiteResult, SQLiteUnbuffered, SQLiteException

の4つのクラスが定義されてて、その他はない。

この4クラスそれぞれに
function_entry sqlite_funcs_db[] = {
PHP_ME_MAPPING(__construct, sqlite_open, NULL)
/*PHP_ME_MAPPING(close, sqlite_close, NULL)*/
PHP_ME_MAPPING(query, sqlite_query, NULL)
PHP_ME_MAPPING(queryExec, sqlite_exec, NULL)
PHP_ME_MAPPING(arrayQuery, sqlite_array_query, NULL)
PHP_ME_MAPPING(singleQuery, sqlite_single_query, NULL)
PHP_ME_MAPPING(unbufferedQuery, sqlite_unbuffered_query, NULL)
PHP_ME_MAPPING(lastInsertRowid, sqlite_last_insert_rowid, NULL)
PHP_ME_MAPPING(changes, sqlite_changes, NULL)
PHP_ME_MAPPING(createAggregate, sqlite_create_aggregate, NULL)
PHP_ME_MAPPING(createFunction, sqlite_create_function, NULL)
PHP_ME_MAPPING(busyTimeout, sqlite_busy_timeout, NULL)
PHP_ME_MAPPING(lastError, sqlite_last_error, NULL)
PHP_ME_MAPPING(fetchColumnTypes, sqlite_fetch_column_types, NULL)
/*PHP_ME_MAPPING(error_string, sqlite_error_string, NULL) static */
/*PHP_ME_MAPPING(escape_string, sqlite_escape_string, NULL) static */
{NULL, NULL, NULL}
};
のようにメソッドから一般関数へのマッピングが定義されてる。

ところで PHP5.0.1 に同梱されてる SQLite は 2.8.14。
SQLite は 3.0 の安定版がもうすぐ出そうだし、今手を出すのはためらうな…
217NAME IS NULL:04/09/01 00:14 ID:???
ちなみに 3.0 系では「型アリ」になる予感
218NAME IS NULL:04/09/01 00:34 ID:???
連書きすまソ
久しぶりに本家のwiki見たら、SQLite使ってるひとのコーナー

ttp://www.sqlite.org/cvstrac/wiki?p=SqliteUsers

がえらく増えてる。で、独自にPHPのラッパークラス作ってるひと

ttp://code.jenseng.com/db/

もいるみたいだよ。これはALTER TABLE機能を追加してるのが
特徴らしいが…開発者にとっては似て非なるものをつくられても
十字架が増えるだけだよな。
219NAME IS NULL:04/09/01 08:07 ID:???
SQLite はいざとなったらファイルひとつを持ち回せばなんとかなるっていう
手軽さもさることながら、構造も(他のに比べれば)簡単なので、SQLite 自体
の機能を追加したり、省いたりしやすいのが魅力なのかな。
亜種がたくさんできるのは仕方が無いという。

PHP の SQLite への対応は嬉しい。バージョン 3 に対応するときは、2 と 3
を別のモノとして扱ってくれると混乱少ないかなぁ?ふたつ同居になるけど。
220215:04/09/01 10:14 ID:???
ほほう、216さん very thanx です。
私もソースハックしてみます。
221NAME IS NULL:04/09/18 22:21:10 ID:???
>>206
SQLiteは一般的なRDBMSと違って独立したサーバープロセスを持っていないため、
複数のプロセスから要求をアトミックに処理するという並行プログラミングの
ための基本的な要件がまったく抜け落ちています。

つまり、プロセス間通信の受付けや複数の依頼元からの要求を破綻なく処理する
という中枢部分をゼロから実装しなければならないわけです。
これって結構大変ではないでしょうか。
222NAME IS NULL:04/09/19 01:53:33 ID:???
>>221
失礼ですが、 SQLite を使ったことありますか?
223NAME IS NULL:04/09/19 21:24:48 ID:???
>>222
僕の知識は古いですか?
SQLiteと一般的なRDBMSとの最大の違いは、アプリケーションプログラムの
内部にライブラリとして組み込まれて動くことだと理解していましたが。
224221:04/09/19 21:39:02 ID:???
あ、複数のプロセスから同時にデータベースファイルを update しても
トランザクションは破綻しないのかな?
それならファイルにアクセスできる=タプルスペースを共有できる
ということになりますね

Rindaとかはネットワーク越しにやってるから、ついついそれを基準に
難しく考えてしまいました。
225NAME IS NULL:04/09/20 04:32:12 ID:???
チラシの裏でやれよw
226NAME IS NULL:04/09/21 09:42:19 ID:???
>>222
失礼ですが、Lindaをご存知ですか?

問い合わせに対してマッチするデータがない場合、誰かがマッチする
データを投入してくれるまでブロックして待ち合わせる必要が
ありますが、SQLにはそのような機能はありません。
これが並行プログラミングの基本要件です。

ポーリングでもして待ちますか? w
227NAME IS NULL:04/09/21 11:16:08 ID:???
>>224
>複数のプロセスから同時にデータベースファイルを update しても
>トランザクションは破綻しないのかな?

破綻するようなのはトランザクションと呼ばないと思ってたんだけど、俺の勘違いか?
228NAME IS NULL:04/09/21 11:19:23 ID:vUHMrqUQ
>>226
> ブロックして
とは何を何からブロックするのですか。
229NAME IS NULL:04/09/21 14:52:36 ID:???
>>228
in() や rd() で問い合わせを実行すると、マッチするデータが出現するか、
タイムアウトするまで待つため、その間制御は帰ってきません。
このことをブロックと書きました。

# これによって待ち行列やランデブーなどのロジックを実現します。
230NAME IS NULL:04/09/21 15:01:34 ID:???
>>226
恥ずかしながら寡聞にして存じません。

私の指摘したかった点は、
「SQLiteは一般的なRDBMSと違って (中略) 基本的な要件がまったく抜け落ちています」
についてだけだったのですが、
他の「一般的なRDBMS」ならばそういった要件が満たされるのでしょうか?
231NAME IS NULL:04/09/21 22:10:51 ID:???
PostgreSQL LISTEN NOTIFY でググる。

と書いてみたけど、勘違いしている可能性大。
232NAME IS NULL:04/09/21 23:36:06 ID:???
変なひとは放置の方向で。>all
233NAME IS NULL:04/09/23 14:49:59 ID:GKv/8yXG
↑オイラがふったLindaが元凶だったのか、すまぬ。

もともとの意図はというとね、普通のRDBMSっぽくない使い方で
SQLiteにハマる使い方ってもうないの?
という振りをしたかったわけ。>>203ね。

そんでPHP5.0.1調べて>>216とかカキコしてた時点で、
上記の話は流れたものとおもってたよ。

>ポーリングでもして待ちますか?
って、そうだよな。
>>206ではあんま書かなかったけど、Lindaがやってるコトは、
コンピュータにとってはスゲー重い処理であることは承知してるんさ。
ええと…
誰かがレコードを挿入することをずっと監視してるひとが必要で。
そんで、そのひとが「今、何かを待ってるヤシのリスト」を持っていて、
レコードが入るたびにリストの頭からチェックしないといかん。
マッチしたら、そのひとに通知して、ブロッキングを
解除してあげないといかん訳でしょ。
その通知には多分、セマフォとか使うんだろうけど、
通知するだけでいいかっつーとそうでもなく、
わずかな時間差のために
通知したやつが意図したのと別のレコードを
通知されたやつが取ってしまうということを防ぐために、
ROWIDなどを知らせる必要がある。じゃあ名前つきパイプ?

…ここまで来ると、SQLiteを利用する方法っていうより、
SQLiteを改造する話になってしまうわな。
で、改造元がSQLiteである必然もないのかなと。orz

カキコしたとき考えてたのは、「プロセス間通信をSQLiteにやらせる」
っていうよりは、「いろんなことが簡単なソースで書けるLindaっつーものを、
フリーツールをちょっといじって実現できるのでは?」
てことだったし、やっぱりSQLiteとはズレズレ。(゜д゜)

自分で振っておいて申し訳ないが、
Lindaの話は流し、流し。m(_ _)m

で、普通のRDBMSっぽくない使い方でSQLiteにハマる使い方ってもうないの?
234NAME IS NULL:04/09/23 15:02:09 ID:???
3.0 安定版(3.0.7)キタ━━━━(゚∀゚)━━━━ッ!!
235NAME IS NULL:04/09/24 10:13:49 ID:???
みんな SQLITE_BUSY が返る場合のことを意識してコード書いてる?

漏れは PHP バインディングを使ってるけど、httpd は普通何枚か fork
してて複数プロセスから同時アクセスがありうるから、厳密に言えば

データベースロック → リトライ*N → タイムアウト → SQLITE_BUSY

という場合のことも考えてコードを書くべきなんだよね。
236NAME IS NULL:04/09/26 16:40:39 ID:???
漏れもPHP。
一応エラー意識して書いてるつもりだけど最後はrollback頼みだよ。
insert/updateを二三行う場合の模範例みたいのありますかね。
237NAME IS NULL:04/10/22 12:40:19 ID:???
バージョン3のJDBCのWrapperはやくでねーかな。
238NAME IS NULL:04/11/07 18:21:53 ID:ipMPK00B
hoshu
239NAME IS NULL:04/11/15 17:10:00 ID:???
SQLite data provider for ADO.NET
ttp://sourceforge.net/projects/adodotnetsqlite/

を使っているんですが、last_insert_rowidを取得する
プロパティはどこかにあるんでしょうか。

ご存知でしたら教えてくださいm(_ _)m
240メモ:04/11/16 04:18:59 ID:???
>4-5
phpSQLiteAdmin
241NAME IS NULL:04/11/16 11:11:39 ID:stpfuOmw
>>239
DataTable.Rows.Count ではどうでしょうか。用が足りませんか。
242NAME IS NULL:04/11/16 12:59:26 ID:EESBhBb7
>>239
ADO.NET Data Provider for SQLite のソースを見ると
SQLite3 用の場合なら sqlite3.cs に
[DllImport("sqlite3")]
private static extern long sqlite3_last_insert_rowid(IntPtr h);
と取得できるように宣言されているけれど、使用されていない。
ということは、直接対応するプロバティ等は作られていないのでは。
ADO.NET の標準にないからでしょう。
標準の機能を駆使して間に合わせる方が、早そうに思えます。
243239:04/11/17 13:06:43 ID:???
>>241
>>242
ありがとうございました。
いじってみます。

C#, ADO.NETも平行で勉強しているので混乱気味です。
244NAME IS NULL:04/11/17 14:20:50 ID:???
>>240
2種類あるようだな。
俺はsourceforgeのを使ってる。
245NAME IS NULL:04/11/19 00:41:35 ID:???
SQLite試してみたけど、これって日本語が文字コードそのままで入っちゃうのね。
ラッパー噛ますか、自分でコンバータ書かないと駄目なのかな。
246NAME IS NULL:04/11/25 22:23:56 ID:???
エスキューライト? スクライト?
247NAME IS NULL:04/11/25 23:04:04 ID:???
(・∀・)シークァライト!!
248NAME IS NULL:04/11/26 00:59:48 ID:???
エスキューエル いて
249NAME IS NULL:04/12/11 04:26:24 ID:???
ADO.NET Data Provider for SQLite
パスに日本語が入ってるとあぼーんする…orz
250NAME IS NULL:04/12/13 09:35:12 ID:oxhzl4xo
SQLiteについて質問。
1、ストアドプロシージャは使えますか?
2、トランザクションは実装されてますか?
251NAME IS NULL:04/12/13 23:09:16 ID:???
とりあえず http://www.sqlite.org/lang.html 検索汁
252NAME IS NULL:04/12/14 14:08:53 ID:sBR5K/AY
SQLite(DLL)をDelphiで使うには、どのようにしたらいいのでしょうか。
253NAME IS NULL:04/12/14 14:22:39 ID:???
>>252
SQLite Delphi Components
ttp://www.aducom.com/sqlite/
254252:04/12/14 14:25:33 ID:sBR5K/AY
253>
ありがとうございます。
しかしながら、D6のパーソナルだったり。
データベース関連のユニットないんです。
255NAME IS NULL:04/12/15 02:30:36 ID:???
>>250
1. ない
2. されてる
256NAME IS NULL:04/12/15 18:58:27 ID:???
>>255
サンクス
257NAME IS NULL:04/12/20 12:30:56 ID:U2fIrr/6
ADO.NET Data Provider for SQLite
とりあえず日本語は通るみたいだけど、ファイルのパスどうしてる?
258NAME IS NULL:04/12/20 23:31:34 ID:???
>>257
「新しいフォルダ」や、「C:\Documents and Settings\<username>\デスクトップ」など…

ConnectionStringにNew=Trueなんてやっても、

'Finisar.SQLite.SQLiteException' のハンドルされていない例外が sqlite.net.dll で発生しました。
追加情報 : unable to open database file
ハンドルされていない例外 : Finisar.SQLite.SQLiteException: unable to open database file
at Finisar.SQLite.sqlite3.Throw()
at Finisar.SQLite.sqlite3.CheckOK()
at Finisar.SQLite.sqlite3.open(String filename)
at Finisar.SQLite.SQLiteConnection.Open()
(略)

と言われてショボーン。AccessMDB使おうかな
259NAME IS NULL:04/12/21 11:14:53 ID:???
ソースも配布されてるんだから、デバッグしてみ。
260NAME IS NULL:04/12/21 13:13:02 ID:MSZ78en0
>>258
日本語のパスが通らないぞ、という話。
再現できなくてヘンだぞ〜と思っていたら、自分は古いバージョンを使っていた。
SQLite2 のみ対応していた Version 0.18 (July 01, 2004)
までなら日本語パスが使えていた。Version 0.19 と最新 0.20 では確かにダメ。
とりあえず、デバックのヒントということで。
261258:04/12/21 21:17:33 ID:???
情報ありがとうございます。

わかる範囲でソース追いかけてみます
262NAME IS NULL:04/12/22 09:24:02 ID:PW+hMuX+
ADO.NET Data Provider for SQLite (Version 0.20) で
日本語のパスが通るようにデバッグしてみました。

Util.cs の 178 行目
public MarshalStr (String str) : this(Encoding.ASCII,str)

public MarshalStr (String str) : this(Encoding.Default,str)
に変更する。(SQLite2 用に)

sqlite3.cs の 54 行目
_encoding = Encoding.UTF8;

_encoding = Encoding.Default;
に変更する。(SQLite3 用に)

この2ヶ所のエンコーディングを、日本語版.NET でなら shift-jis コードを
読めるように Encoding.Default に変更すれば、日本語のパスは通るようです。
ただし、他の動作に問題がないかは、まともに確認してません。
ASCII を Default に変えるのはたぶん問題ないとしても、
UTF8 の方は、わざわざそれを使っていることに理由ありなら、
まずい変更ということになるわけで、ソースをまだ追跡してないので、
あてにせずに自分でチェックして下さい。
263NAME IS NULL:04/12/22 14:34:23 ID:???
そもそも、ファイルオープン時にファイル名まで
わざわざIntPtrにしてマーシャリングかけてるのが訳分からん。

sqlite3.cs 76 行目
private static extern int sqlite3_open(IntPtr filename, out IntPtr db);

private static extern int sqlite3_open(string filename, out IntPtr db);

sqlite3.cs 578 行目
int res = sqlite3_open(m.GetSQLiteStr(),out DB);

int res = sqlite3_open(filename,out DB);

でいいような気もする。
264NAME IS NULL:04/12/22 15:56:24 ID:TQsgyPh1
お前らってすごいですね。
ちょっぴり感動しました。

私は、カレントディレクトリを変更してファイル名のみで開くようにして逃げました。

何か出来ることあったらやります。
出来ることは少ないので、あんまし役に立てそうに無いですが・・・・
265258:04/12/23 15:21:34 ID:???
>>263
同じようにsqlite2のほうもokでした…
涙で画面が見えません(つд`)
266262:04/12/24 09:18:51 ID:DruLsR8d
>>263 なるほどです。
そこを変えるなら、エンコーディングには手をつけなくてすむし、
その修正が正しいと思います。
そもそも、ファイル名の文字コードとデータの文字コードが
同じにできるとは限らないでしょうから。
ということで、ひとまずデバッグ完了にしてもいいでしょうね。
ご苦労さまでした。

それにしても、SQLite3 対応バージョンになったら、どうして
わざわざファイル名までマーシャリングしているのか、という謎ですが、
ソースを眺めていると、SQLite3 の UTF-16 サポートに対応しかけて
途中で止まっているように見えます。
sqlite3_open16() を使おうとしたものの、ASCII コードと互換性がないから
このやり方ではまずいと思いなおして、やめにした痕跡(日本では困った残骸)
かな、と思いました。
267NAME IS NULL:04/12/24 09:49:25 ID:j+9u7lDN
えっと、おまえらちょっと教えてください。
2歳児程度の知能でわかるように。
今日始めてSQLってものに興味持った。
で、WindowsXP+SQLiteって環境で何かやってみたいなと。
オレはいきなり困ったんだよ。
createなんちゃら、とかでデータベースのファイル作るんだろ?
その作業はいったいどこでどうすればいいのか、と。
試しにコマンドプロンプトから
sqlite hoge
ってやってみた。
当然パスなんか通ってないし何も起きない。
なぁ、助けろお願いします。
268263:04/12/24 11:02:26 ID:???
>>266
あっちではASCIIが標準っぽいから、UTF使わん時は
とりあえずASCIIにしとけやって感じだったんでしょうなぁ。
何にしても、ファイルオープンはOS依存部分なんで、
現状、下手にファイル名はエンコーディング変換すべきじゃないかなと。

それにしても、どの言語使ってても文字コード関係の問題は
プログラマ苦しめてくれるわ _| ̄|○

>>267
sqlite c:\hoge.db で create table したら、 hoge.db が出来てる。
あとはSQL92本とSQLite公式ドキュメント読んで気合で。
269NAME IS NULL:04/12/24 14:52:32 ID:j+9u7lDN
>>268
さんくす。
ただ、書き忘れてたことがあって。
よー考えたらPHPにSQLiteのモジュール組み込んだだけなような。

非常に感謝した。
270NAME IS NULL:04/12/27 12:27:32 ID:UKRyD7qw
ADO.NET Data Provider for SQLite (Version 0.20)
日本語処理デバッグの追加メモ

= 問題 =
デフォルトのオプション設定 Version=2;UTF8Encoding=False で
日本語データを処理できない。
つまり、SQLite2 が Shift-JIS コードの日本語データを処理できない。
(SQLite.exe で入力した日本語データを読めないぞ、とか、
以前から使っていたデータベースを読めないぞ、となる。)

= 解決方法 =
sqlite2.cs 55, 457, 461行目と Util.cs 178行目の
Encoding.ASCII を
Encoding.Default に変更する。
Encoding.GetEncoding("Shift-JIS") として文字コードを明示してもよい。
これで SQLite2 で Shift-JIS を扱えるようになる。

注) Version 0.18 までは、この問題は起こらない。
SQLite2 で UTF8 を使うときには、もともと問題でない。
SQLite3 は UTF8 がデフォルトで、UTF8Encoding=False は無視されるので、
SQLite3 にも無関係。
271NAME IS NULL:04/12/27 13:25:39 ID:???
Defaultはともかく、Shift-JIS決め撃ちはよろしくないな。
Winのコードは、正確にはShift-JISじゃないし。
まぁ、何にしてもUTF-8使おうぜ。
272270:04/12/27 14:10:38 ID:bP0BeZGo
確かに。これからは UTF-8 を使うのが推奨。
273NAME IS NULL:04/12/30 17:41:45 ID:FzyFXvYT
C# で SQLite 使うに
SQLite Query Analyzer (SQLiteQA) は実用にもなるけど、
ソースも参考になりますです。
http://www.monkeyshinez.net/SQLiteQA/
274NAME IS NULL:04/12/30 22:09:30 ID:???
unicodeなんて糞
今までどおりeucかsjisでええわ
275NAME IS NULL:04/12/31 19:03:34 ID:???
> までどおりeucかsjisでええわ
m9(^Д^)プギャー
こういう奴が、MS932と純Shift-JISの区別もつかずに
DBに文字放りこんでるんだろうな。
276NAME IS NULL:05/01/01 00:20:55 ID:???
UTF8 って MS932 の文字も含まれているの?
277NAME IS NULL:05/01/01 04:48:25 ID:???
>>275
しつれいだがどういう繋がりが?
278NAME IS NULL:05/01/01 10:34:56 ID:???
>>277
文字コードの話が出ると必ずこういうのが沸いてくるのはもう仕方ない。
普通にスルーしとけ。
279NAME IS NULL:05/01/01 11:28:51 ID:???
Perl DBD::SQlite で使ってみてるんですが、LIKE 構文でちょっとはまってます。

WHERE string LIKE '%キーワード%' みたいにして文字列中間一致検索してるんですが、
キーワードに % や _ を指定してしまうと全てにマッチしてしまうので困ってます。

じゃあ % や _ はエスケープして LIKE '%\%%' みたいにしたらどうかと思ったらダメだし、
LIKE '%|%%' ESCAPE '|' みたいにエスケープ文字指定しようとすると Syntax Error になるようです。

何か良い解決策はないでしょうか?
280NAME IS NULL:05/01/01 14:12:43 ID:???
>>276
含んでいると言われれば、含んでいると思う。
ただ、重複符号やWAVE DASH変換とかの問題もあるけど。
IANA の登録名がWindows-31Jなので、MS932よりこちらの名称の方が妥当かも。
窓べったりの開発ならShift_JIS、クロス開発なら、UTF-8が安全牌かな・・・

個人的に、SQLiteのウリは可搬性だと思うので、UTF-8使うのがよさげだと思った。
281NAME IS NULL:05/01/01 20:47:45 ID:???
>279
phpでは\エスケープで動いたが。なぜ動かなかったスクリプトを書かない?

$_ = '%_\\';
print "$_ => ";
$_ =~ s/([%_\\])/\\\1/sg;
$_ = "%$_%";
print "$_\n";
282NAME IS NULL:05/01/02 10:39:43 ID:???
これからSQL勉強するのにお勧めの本ってある?
283279:05/01/03 04:28:16 ID:???
>>281
思い通りに動いてくれないスクリプトの該当部分晒します。
($keyword に検索したい文字列が入っています)

$keyword =~ s/([%_\\])/\\$1/g;
my $query = "SELECT * FROM files WHERE namer LIKE ' . $dbh->quote("%$keyword%");
my $sth = $dbh->prepare($query);
$sth->execute();

1行目がないと、% や _ をキーワードに入れた時は
問答無用で全件にマッチしてしまいます。
1行目をつけることによって % や _ はエスケープされ、
適切な物のみがマッチすることが期待されますが、
実際には1件もマッチしません。
284NAME IS NULL:05/01/04 21:46:21 ID:???
> "SELECT * FROM files WHERE namer LIKE '
これはOKなのか?
入力ミスかどうか知らんけど。
285283:05/01/06 01:24:06 ID:???
>>284
すいません、そこは貼り付ける時の編集ミスです
286NAME IS NULL:05/01/06 21:28:40 ID:hqOqZvbU
APACHE2 + PHP5 + PDO + SQLite3 使っていますが何か?
287名無しさん@Linuxザウルス:05/01/06 22:31:57 ID:???
>283
sqlite単体でもそういう結果返ってくるね
PHPはどう処理してるんだろうと思ってソース覗いてみたけど
俺にはさっぱりだったよw
288NAME IS NULL:05/01/07 13:07:13 ID:???
何か、と言われても
そっれがどうした僕ドラえもんって感じだ。
289NAME IS NULL:05/01/07 22:23:15 ID:???
>>286
どこで、が重要。ローカルなら普通すぎ。
290NAME IS NULL:05/01/09 15:37:51 ID:???
PHPでSQLite使いたいのですが、
mbstring.internal_encodingがEUC-JPの状態で
UTF-8しか対応していないという噂のSQLiteに日本語をそのままつっこんで
SELECT * FROM table WHERE hoge LIKE '%あ%' とかもふつうに使えるようなのですが、

問題が起こるケースはどんな時なのでしょうか?
291NAME IS NULL:05/01/09 18:54:09 ID:???
大文字小文字
292290:05/01/10 13:33:03 ID:???
>291さま
私の質問への回答でしょうか。だとしたらありがとうございます。
しかし、今のところ問題がなさそうに見えます。

INSERT INTO table (comment) VALUES ('ごっちゃまぜゴッチャマゼ鬱');
の後に
SELECT * FROM table WHERE comment LIKE '%チャ%';
SELECT * FROM table WHERE comment LIKE '%ちゃ%';
でもちゃんと結果を返してくれます(まぁ実際にはハンカクカナなんぞ入れませんが)。
やりたいことの範囲内で問題がなければいいのかなとも思うのですが。
やりたいこと:掲示板スクリプト(コメント欄で日本語LIKE検索を使いたい)

293NAME IS NULL:05/01/11 16:59:22 ID:???
>>292
う〜む。そーす見ても分からんな。
LIKEじゃなくGLOBを使って、*/?を[*]/[?]にしてみたらどうよ?
いっそ「検索にワイルドカードが使えます」とアナウンスするほうが楽かもしれないが。
294290:05/01/12 00:28:51 ID:???
>293さま
んとですね、私の書き方がまずかったです。
(1) いろんな情報を見た結果、SQLiteで日本語を扱うには
UTF-8でないといけないのかな、と判断した。
(2) しかしながら私の使っているPHPはmbstring.internal_encodingがEUC_JP。
ということはEUCJPでSQL作成→UTF8に文字コード変換→クエリ実行→
結果取得→マルチバイトのカラムはそれぞれEUCJPに文字コード変換、
とやらないと *何か* 問題が発生するだろうなぁ、と考えた。
(3) まぁそういうラッパー作るのが正当なのかな、と考えつつ
ものは試し+ものぐさでEUCJPのままマルチバイト入れても、
ふつうに使える(ように見える)。

という前提があって、さて、本当に問題は起こるのか?というところを知りたいのです。
一見問題なさそうで本格運用して、あとで問題発生が怖いのですよ。
こんなケースでこんな不具合があるよ、
という経験をお持ちの方、いらっしゃいませんかねぇ?

ちなみに当方ロリ○ップでコソーリSQLite使用中
295NAME IS NULL:05/01/12 11:18:21 ID:???
>>294
ああ、そういうことならsubstring()とかlength()等文字列操作関数以外では特に関係無いから。
296NAME IS NULL:05/01/12 13:51:54 ID:???
>>279
私も where xxx like '%あ_い%'
で、検索ができませんでした。
sqlite_escape_string -- クエリパラメータ用に文字列をエスケープする
これ、やった結果は、どのような文字列になるんですかね。
php じゃ、なくて、python でやってるんで、
sqlite_escape_string のようなものがあるか、今調べようとしているんですが、

where xxx like '%あ\_い%'
と \ を入れてもだめだし、
取り合えず、 like 使うときは、 _ があったら、 % にでも
して、やり過ごそうかと思ってますが。
どう?
297296:05/01/12 14:38:21 ID:???
sqlite3.0 で SJIS のデータでやってますが。
like は、 エスケープが使えないのかな。
http://www.mail-archive.com/[email protected]/msg04862.html
http://www.mail-archive.com/[email protected]/msg04863.html
に、それらしい?ことが書いてありましたが、
で、
仕方が無いので、 '_' or '%' があるときは、
like じゃなくて、 glob で * にするとか
like のままで、 _ を % にでも書き換えようかと
思いました。

298NAME IS NULL:05/01/12 16:54:43 ID:???
pdo_sqliteが見当たらないどこいったーー
299NAME IS NULL:05/01/19 22:04:11 ID:???
いつのまにか SQLite3/Ruby ができてた。
300NAME IS NULL:05/01/22 22:08:03 ID:???
LIKE ... ESCAPE 対応sage
301NAME IS NULL:05/01/22 22:43:21 ID:???
alter table 出来るんだね。
302NAME IS NULL:05/01/24 08:54:59 ID:???
ALTER TABLE ... RENAME TABLE ...
テーブル名変更のみ対応の限定版みたいだけどね。少し楽になるかな。
303NAME IS NULL:05/01/31 11:03:59 ID:3JFZomnK
3.10(alpha) age
304NAME IS NULL:05/02/02 07:46:54 ID:mdzMwrr7
Sqliteが使える鯖あったら、教えてチョ。
305NAME IS NULL:05/02/02 10:41:49 ID:???
XREAの一部のサーバーでPHP5が利用可能になったよ。
どのサーバーで使えるかは事前に確認しろよ。
306NAME IS NULL:05/02/02 14:10:53 ID:???
3.1.1 (beta)
307NAME IS NULL:05/02/04 07:30:10 ID:???
>>305
あんがと。
308NAME IS NULL:05/02/13 02:33:51 ID:bTxKUDlt
どうがんばっても3.1.1betaがダウンロードできない・・・
309NAME IS NULL:05/02/16 14:04:19 ID:???
3.1.2を落とせばいいじゃない
310NAME IS NULL:05/02/16 14:25:22 ID:???
stableデタ━━━(゚∀゚)━━━!!!
311NAME IS NULL:05/03/01 17:13:17 ID:+RdvxZ60
PHPネタですが、、

PEAR::DBが1.7.0からsqliteドライバにtableinfoメソッドが追加されたので
PEAR::DB::DataObjectでSQLiteが利用できるようになりました。
createTables.phpによるsqliteのDB解析はいくつかの問題点があったのですが
それらも解消されているようです。(DSNからDB名を取得してschemeのiniファイル
を作る場合にパスもDB名と解釈してしまいエラーがでる問題が解消されている)
312NAME IS NULL:05/03/14 11:06:00 ID:zJnP9H2H
3.1.5age
313NAME IS NULL:2005/03/25(金) 09:46:27 ID:v5PK2Oi/
3.2.0age
314NAME IS NULL:2005/03/26(土) 02:51:21 ID:???
2005 March 21 (3.2.0)

Added support for ALTER TABLE ADD COLUMN.
Added support for the "T" separator in ISO-8601 date/time strings.
Improved support for Cygwin.
Numerous bug fixes and documentation updates.

列追加はちょっといいかな?
315NAME IS NULL:2005/03/28(月) 10:21:23 ID:???
うん。かなり嬉しい。
316NAME IS NULL:2005/03/31(木) 21:11:39 ID:S6NJNymo
3.2.1 age
317NAME IS NULL:皇紀2665/04/01(金) 11:57:56 ID:WCU4nkIR
SQLiteはいつになったらストアドプロシージャに対応しますか?
318NAME IS NULL:皇紀2665/04/01(金) 12:18:15 ID:???
>>317
えーっと、sqliteでそれが出来る意味ってあるの?
319NAME IS NULL:皇紀2665/04/01(金) 12:39:04 ID:???
ttp://www.sqlite.org/changes.html
2005 March 29 (3.2.1)

Fix a memory allocation error in the new ADD COLUMN comment.
Documentation updates

でもトップページのは
This release fixes a memory allocation problem in the new ALTER TABLE ADD COLUMN command.

コメントとコマンドってずいぶん違うな
320NAME IS NULL:皇紀2665/04/01(金) 15:27:20 ID:???
>>318
速度的な面というより他のDBとの互換性の問題で
必要性があるんだが。
321NAME IS NULL:皇紀2665/04/01(金) 15:37:38 ID:???
>>320
詳しく!
322NAME IS NULL:2005/04/02(土) 13:57:56 ID:???
DB”MS”ではないsqliteにはいらない機能だろ。
っていうかどうやってつかうん??
だいたい、ストアドなんてDBMS間でも互換性低いし。
323NAME IS NULL:2005/04/02(土) 15:53:45 ID:???
例えばDBが変更になる可能性がある場合に
SQLの標準ではない関数はストアドファンクションにして
抽象化してしまうとかってやらない?
324NAME IS NULL:2005/04/02(土) 18:48:27 ID:???
>>323
お前はやったことあるのか?
325NAME IS NULL:2005/04/02(土) 22:03:04 ID:???
create_function()があればそれでいい気が駿河
326NAME IS NULL:2005/04/03(日) 00:05:25 ID:???
>>325
何それ?
327NAME IS NULL:2005/04/03(日) 00:19:33 ID:???
PHPならsqlite_create_function()/sqlite_create_aggregate()関数がある。
ttp://jp.php.net/manual/ja/function.sqlite-create-function.php
PHP5って書いてあるけどPECLのSQLiteを使えばPHP4でもOK.
PDO_SQLiteは知らん。
他の言語も知らん。
328NAME IS NULL:2005/04/03(日) 00:59:25 ID:???
>>325
激しく同意。
>>327
Cインターフェースに同名のがある。他言語のやつはこれのwrapperだな。
329NAME IS NULL:2005/04/06(水) 19:33:56 ID:nkLoBP4Q
PHP5+PDO_SQLite+SQLite3使っている人いるか?

開発しているとさ、DELETEしているのにDELETEされないときあるよね。
エラーも出ないし。。。
訳わからん。

330NAME IS NULL:2005/04/07(木) 09:04:06 ID:???
commit したか?
331NAME IS NULL:2005/04/08(金) 15:38:37 ID:+arkX/45
住人まだいるかな?

Win版 3.2.1で、
sqlite> create table test (a integer primary key, b varchar);
sqlite> insert into test values (1, "ほげ");
sqlite> insert into test values (2, "ほげほげ");
sqlite> insert into test values (3, "あらら");
sqlite> select * from test where b like "%ほげ";

とすると、結果が

1|ほげ
sqlite>

なんだが、これってそういう仕様?
なんで2の「ほげほげ」が返ってこないんだ?
332NAME IS NULL:2005/04/08(金) 18:03:26 ID:???
そのSQLをUTF-8で保存して実行してみた。

C:\sqlite>sqlite3 test.db < hoge.txt
1|縺サ縺
2|縺サ縺偵⊇縺

多分、文字コードの問題かと思われる。
333NAME IS NULL:2005/04/10(日) 12:19:44 ID:???
なるほど。UTF-8 だと
1|ほげ
2|ほげほげ
が返りますねえ。
Ver.2.8.15 の SQLite.exe なら、Shift-JIS でも UTF-8 でも、
「ほげほげ」も返ったよ。
SQLite3.exe で Shift-JIS のときだけ、違うのか。
334NAME IS NULL:2005/04/10(日) 22:21:48 ID:???
つかSQLITE_UTF8とSQLITE_ISO8859どっちでコンパイルしたんだ
335333:2005/04/11(月) 10:40:34 ID:???
これは、全部 Precompiled Binaries For Windows
の配布バージョンでの結果。どっちなんでしょー。
336NAME IS NULL:2005/04/11(月) 10:49:36 ID:???
自分でコンパイルした方がいいかもしれんな。
337NAME IS NULL:2005/04/11(月) 20:12:31 ID:???
VC6でコンパイルを試みたが、

sed -e s/--VERS--/`cat ${TOP}/VERSION`/ \

-e s/--VERSION-NUMBER--/`cat ${TOP}/VERSION | sed 's/[^0-9]/ /g' | awk '{printf "%d%03d%03d",$$1,$$2,$$3}'`/ \

$(TOP)/src/sqlite.h.in >sqlite3.h

ここだけがクリア出来ない。
3.0.1の時は無かったよなぁ。
338NAME IS NULL:2005/04/15(金) 12:13:49 ID:???
SQLiteってなんて読むの?
339NAME IS NULL:2005/04/15(金) 12:20:32 ID:???
しーけらいと
340NAME IS NULL:2005/04/15(金) 12:41:05 ID:???
すくりて
341NAME IS NULL:2005/04/15(金) 13:18:32 ID:???
俺はえすきゅーらいとって読んでるけど正しいのかどうかは知らん
342NAME IS NULL:2005/04/15(金) 13:40:07 ID:???
俺もえすきゅーらいと
343NAME IS NULL:2005/04/15(金) 15:33:54 ID:???
PostgreSQL はポスグレ
SQLite はエスキュレ
MySQL はマイスキュレ
344NAME IS NULL:2005/04/15(金) 19:53:21 ID:???
俺もえすきゅーらいとだけど正しいかどうか分からんよなぁ。
345NAME IS NULL:2005/04/17(日) 05:04:22 ID:Jx/K/CRQ
sqliteって速いらしいけど実際どうよ?
http://pcweb.mycom.co.jp/special/2004/php5/006.html
ここの速度比較だとMySQLの方がほとんどの項目で若干速いらしいが。
データ型を宣言しなくても良いっていうのもどういう事なのか良く分からん。
内部的に、型が決まってる方がソートの時に役立つと思うんだがなぁ。
インデックスの出来も気になる。
全文インデックスはあるの?
346NAME IS NULL:2005/04/17(日) 11:48:00 ID:???
型が決まってないってのは、そういう余分な判定処理を省いてるって事。
コンパクトな組み込みDBであるってのがSQLiteの売りなので、
本格的なRDBMS並の機能を使いたいなら、DBの選択が間違っているよ。
347NAME IS NULL:2005/04/17(日) 22:58:06 ID:???
>345
そこの「お詫びと訂正」読んだ?
348NAME IS NULL:2005/04/18(月) 10:00:20 ID:???
まあ、きっちりスレ読めばわかるように、(とりあえず、>>100 からあたりを読む)
SQLite でまとまった数のインサートするには、トランザクションを使わないと遅い。
使えばかなり速い、と覚えておかないと比較を間違うぞ、ということで。
349NAME IS NULL:2005/04/18(月) 10:11:46 ID:???
SQLiteQA >>273 が、SQLite3 対応などのアップデートしたね。
350NAME IS NULL:2005/04/18(月) 10:22:03 ID:???
Berkeley DBやNDBMが
SQLによる操作が可能になったもの、という解釈でいいの?
351NAME IS NULL:2005/04/18(月) 12:24:04 ID:???
BerkeleyはLDAP構築した時によく潰れたから、二度と使うまいと思った。
NDBMはシラネ。
352NAME IS NULL:2005/04/18(月) 15:12:50 ID:???
>>350
まあそんなとこ。
353NAME IS NULL:2005/04/19(火) 22:15:10 ID:kUry0XBZ
SQLite3をインストールしたらコマンドラインのコマンドが
sqliteではなくsqlite3になってしまったのですが、
従来のSQLiteとSQLite3って別物なの?
354NAME IS NULL:2005/04/20(水) 11:07:06 ID:???
>>353
SQLite と SQLite3 はデータベースファイルに互換性がないので、
ダンプしないといけないよ。あと、>>333 のような違いもあるか。
使い勝手はさほど変わんないけどね。

コマンドラインのコマンド(sqlite3, sqlite)もちょっとした
違いがあったように思うけど、詳細は忘れた。試しに使う程度
では、今までと同じように使えるはず。
355NAME IS NULL:2005/04/20(水) 16:10:28 ID:???
>>354
なるほどDBに互換性がないんですね。
ありがとうございました。
356NAME IS NULL:2005/04/21(木) 15:44:54 ID:L2hn0Pnq
mac os x tiger に標準で載るんだってね。
357NAME IS NULL:2005/04/21(木) 16:29:17 ID:???
Solaris10 にも標準で載ってる。
デーモンの稼働監視・操作ツールが 10 で一新されて、
そいつのステータスを保存しておくバックエンド。
おまけでインストールされるとかいう扱いではない。
358NAME IS NULL:2005/04/24(日) 12:17:33 ID:???
SQLiteって最近知ったんだけど昔からあった?
359NAME IS NULL:2005/04/24(日) 12:35:04 ID:???
ずっと前からあったけど昔にはなかった。
360NAME IS NULL:2005/04/24(日) 23:12:37 ID:???
ぶっちゃけSQLiteって素晴しすぎないか?
361NAME IS NULL:2005/04/25(月) 12:21:15 ID:???
ACCESSみたいなフロントエンドが出来たら流行りそうな気がする。
OpenOffice辺りでやってくれんかな。
362NAME IS NULL:2005/04/25(月) 15:51:59 ID:???
<チラシの裏>
Delphi6 personalでプログラミングの勉強はじめたんだけど、
libsqlというVCLとSQLiteを使ってデータベースを作り始めた。
SQLiteの3.2.1には、>>331の問題があるんで、UTF8の変換で扱うようにした。
いろいろと勉強となった。
自分で使うデータベースには、この組み合わせはお手軽で非常によい。
BDE等余計な気を遣わなくても動作するので、ローカルデータベースにオススメ。
今度はBLOBを扱えるようにしたい。
</チラシの裏>
363NAME IS NULL:2005/04/25(月) 23:49:09 ID:???
>>361
OOo に付いて言えば、ボランティア求むって感じみたい。
今メインに据えられている HSQLDB が技術以外の面で問題が多いんで、
↓こいつを完成させれば、可能性は大きいと思う。

http://dba.openoffice.org/drivers/sqlite/index.html

あとは上の方に幾つか上がっていたと思う。
自分は組込みメインで使ってるから、フロントエンドは要らないかな。
364NAME IS NULL:2005/04/26(火) 11:45:25 ID:???
漏れも組込みメインで使ってるけど、
デバッグやテストでそういうツールがあったらなあということはよくある。
365NAME IS NULL:2005/04/28(木) 14:54:39 ID:/d52HoIm
もっとみんなもどんな風に使ってるのか具体例をどんどん挙げろや。
366NAME IS NULL:2005/04/30(土) 12:34:30 ID:???
Mac OS X Tigerは3.1.3が入ってました。
http://pcweb.mycom.co.jp/special/2005/tiger/012.html
Tigerではsqliteが標準で入ってるんだよと聞いたときは
ふーんぐらいでしたが、SpotlightのDBに使われていたとは…
367NAME IS NULL:2005/04/30(土) 22:46:29 ID:???
zaurus で使うと美しいカンジ
368NAME IS NULL:2005/05/05(木) 05:26:18 ID:???
>>365
俺は単なるユーザなんでアレだが

2chブラウザのJane界隈では溜まったログの読み込み高速化のためにidxファイルのDB化としてsqliteを使ってる
現在、5種類のJane派生がsqliteを使用してる

あとはねぇ、RSSブラウザで溜まった記事をsqliteにぶち込んで高速化してるのがあったな
以前話題のあったglucose

ユーザとしては鯖が必要ないのとDLLだけで済むのが利点
369NAME IS NULL:2005/05/05(木) 21:10:54 ID:???
>ユーザとしては鯖が必要ないのとDLLだけで済むのが利点
うんうん。

フリーソフトのデータベースに使えるのってsqliteぐらいしか思いつかないのだが。
とあるフリーソフトのためだけに、ユーザーにMySQLインストールさせるわけにはいかんでしょ。

というわけでsqliteを使いたい(自称)プログラマなのだが、DBは扱ったこと無くて苦戦中。
370NAME IS NULL:2005/05/05(木) 21:18:38 ID:???
>>369
DLLつうことはWindows限定の話だとして、
MySQLサーバもDLLファイル1つだけ済むよ。

MySQLでやってたのをSQLiteに持ってきたいとは思わないけど、
今までファイルでやってきたのをSQLiteで楽できるのは実にいい。
371NAME IS NULL:2005/05/05(木) 21:27:13 ID:???
>MySQLサーバもDLLファイル1つだけ済むよ

!!!!!!
まだ俺も調査が足りないなあ。ありがとう
372NAME IS NULL:2005/05/05(木) 22:26:03 ID:???
うーむ、製品に使いたくて仕方ないのだが、bugがあった時自分で対応できないかも知れないのが怖い…。
ソースを完全に理解すればいいんだろうけど。
373NAME IS NULL:2005/05/05(木) 22:35:25 ID:???
大丈夫、全部あなたが自前で書くよりは bug 少ないはず。
374NAME IS NULL:2005/05/06(金) 11:55:37 ID:???
SQLiteで使えるMySQLAdmin的なものってありますか?
375NAME IS NULL:2005/05/06(金) 13:35:58 ID:???
>>374
sqliteManagerでどうよ?
376NAME IS NULL:2005/05/06(金) 16:43:27 ID:???
確かに保守は問題だな…。自分で書いたコードと違ってデバッグが面倒かも。
377NAME IS NULL:2005/05/06(金) 18:21:45 ID:???
SQLiteも、大手が採用し出してる所見ると、
目立つほど大きなバグは無いんじゃないかとは思う。
後は、実績だけかね。
378NAME IS NULL:2005/05/06(金) 19:28:06 ID:olCECiB8
>>370
firebirdもそーすよ

mysqlは組み込み(embbeded)版を使うには専用の初期化関数を使う必要があるけど、、firebirdは組み込み版とサーバ版と同じでDLL差し替えだけで動く。

あと、たぶんどっちも複数のプログラムで同じDBに同時にアクセスできない。sqliteはできる。
379NAME IS NULL:2005/05/06(金) 19:45:41 ID:???
みんながどんどん使い始めればbugも枯れてくるでしょう。
技術力に自信がなければ先駆者にはならない方がいいと思いますが。
380NAME IS NULL:2005/05/08(日) 20:22:09 ID:??? BE:227208285-
2.x系を使用中です
3.x系って2.xと比べて何が違うんでしょうかね
381NAME IS NULL:2005/05/08(日) 21:54:42 ID:???
>>380
UTF16が使えるとか、BLOBが使えるとか、Prepared Statementが
使えるとか、Collate functionが使えるとか、色々拡張されてる。

かなりバグも出尽くしてきたし、そろそろ移行を勧める。
382NAME IS NULL:2005/05/09(月) 11:31:33 ID:???
現在RubyでSQLite使ってるんだけど
プログラム中でテーブルが作れないんだけど なにかわかりますか?
db = SQLite3::Database.open ( "database_name" )
db.transaction
db.execute( "create talbe t (id integer)" )
db.commit
db.close
383382:2005/05/09(月) 11:33:41 ID:???
db.execute( "create table t (id integer)" )
訂正
384382:2005/05/09(月) 11:55:34 ID:???
すいません 作成できましたorz
385NAME IS NULL:2005/05/09(月) 11:55:56 ID:???
>>382
うちではそれでちゃんと作れてるけど?
何かエラーとか出てないの?ファイルやディレクトリのパーミッションは?
386NAME IS NULL:2005/05/09(月) 11:56:45 ID:???
orz
387NAME IS NULL:2005/05/09(月) 22:15:03 ID:???
イ`
3882?:2005/05/09(月) 23:52:42 ID:???
もしかして プログラム上からは、DROP TABLE出来ない仕様とか?
389NAME IS NULL:2005/05/10(火) 00:53:14 ID:???
いや、普通にできるだろ・・・
390NAME IS NULL:2005/05/12(木) 15:15:43 ID:MipvxbrD
データベースについて質問
下のプログラムを一度に複数実行したとき
テーブルロックを起こします ロックを回避する方法はありますか?
それとも、私がデータベースそのものを勉強しなした方が良いんでしょうか・・・

d = オープン
begin
d.transaction
d.excute("insert into テーブル(a,b) values("a","b")
d.commit
rescue
d.rollback
ensure
d.close
end
391NAME IS NULL:2005/05/13(金) 01:48:50 ID:Gb3T45gj
こんな便利なアプリはPerlくらいLinuxの標準になれればいいのにね。
392NAME IS NULL:2005/05/13(金) 01:51:46 ID:???
>>391
SQLiteって、アプリの位置づけなのか・・・?
どちらかと言えばライブラリだと思うが・・・。
393NAME IS NULL:2005/05/13(金) 02:42:57 ID:???
Perl もアプリじゃないと思うが・・・。
394NAME IS NULL:2005/05/13(金) 10:15:38 ID:???
みんなアプリ
395NAME IS NULL:2005/05/13(金) 12:44:55 ID:???
「プログラム」とか「ソフトウェア」って言えばいいのに「アプリ」なんて言うから。
396NAME IS NULL:2005/05/13(金) 13:27:02 ID:???
細かいことを言うと、
アプリケーションとソフトウェアはほぼ同義。
プログラムはコードそのものを指すことが多い。
397NAME IS NULL:2005/05/13(金) 14:18:36 ID:???
まあ俺定義なんだがな。
398NAME IS NULL:2005/05/13(金) 15:21:48 ID:???
適用業務プログラム
399NAME IS NULL:2005/05/13(金) 21:04:47 ID:???
業務アプリケーションは、業務適用業務プログラム
IBM 出身のおっさんは絶対にアプリケーションって言葉を使わなかったな

ところで sqlite ってデータファイルのサイズはどうですか
頻繁に更新掛けると急激に肥大化したりとかは無いですか?
400NAME IS NULL:2005/05/13(金) 22:05:39 ID:zQWDZ7V/
アッチョンプリケ〜



                                                   ション



今から使うシステムでそんなにハードに使わないけど、
行レベルロックができないのはちょっとなー、
ってことでMySQLを選択したけど、インスト不要ってのはやはりお手軽だね。
401NAME IS NULL:2005/05/14(土) 03:07:40 ID:???
アプリの定義も知らんくせに生意気抜かすな雑魚ども。
402NAME IS NULL:2005/05/14(土) 17:23:41 ID:???
SQLiteって2ちゃんねるのシステム作るぐらいなら十分耐えられるかな?
403NAME IS NULL:2005/05/15(日) 23:15:06 ID:???
釣りか?
404NAME IS NULL:2005/05/16(月) 01:00:22 ID:M4q00F3S
SQLiteって整数型のフィールドで
INSERT時に自動的に値をインクリメントさせるプロパティって
指定できますかね?
405NAME IS NULL:2005/05/16(月) 01:14:30 ID:???
FAQ嫁。
406NAME IS NULL:2005/05/16(月) 15:46:12 ID:???
>>405
FAQ読みました。
"INTEGER PRIMARY KEY"とすればいいんですね。
でもSQLiteって"ALTER TABLE"ができないから
複数カラムを主キーにする場合どうすればいいんだろうか?
とか思いました。
407NAME IS NULL:2005/05/16(月) 21:49:49 ID:???
>>406
おまいはよくここを読んで
http://www.sqlite.org/lang_createtable.html
複数のカラムを主キーにする方法を学べ。
というか、ALTER TABLE使わないと複数カラムを
主キーに出来ないと思ってたのか?

あと、ALTER TABLEもすでに部分的にサポートされてる。
公式ページくらい嫁。

まあ、現状ALTER TALBEじゃ主キーは追加できんがな。
408NAME IS NULL:2005/05/17(火) 01:56:31 ID:???
>>407
ウッセー馬鹿!
409NAME IS NULL:2005/05/17(火) 02:21:59 ID:???
馬鹿に馬鹿と罵倒されるとは可哀相な奴だな>>407
410406:2005/05/17(火) 05:44:38 ID:???
>>407
それはわかっております
411NAME IS NULL:2005/05/17(火) 07:07:15 ID:???
FAQもマニュアルも読む気しない。
お前らは俺の質問に答えてればいいんですよ。
412NAME IS NULL:2005/05/17(火) 09:26:51 ID:???
王子様到来の予感w
413NAME IS NULL:2005/05/17(火) 09:41:55 ID:???
判ってるなら質問するなと言いたい。
414NAME IS NULL:2005/05/17(火) 13:48:17 ID:???
多分別人だとは思うが。

王子様 ◆6XD48Lv1aI
こいつまだ生きてたんだな。
415NAME IS NULL:2005/05/22(日) 13:04:19 ID:cF+W78bF
SQLiteってまさに俺の理想のDBなんだよなぁ。
ありがとうSQLiteの作者の人!
416NAME IS NULL:2005/05/22(日) 21:07:31 ID:???
SQLiteがサポートしているSQLの一覧ってどこかにありませんか?
417NAME IS NULL:2005/05/22(日) 21:51:06 ID:???
普通にあるよ。
418NAME IS NULL:2005/05/22(日) 22:46:43 ID:???
公式サイトにあるよ
419ながも○みずか:2005/05/22(日) 23:32:20 ID:???
ここにあるよ
420NAME IS NULL:2005/05/23(月) 07:38:24 ID:???
それはどこにでもあり、どこにもない。
421NAME IS NULL:2005/05/23(月) 20:13:50 ID:???
SQLiteのSELECT文で
SELECT hoge, 0 AS zero
FROM t_hoge;
みたいにやったらエラーになるんだけど、
AS演算子って使えないのかね?
422NAME IS NULL:2005/05/23(月) 20:47:01 ID:???
d:\temp>sqlite3 t.db
SQLite version 3.2.1
Enter ".help" for instructions
sqlite> create table tbl( i integer primary key);
sqlite> insert into tbl ( i ) values ( 1 );
sqlite> select i as id from tbl;
1
sqlite> select i as id, 0 as zero from tbl;
1|0
sqlite> create view vw as select i as id, 0 as zero from tbl;
sqlite> select zero from vw;
0
sqlite>

使えるよ?
423NAME IS NULL:2005/05/23(月) 23:45:24 ID:???
>>422
ごめんできてた。
しつれいしやしたー(><)
424NAME IS NULL:2005/06/28(火) 20:02:20 ID:kCWpMjUF
sqliteって mod_ruby に対応してる?
425NAME IS NULL:2005/06/28(火) 20:12:52 ID:???
追記
dbi->sqlite です。
426NAME IS NULL:2005/07/02(土) 17:01:07 ID:???
>>392
コンポーネントという表現にすればやたら使い回しが利いていいよ
427NAME IS NULL:2005/07/02(土) 23:23:33 ID:???
ttp://edit2000.net/
このサイトの管理人さんここ見てるかな?
リンク切れが目立つので挫折しかかってるなら
なんとか踏みとどまって欲しい。

普及のためにも和訳できる人はがんがって。
428NAME IS NULL:2005/07/08(金) 15:21:25 ID:BmV8B6lB
ログデータを突っ込もうと思うんだけど、sqliteってローテートっぽい事は出来ないですよね?
mysqlならmergeテーブルを使えば良いんだけど。
429NAME IS NULL:2005/07/08(金) 16:01:15 ID:???
>>428
viewでいいんぢゃね?
430NAME IS NULL:2005/07/08(金) 17:09:08 ID:BmV8B6lB
なるほど。
こんな感じですか?

create table a (i);
create table b (i);
create table c (i);

sqlite> create view abc as select * from a union select * from b union select * from c;

sqlite3で、それぞれ10万件ほど数値を入れてselectするとすごく重いです。
何か間違えていますか?
431NAME IS NULL:2005/07/08(金) 18:16:55 ID:???
インデックス張ってないというオチはないよね?
432429:2005/07/08(金) 18:46:47 ID:???
>>430
うん。そのつもりで書いた。重複するレコードも含めて取り出したいのなら
UNION ALLでつないだほうがいいかもしれんが。

10万件ってかなり大きいな。そんな大量レコードとは思ってなかった。。。
SQLiteで扱うにはしんどいレコード数かもね。

重いって言っているレベルが判らないけど、同じテーブルを作ってウチの
マシン(Pen4 2.6G、MEM 512M)でやったテストだと、こんな感じ。
我慢できないレベル、というほどでもない。
 SELECT COUNT(*) FROM abc → 3秒
 SELECT * FROM abc WHERE i = 1 → 3秒(対象レコード数 1)

ただ、実際の話、全レコードを取り出すの?
そんなに大量のレコードを返されても困ると思うんだけど。
433429:2005/07/08(金) 18:56:49 ID:???
>>432
テスト環境のOS書き忘れた。WinXP Proね。
434428:2005/07/08(金) 20:06:24 ID:BmV8B6lB
>>431
こんな感じでインデックスを付けても、やっぱり遅いです。
create index idx_a on a (i);
viewを使わずに直接テーブルをselectすると速いんですけどね。
(viewと比べると、ちょっと遅いという事で、我慢出来ないほどではないです)

>>432
調べて下さってありがとうございます。
テーブルを直接selectすると、すごく速いので、
viewの遅さが気になります。

また、ある程度データが溜って来た時のバックアップが不安ですね。
1DB 1ファイルでDBをまたがってのviewは作れないとなると、
どう運用したら良いか分かりません。
435NAME IS NULL:2005/07/09(土) 01:43:46 ID:???
>>434
いかに運用するかを考えて金稼いでるんだよね?
とりあえず2chで聞きかじった話をそのまま運用に持っていくなよ。
sqliteは万能じゃないんで、 ある程度の規模になれば
Oracleなんかも選択肢に入れといた方がいいと思う。

ログの頻度はわからないけど、10万件のログを管理する案件ならば、
sqliteで自作するよりOpenViewとかTivoliを買った方が安くすむかもね。
436428:2005/07/11(月) 09:40:44 ID:BGxhRhgA
>>435
いや、単に大学のサーバのログを取るソフトを夏休みに作ってみようかと。。。

でも、良いのが出来たら、シェアウェアとかにしたいので、MySQL(GPL)は嫌なんです。
Posgreは遅いし。
437NAME IS NULL:2005/07/11(月) 14:12:00 ID:lZIKbO9U
誰も買わねぇーYO!!
438NAME IS NULL:2005/07/11(月) 14:20:26 ID:???
シェアウェアでMySQLをGPLで使用できるの?
439NAME IS NULL:2005/07/11(月) 15:14:01 ID:???
>>438
ビジネスモデル的な問題の可能性があるだけで
別に排他じゃないから可能。GPLだとソフト自体の価値よりも
ソフトのサポートに価値を持ってこないと、再配布されるだけだからね。
シェアでライセンスしたものだけ、サポートするってのは
GPLで勝手に持ってけ、でもクレクレ質問厨避けはしたい。
そういうシチュエーションには結構使えるので良いよ。
440NAME IS NULL:2005/07/11(月) 16:01:29 ID:???
レスサンクス。スレ違いって怒られそうだけど(^^;
シェアウェア代金は、ソフトウェア代金ぢゃなくて、サポート代金と考えれば
問題ないわけだね。
この場合、「レジストしなければ機能に制限あり」や「レジストしなければ
10日しか使えない」ってのはOKなんかな。。。
どのみちGPLなんで、要求があればソース公開になってしまうから、
制限を掛けるのに意味はないってのは判るんだけど。
まぁライセンスうんぬんは抜きにして、アプリとDBを一緒に配布できる
SQLiteは便利だよね。
個人的には、PHP5のSQLiteモジュールをさっさとをバージョン3系に
して欲しい今日この頃。。。
441NAME IS NULL:2005/07/11(月) 16:10:09 ID:???
>>440
銭取るのなら、DBをユーザがある程度選べれるように、
複数サポートしてはどうか。
442NAME IS NULL:2005/07/11(月) 16:20:32 ID:???
libmysqlclient ってLGPLじゃなかったかな。
サーバーとは別プロセスのはずだから、GPLの縛りはうけないと思うけど。
443NAME IS NULL:2005/07/11(月) 17:05:10 ID:???
MySQL4以降、クライアントライブラリはLGPLからGPLに変更になったハズ
444NAME IS NULL:2005/07/11(月) 18:37:48 ID:???
>>440
PHP 5.1 のPDO_SQLiteは3系列(CVSでは最新版の3.2.2)だよ。
デフォルト有効でコンパイルされる。
SQLiteは2.8.xのままで、これもデフォルトで有効。
445NAME IS NULL:2005/07/11(月) 23:32:52 ID:???
sqliteをCGIに使うのはさすがに無謀かな?
446NAME IS NULL:2005/07/11(月) 23:40:30 ID:???
別に。
447NAME IS NULL:2005/07/11(月) 23:43:39 ID:???
C++でバリバリCGI書いてます。
SQLite便利です。
みんなもっと低級言語でCGI書こうぜw
448NAME IS NULL:2005/07/12(火) 00:31:34 ID:???
RなDBである必要性を感じさせるCGIってのもなかなか思いつかん
Flashでゲームのセーブとかに使ったりするのには便利か
449NAME IS NULL:2005/07/12(火) 00:32:03 ID:???
C++って低級言語ぢゃないと思うが。
アセンブラでCGI、ハァハァ。
450NAME IS NULL:2005/07/12(火) 00:41:04 ID:???
C++で低級言語と言われる時代になったんだなー。
451NAME IS NULL:2005/07/12(火) 00:46:24 ID:???
Cやasmをたぶらかす罪な言語だしな
.hはC++でも現役さ
452NAME IS NULL:2005/07/12(火) 01:26:29 ID:???
CGIなんて書いてないで全部Apacheモジュールにしてしまうのがおすすめっすよ。

>>448
今ならブログツールあたりかな。
RなDBである必要性というより単に便利だから使われてるんじゃないかと。
453440:2005/07/12(火) 09:07:13 ID:???
>>444
ありがとうございます。
今後、PDO_SQLiteは、バージョン3、SQLite_xxxは、バージョン2と
住み分けるつもりなんでしょうかねぇ。
PDO_SQLiteって、後々仕様がころころと変わりそうでちょっと不安。
しばらく様子見しておきますです。
454NAME IS NULL:2005/07/12(火) 22:52:23 ID:???
HSP向けSQLiteDLLを開発しようとした。
そしたらHSP向けDLLで挫折した。
SQLiteDLL自体は糞簡単だった。

・・・HSPってどこが簡単なんだ
455NAME IS NULL:2005/07/13(水) 10:16:19 ID:???
sqliteって排他制御勝手にやってくれる?
456NAME IS NULL:2005/07/13(水) 12:45:24 ID:???
>>455
勝手に、という意味が判らないけどトランザクションを開始すれば
ロックしてくれる。
ロックの種類はデータベース単位(レコードでもなくテーブルでもなく)の
排他ロックしかないけど。
SQLiteの適用範囲を考えると十分だと思う。
457NAME IS NULL:2005/07/13(水) 20:20:47 ID:???
テーブルロックが行ロック(あるいはページロック)より優れている点はあります?
458NAME IS NULL:2005/07/13(水) 20:57:10 ID:???
>>457
DBを使用する側からすると利点はない。
ロックの範囲が広いほど同時実効性能は低下するから。
同時に多数のレコードをレコードロックする場合はテーブルロックや
ページロックの方が処理が軽い場合があるかもしれないけど。
んで、データベース単位でのロック「しか」できないSQLiteのスレで
何でそんなことを聞くんだい?
459NAME IS NULL:2005/07/13(水) 21:00:59 ID:???
>>458
ごまん。なんかロックネタがあたからつい。
460NAME IS NULL:2005/07/14(木) 10:11:02 ID:???
>>456
サンクス
readするだけでも他からreadできなくなるのね
461NAME IS NULL:2005/07/14(木) 13:17:40 ID:???
>>456
んなこたあない。
462461:2005/07/14(木) 13:18:17 ID:???
ごめん。 >>456 へのレスじゃなくて >>460 ね。
463NAME IS NULL:2005/07/15(金) 17:18:52 ID:???
>>461
つまりreadするとき他でもreadできて
writeするときは他はreadできなくなる普通のロックですね
464NAME IS NULL:2005/07/15(金) 18:29:57 ID:???
>>463
なんのこっちゃ。試せばすぐ判るだろうに。。。

1. プロセスAがトランザクション開始。この時点でテーブル全体が排他ロック。
2. プロセスBが SELECT。ロックされているので待たされる。
3. プロセスAがトランザクション終了
4, プロセスBの SELECT成功
465464:2005/07/15(金) 18:32:05 ID:???
まちがえた。
1. プロセスAがトランザクション開始。この時点でテーブル全体が排他ロック。
 ↓
1. プロセスAがトランザクション開始。この時点でデータベース全体が排他ロック。
466461:2005/07/15(金) 20:44:50 ID:???
>>464
ホントに試したの?
467NAME IS NULL:2005/07/15(金) 21:14:00 ID:???
>>466 間違ってるところがあればフォローしてやればいいぢゃん
ただの煽りだったらチラシの裏にでも書いとけ
>>464の動作はタイムアウトが設定されている時の動作と思われ
タイムアウトが設定されていなければ2は即エラーになる
sqliteのコマンドラインユーティリティ、API、各言語のラッパー
ライブラリでタイムアウトは設定できる
468NAME IS NULL:2005/07/15(金) 22:24:22 ID:???
SELECT中SELECTできればいいよ
469NAME IS NULL:2005/07/16(土) 05:15:26 ID:???
副問い合わせのことかい?
470NAME IS NULL:2005/07/16(土) 11:04:05 ID:???
流れから言って違うだろう
471NAME IS NULL:2005/07/17(日) 13:29:38 ID:???
今、PHP4 + SQLiteで掲示板とかアクセスカウンター作ってるけど
PHP5がもうちょっと普及してくれればデフォルトでSQLiteライブラリが
付いてくるので配布が容易になるのにね。
472461:2005/07/19(火) 11:41:32 ID:???
>>467
手元で試したけど、こうなるよ。

1. プロセスAがトランザクション開始。
2. プロセスBが SELECT。成功。 (A の変更は反映されず)
3. プロセスAがトランザクション終了
4. プロセスBが SELECT。成功。 (A の変更は反映されている)

>>464 のは SQLite 2 の話ではない?
473NAME IS NULL:2005/07/20(水) 12:24:12 ID:???
SQLiteでPostgreSQLのnow()に該当するものってありますか?
nowって文字列が入っちゃうんですが。。。
474NAME IS NULL:2005/07/20(水) 12:39:46 ID:???
now()は知らんが、sqlite3だとCURRENT_TIMESTAMPが実装されてなかったっけ。
475NAME IS NULL:2005/07/20(水) 14:32:58 ID:???
CURRENT_TIMESTAMPのほかにCURRENT_DATE,CURRENT_TIMEもあるね。
http://www.sqlite.org/lang_keywords.html より。
476NAME IS NULL:2005/07/20(水) 14:48:24 ID:???
>>474-475
ありがとん。
PEAR::DBを使ってるんだけど、この当たりを自動で吸収はしてくれないんでしょうかね。
477NAME IS NULL:2005/07/20(水) 15:51:37 ID:???
>>473
% sqlite
sqlite> create table a(date text,time text);
sqlite> insert into a values(date('now'),time('now'));
sqlite> select * from a;
2005-07-20|06:45:20
sqlite> select date('now');
2005-07-20
sqlite> select time('now');
06:47:23

こんな感じ。日本時間にするには localtime を使うっす。
sqlite> select time('now','localtime');
15:50:02
478NAME IS NULL:2005/07/20(水) 16:01:18 ID:???
ついでにちょっと上の方で話題になっているロック関連ネタ。

http://www.sqlite.org/lang_transaction.html
http://www.sqlite.org/lockingv3.html

読んでおくと幸せになれるかも。
479NAME IS NULL:2005/07/20(水) 16:51:31 ID:???
>>478
日本語訳はありませんか?
480NAME IS NULL:2005/07/20(水) 19:10:47 ID:???
>>479
たぶん、誰も訳してない or 公開してない。さほど難しい文章でもないので、ちょっと
自分でやってみることをお薦め。
481NAME IS NULL:2005/07/20(水) 22:24:34 ID:???
SQLiteのプリペードステートメントって実際にコンパイルされてるの?
ストアドプロシージャ不要ですか?
482NAME IS NULL:2005/07/21(木) 01:31:35 ID:???
prepaid statement
何かが違う
483NAME IS NULL:2005/07/21(木) 06:34:07 ID:???
PostgreSQLもCURRENT_XXXあるだろ
484NAME IS NULL:2005/07/21(木) 16:32:01 ID:???
>>482
多分通貨が違うんだろう
485NAME IS NULL:2005/07/23(土) 12:53:57 ID:???
SQLiteCCで見るとNULL値の表示がおかしい(化けてる)んだが、どうなってるんだ?
486NAME IS NULL:2005/07/27(水) 19:24:48 ID:???
SQLiteのDBファイル作るときの拡張子って何をつけてます?
.db?.sqlite?
487NAME IS NULL:2005/07/27(水) 21:39:02 ID:???
漏れは .db にしてたけど、特に根拠はなし。
488NAME IS NULL:2005/07/27(水) 22:42:56 ID:???
俺も.dbだな。なんとなく。
489NAME IS NULL:2005/07/27(水) 22:46:35 ID:???
漏れは根拠なしに.datなんだが。。。少数派?
490NAME IS NULL:2005/07/27(水) 23:01:01 ID:???
たまに嫌がらせを兼ねて.mdbにする
491NAME IS NULL:2005/07/28(木) 08:19:18 ID:???
俺は.dbfだな。
492NAME IS NULL:2005/07/28(木) 15:13:11 ID:???
何とはなしに.sdb
493NAME IS NULL:2005/07/28(木) 15:26:29 ID:???
普段は.dbで、SQLiteであることを示したいときは.sqlt
494NAME IS NULL:2005/07/28(木) 15:44:59 ID:???
何もつけてないよヽ(`Д´)ノ ウワアアン!
495NAME IS NULL:2005/07/28(木) 16:09:02 ID:???
俺も.dbだな。特に理由はない。
496NAME IS NULL:2005/07/29(金) 02:15:37 ID:???
sqlitespyはデフォルトで.db3を認識するみたい
497NAME IS NULL:2005/07/29(金) 02:58:45 ID:???
なつかしーな >dBASE III
ボーランドに乗っ取られる前って何て社名でしたっけ?
498NAME IS NULL:2005/07/29(金) 03:21:46 ID:???
>>497
あしゅとん帝都
499497:2005/07/29(金) 03:54:41 ID:???
そういえば俺、SilverFox派だった

>>498 Thx!!
500497:2005/07/29(金) 04:09:19 ID:???
間違った。

× SilverFox
○ Quick Silver
501NAME IS NULL:2005/08/02(火) 00:00:43 ID:???
>>492
.sdbはまずいんじゃなかったけ。
502NAME IS NULL:2005/08/02(火) 00:41:39 ID:???
まずいって何が?
拡張子なんて人間のためだけにあるんだぞ。
503NAME IS NULL:2005/08/02(火) 01:51:39 ID:???
でも、さすがに .exe とかにはしたくないよね。w
何か他のアプリで使われてるってんじゃないの?
(見たことないけど)
504NAME IS NULL:2005/08/02(火) 04:51:22 ID:???
SQLiteCC3 日本語版

v1.00 (2005.07.31)
About 画面に SQLite2, SQLite3 のライブラリバージョンを表示するように修正.
MSVCP71.DLL を不要にした.
SQLite3 のライブラリを v3.2.2 に変更.
新規に DB ファイルを作れない不具合を修正.
新規作成時に SQLite2 と SQLite3 を選択できるようにした.
505NAME IS NULL:2005/08/02(火) 22:59:20 ID:???
.exeより.comのほうがまずいぞ。
506NAME IS NULL:2005/08/02(火) 23:00:53 ID:???
ここまでの意見を総合すると.dllでFA?
507NAME IS NULL:2005/08/02(火) 23:02:12 ID:???
sqIite3.exeにすればいいさ
508NAME IS NULL:2005/08/02(火) 23:13:44 ID:???
>>507
多分そういう問題じゃない。
509NAME IS NULL:2005/08/02(火) 23:15:49 ID:???
じゃあ .lite とかどうよ。なんかオサレじゃない?
510NAME IS NULL:2005/08/02(火) 23:29:08 ID:???
英数字にこだわる必要は無い。
511NAME IS NULL:2005/08/02(火) 23:32:45 ID:???
.@_@
512NAME IS NULL:2005/08/02(火) 23:41:08 ID:???
>>511
そんな拡張子に関連付けしたくないなw
513NAME IS NULL:2005/08/03(水) 00:02:14 ID:???
.:-p
514NAME IS NULL:2005/08/03(水) 00:13:56 ID:???
>>513
Windowsじゃ":"は使えないよ…
515NAME IS NULL:2005/08/03(水) 00:35:35 ID:???
.^_^;
516NAME IS NULL:2005/08/03(水) 00:42:15 ID:???
.-____-
517NAME IS NULL:2005/08/03(水) 00:50:53 ID:???
.○| ̄|_ (SQLite2)

.○| ̄|_=3 (SQLite3)
518NAME IS NULL:2005/08/03(水) 00:51:10 ID:???
.orz
519NAME IS NULL:2005/08/03(水) 01:04:44 ID:???
>>502
Five: Ok, as a reward for reading this far, here is the dumb thing.

Be VERY, VERY careful what you name your database, especially the extension

For example, if you give all your databases the extension .sdb (SQLite Database, nice name hey? I thought so when I choose it anyway...) you discover that the SDB extension is already associated with APPFIX PACKAGES.

Now, here is the cute part, APPFIX is an executable/package that Windows XP recognizes, and it will, (emphasis mine) ADD THE DATABASE TO THE SYSTEM RESTORE FUNCTIONALITY
http://www.sqlite.org/cvstrac/wiki?p=PerformanceTuningWindows
520NAME IS NULL:2005/08/03(水) 01:21:55 ID:???
何かスレが伸びてるから、新しい展開があったのかと思ってきたら
521NAME IS NULL:2005/08/03(水) 03:56:41 ID:???
>>519
よくわかんないから訳して。
522NAME IS NULL:2005/08/03(水) 10:17:04 ID:???
>>521
意訳: WinXPだとsdbはAPPFIXに関連づけされてるからやめとけ。
523NAME IS NULL:2005/08/03(水) 10:24:50 ID:???
拡張子とか関連付けとか、おまいらまさかWindowsで使ってるんでつか
524NAME IS NULL:2005/08/03(水) 10:50:43 ID:???
>>523
Windows「でも」使ってるよ。これからはクロスプラットフォームですよ。w
525NAME IS NULL:2005/08/03(水) 11:02:26 ID:???
Winで開発して、Linuxで運用ってパターンが結構多いんじゃないかな。
526NAME IS NULL:2005/08/03(水) 15:38:50 ID:???
おれは.cgiにしてる。
ダウンロードされないようにw
527NAME IS NULL:2005/08/03(水) 21:00:52 ID:???
>>524
wxWidgetsとかSDLとか使ってんの?
最近はクロスさせるときはJavaばっかだな

>>526
wつけるまでも無く昔からある小技だよ。
528NAME IS NULL:2005/08/04(木) 00:19:59 ID:???
>>527
クライアントアプリで使ってるの?
529NAME IS NULL:2005/08/04(木) 22:47:12 ID:???
>>528
HypersonicSQLならクライアントで使ってるよ
JDBCが強力でぬるま湯状態な気がしないでもない

SQLiteはCGIと一緒に使ってみたいな
mod_pythonと連携出来たら鬼な気がする
530NAME IS NULL:2005/08/09(火) 00:58:40 ID:D+KA1pWN
PerlでDBD::SQLite使おうと思ってるけど、バイナリって格納できる?
531NAME IS NULL:2005/08/14(日) 16:58:53 ID:???
mutexでわざわざ排他制御かけて同時にアクセスしないようにしてやっても。
タイミングによってsqliteが完全停止するんだが。
ちなみにVCね。
使えないなこれ。
532NAME IS NULL:2005/08/14(日) 17:57:54 ID:???
MSDEつかえよ。
533NAME IS NULL:2005/08/16(火) 03:42:12 ID:???
>>531
お前のコードがバグってるだけだろ。

アホがコードも晒さずにイキがってんじゃねーよ、カスが
534NAME IS NULL:2005/08/16(火) 22:05:02 ID:???
transactionかければ勝手に排他されるんじゃないの?
535NAME IS NULL:2005/08/19(金) 02:45:55 ID:???
格納する値の型に関する制限がちょっと緩めなところが使いやすいけれど、Alter Table系が弱めだね。
utf-8以外のencodingに対応した関数群の実装も提供されて欲しいなぁ。。
536NAME IS NULL:2005/08/19(金) 02:48:05 ID:???
>>530
> PerlでDBD::SQLite使おうと思ってるけど、バイナリって格納できる?
DBD::SQLiteはよく知らないけど、ver3だとBLOB型として格納出来るよ。
ver2の場合はBASE64とかでencodeして放り込むんだろうか?
使った事無いから良くわからない。。
537NAME IS NULL:2005/08/19(金) 02:52:50 ID:???
>>532
MSDEはとても良いと思うんだけれど、インスコ作業が必要だよ。。
その点SQLiteならstatic linkにも出来るので場合によっては良いよ。
538NAME IS NULL:2005/08/19(金) 21:46:29 ID:???
>>533
バグではないけど、タイミングを再現できないのでよくわからない。
どうも複数のアプリから同時にアクセスするとおかしくなるみたい。
もちろんデータベースはまったく別のもの。

他のタイミングでもなることがあるけど、そこは確実にとまるみたいだね。
多分共有領域の使い方がおかしいんだろう。
とまる構文はdelete from table;ってのが起こり易い

>>534
mutexによる排他に加えてtransactionももちろんやってみた。
結果は同じ。
539538:2005/08/19(金) 21:47:42 ID:???
ちなみにDLLは3系のものを公式からとってきてやってみた。
1,2両方同じだった。
540538:2005/08/19(金) 21:54:54 ID:???
あと気になったのがtryで囲ってやらないとエラーが出たときにアクセス違反でアプリが完全に落ちるね
これは仕様かな?仕様じゃないならそれが原因に関係してるかもね。
541NAME IS NULL:2005/08/19(金) 22:23:03 ID:???
>531
検証したいなぁ
コードうpきぼん
542NAME IS NULL:2005/08/19(金) 22:35:24 ID:???
再現コードも出さずきちんと問題の検証もできてない段階で、
「使えない」とか「おかしい」とか断定するというのは一体どういう了見なのか。
543NAME IS NULL:2005/08/19(金) 22:44:36 ID:???
>>537
じゃあ、MySQL
544NAME IS NULL:2005/08/19(金) 23:14:03 ID:???
MSDE……開発「自体」に使えない(試験結果ぶち込むとかBTSのデータぶち込むとか)
MySQL……内部で使うだけならいいんだけど。GPL汚染を避けるために金がかかるとなると
金出してくれる人を説得するのがしんどくて_| ̄|○
545NAME IS NULL:2005/08/20(土) 00:36:05 ID:???
「多分」とか「だろう」とか、ソースあるんだから調べろよ。
知ったかする奴に限って、検証能力皆無だから困る。
546NAME IS NULL:2005/08/20(土) 02:10:48 ID:???
>>538
>>531
なんだろ?デッドロックとかになっちゃったのかな。
あんまりよくわからないけれど、sqlite3_busy_timeoutとか設定すれば良いのかな?
547NAME IS NULL:2005/08/20(土) 02:13:06 ID:???
>>540
もし原因がClient CodeじゃなくてSQLite内だったら、
http://www.sqlite.org/cvstrac/tktnew にてチケット発酵汁。
548NAME IS NULL:2005/08/20(土) 02:24:52 ID:???
>>544
MSDEが開発自体に使えないって何でだろ?まぁ開発には1万切るSQLServer2000の
developer版を普通は使いそうな気もするけど。

SQLiteは組み込み用の小型DBだから、排他トランザクションが激しく発生するようなのは、
ちゃんとしたRDBMS使った方が良いんだろうね。
549NAME IS NULL:2005/08/20(土) 15:39:32 ID:???
>>538
DLLじゃなくてSQLiteをスタティックリンクしろ。
DLLだと、DLLをビルドした時に指定したランタイムによっては
アプリ本体とコンフリクトするぞ。
550NAME IS NULL:2005/08/20(土) 18:50:03 ID:???
コンクリートって何?ぐぐってくるけど教えて。
551NAME IS NULL:2005/08/20(土) 21:22:03 ID:???
>>541
すでにその部分だけでも数千行規模になってるのでウプは無理だし、重要な内容なのでセキュ意味でも無理

>>542
中身は大きいけど、再現コードをわざわざ書くまでもないくらい単純だからバグだとすぐわかる。
書いた手順で実際にそっちで再現コード書いたほうが早いんじゃない?
詳細は書いてあるし。不明な点があればいってくれ。

>>546
たぶんデッドロックだね。CPU占有がかかってないから。
それも考えていろいろやってみたけど、タイムアウトが作動してる様子はない。
なんでそこまで言い切れるかって言うと
各行でログを出してデバッグしてみたけど,execした時点で停止、以後ログどころかなにも反応しない。
タイムアウト入れてもね。

>>549
スタティックやったときになぜかアクセス違反で根本的に動作しなかったから。
それは特に調査してないけど。
なんとかやってみるよ。




552NAME IS NULL:2005/08/20(土) 21:23:47 ID:???
ちなみにベースクラスがwxWidgetsなんでそれが影響してる可能性もあるけど。
553NAME IS NULL:2005/08/20(土) 21:35:55 ID:???
>>552
・ExecではなくPrepareとStepを使え
・スタティックリンクでのアクセス違反ってのは、お前のスキル不足が原因
554NAME IS NULL:2005/08/20(土) 22:53:28 ID:???
>>548
馬鹿だからだろ
555NAME IS NULL:2005/08/20(土) 23:37:12 ID:???
もし >>551 = >>552 だとしたら「再現コードをわざわざ書くまでもない」という発想が異常。
556NAME IS NULL:2005/08/20(土) 23:50:15 ID:???
スタティックリンクでアクセス違反になるものを、
DLLにして動く事に疑問を持たないってのが恐ろしいな。
557NAME IS NULL:2005/08/21(日) 00:41:56 ID:???
>>555
なんで?
ほとんどのテストや呼ばれてるAPIの把握は既にあるソースで全部わかる。
wxWidgetsだからどうだってことがあったとしても再現コードの有無には関係ないでしょ。
そっちの可能性がでてきたら再現コードじゃなくネイティブコードとして別に書くし。
可能性の低いものを調べてるほど暇でもない。おそらく関係ないと思う。
wxWidetsはソースから読んでるからね。

>>556
持たないさVC用LIBとDLLがセットで用意されてるんだから。
つっこみどころが的外れ。
ソースはあんまり見てないからわからないけど、TCL使ってたからそこら辺の影響かと思ってね。
VC6で用意されたものを拾ったのだからそれでいいさ。
558NAME IS NULL:2005/08/21(日) 00:49:41 ID:???
仮にSQLiteのバグだとして、そんな意味不明の報告されても開発者は困るだろ。
趣味か業務か知らんが、オマイもPG開発やっているのならそれぐらい判らないか?
また、みんながSQLiteのバグなのか、オマイさんの書いたアプリの問題なのか
切り分けようという姿勢を持っているんだから(興味本位かもしれないが)、
ぐだぐだ言う前に再現コード示したらどうだ?
559NAME IS NULL:2005/08/21(日) 00:52:52 ID:???
>>558
趣味だよ。
だから時間があったら再現でもなんでもしてやるさ。書き込んで即効提示できるほどの暇はないさ。
別にバグ報告するために書き込んでるわけじゃないさ。
どうも正常に動いてないし、同じ症状の人がいないかなとか思ったりしただけさ。
再現コードがどうしてもほしいならぐだぐだいってないで気長にまってなさい。
560NAME IS NULL:2005/08/21(日) 01:02:45 ID:???
なんか支離滅裂な奴だな。まともに取り合って損した。
561NAME IS NULL:2005/08/21(日) 01:51:03 ID:???
スレが伸びてると思ったら夏厨が来てたのか
562NAME IS NULL:2005/08/21(日) 01:53:02 ID:???
Sqlite2.xには排他ロックなんてなかったと思ったけど3.xにはあるのか?
563NAME IS NULL:2005/08/21(日) 01:58:24 ID:???
564NAME IS NULL:2005/08/21(日) 02:04:53 ID:???
>>562
UNIXならfcntl、WindowsならLockFileEx
565NAME IS NULL:2005/08/21(日) 03:55:10 ID:???
>>562
マルチスレッドに対応してるけど、気をつけて使いなさい。
unix,linuxはデフォルトでシングルスレッド構成になっています。
って公式に書いてある。
566NAME IS NULL:2005/08/21(日) 11:28:13 ID:???
既にあるソースで全部分かるとか言ってる割に、
スタティックリックのアクセス違反すら解決出来ない辺り、
とりあえず相当レベルが低いという事だけは分かった。
567NAME IS NULL:2005/08/21(日) 11:28:53 ID:???
リックってなんだ。リンクな。
568NAME IS NULL:2005/08/21(日) 13:51:12 ID:???
>>567
相当レベルが低いなw
569NAME IS NULL:2005/08/21(日) 15:35:07 ID:???
そもそも、複数アプリから同時アクセスとかの用途だと
組み込み型DBより、素直に普通のRDBMSを選んだ方がいいんじゃないかと。

>>557
> 持たないさVC用LIBとDLLがセットで用意されてるんだから。
> つっこみどころが的外れ。
これを見て、ああこいつダメだと思った。
570NAME IS NULL:2005/08/21(日) 17:34:19 ID:???
釣られてみるか。
そもそもそんな凄腕を自慢したいなら自分で検証してみればいいんじゃない?
要するにwxWidgetsも触ったこともないし、触れない。馬鹿を露呈するから文句だけいってよう。
って発想でしょwその方が馬鹿じゃない?
技術的に最高の存在ではないよそりゃ。作れればいいし、バグだらけでも動けばいいよ。仕事でもないし。
駄目でもけっこう。なんか悪いか?
余計なおせわってことに気づかない、自分最高脳内妄想プログラマさんたちは、少しは自分の人間性の
欠落部分に気づいたほうがいいね。
プログラマなんて罵ってなんぼの商売のやつも多いからまあしょうがないんだろうけどw
そんなんで人生楽しいか?


571NAME IS NULL:2005/08/21(日) 18:59:55 ID:???
>>570って>>531なのか?

>>531では根拠も示さずに一方的にSQLiteを罵倒して、
技術的に突っ込まれると「人間性の欠落」かよw

お前が自己向上意欲のないカスだって事はよくわかったから、
とりあえず「>>531は私のアプリがバグってるだけでした」
って認めて非難を撤回しろ。
572NAME IS NULL:2005/08/21(日) 19:30:17 ID:???
意味がわからん、いじでもアプリのせいにして自分で検証して有無をいわさぬ証拠を提示しようとはしないらしい。
しないっていうか出来ないのかw
そこまでいうならやってみせろよ。
簡単だろ?テストコード書くだけなんだから。それもできないくせに他人の技術にけちつけてるわけじゃないよね?
他人をけなすくらいだから10分もあればできるよね?ね?
アプリのバグと撤回するのはそれやってもらわないとねw
プロなら当たり前だよね?こんなこと。証拠もないのに否定してるなんて(プ
573NAME IS NULL:2005/08/21(日) 19:57:17 ID:???
夏厨に縁の無さそうなDB板に夏厨が降臨するとは。
せっかくだからコテハンでも付けてくれよ。
574NAME IS NULL:2005/08/21(日) 21:30:36 ID:???
自称天才プログラマのあほたちはほっといて作業に戻りますわ。
575NAME IS NULL:2005/08/21(日) 21:55:53 ID:???
あ、そうそうソースいじるにしても、DB変えるにしてもここには報告しないから
まあ、ぜいぜいあると思ってる頭つかって自分で問題拾ってくださいな。
576NAME IS NULL:2005/08/21(日) 22:31:40 ID:???
(´-`).。oO(この厨はそもそもここに何しに来たのだろう?)
577NAME IS NULL:2005/08/21(日) 23:09:56 ID:???
この阿呆はどのDB使っても一緒だと思った。
578NAME IS NULL:2005/08/21(日) 23:34:38 ID:???
原因を特定せずにmutex使って多重ロックで回避しようというのが、典型的ダメ発想…
579NAME IS NULL:2005/08/22(月) 00:03:19 ID:???
みんなスネちゃん弄り杉。
580NAME IS NULL:2005/08/22(月) 16:10:26 ID:???
↓というわけで、次の話題どうぞー。
581NAME IS NULL:2005/08/22(月) 22:32:54 ID:???
3.2.3 age
582NAME IS NULL:2005/08/23(火) 16:57:21 ID:???
>>569
VC用libって付いてないよな。
わざわざ lib /DEF:sqlite3.def ってやって作った記憶がある。
583NAME IS NULL:2005/08/23(火) 17:01:59 ID:???
ver3初期はVC用ライブラリ構築用のプロジェクト作ってたが、
だんだん面倒になってきた。
unix系ツール使ってる部分の解決が面倒くさい。
584NAME IS NULL:2005/08/23(火) 21:34:31 ID:???
>>583
え?拡張子がzipのソースは処理済なので問題無いと思うけど。
普通にVSでプロジェクト作ってすぐにlib作れたし。
http://www.sqlite.org/download.html の、Source Codeの上から4つ目。
585NAME IS NULL:2005/08/24(水) 02:54:06 ID:???
なぜ公式には、Windows用スタティックリンクライブラリが
置いてないんだろう。

まぁ、ソースからビルドすりゃいいんだけどさ。
zip版のソースって、.cと.hと.defしかないから、
VCならプロジェクトは自分で作らないとならない。

しかも、zip版には「experimental.c」が抜けてるし。
(sqlite3_clear_bindingsとsqlite3_sleepの実装ファイル)

それはそうと、sqlite3_open16が日本語ファイル名だと
全く使い物にならんのはどうにかならんのか。
(内部でUTF8に変換して、そのままCreateFileAとかに渡してる)

os_win.cでUTF8→UTF16→LPCTSTR→CreateFileするように
直したら使えるようになったけど、激しく無駄。
586NAME IS NULL:2005/08/24(水) 03:42:06 ID:???
>>585
> なぜ公式には、Windows用スタティックリンクライブラリが
> 置いてないんだろう。
>

VC++6,VS2003,VS2005の違いとか、MFC使うか使わないかの違いとかで
それぞれ別に用意するのも大変だからかなぁ。

> まぁ、ソースからビルドすりゃいいんだけどさ。
> zip版のソースって、.cと.hと.defしかないから、
> VCならプロジェクトは自分で作らないとならない。
>
> しかも、zip版には「experimental.c」が抜けてるし。
> (sqlite3_clear_bindingsとsqlite3_sleepの実装ファイル)
>

ぬおー、そんなのが。でも、実装が別の新規のファイルに移ってたりとか
ありがちなのでmakefileでやった方が間違い起きにくいかも。
誰か書いて。。

> それはそうと、sqlite3_open16が日本語ファイル名だと
> 全く使い物にならんのはどうにかならんのか。
> (内部でUTF8に変換して、そのままCreateFileAとかに渡してる)
>
> os_win.cでUTF8→UTF16→LPCTSTR→CreateFileするように
> 直したら使えるようになったけど、激しく無駄。
>

ほんとだ。。sqlite3_open16の中でもう変換しちゃってる。。
sqlite3OsOpenReadWriteに行き着くまでに色々と処理あるし
そこまでを一通りで楽に書きたいんだろうな。。

LPCTSTR って const TCHAR*だからそれより、UTF16ならconst wchar_t*だから
LPCWSTRでCreateFileW呼ぶべきかと思った。

あとsqlite3_open16じゃなくてsqlite3_open呼んでうまくいったら、
明示的にPRAGMA encoding = 'UTF-16' 呼ぶので回避できるかな?
(sqlite3_open16の実装見るとそんな事しかやってないので)
587NAME IS NULL:2005/08/24(水) 04:38:28 ID:???
>>586
>LPCTSTR って const TCHAR*だからそれより、UTF16ならconst wchar_t*だから
>LPCWSTRでCreateFileW呼ぶべきかと思った。

 UTF-8→UTF-16の時点でCreateFileW呼べばいいってのはそうなんだが、
それだとNTでしか動かなくなるし。
 LPCTSTRを使えば、UnicodeビルドとMBCSビルドで使うAPIを適切に
切り替えられるようになる。

>あとsqlite3_open16じゃなくてsqlite3_open呼んでうまくいったら、
>明示的にPRAGMA encoding = 'UTF-16' 呼ぶので回避できるかな?

 sqlite3_openの方も問題ありなんだよね。
 APIドキュメントには「UTF-8のファイル名を与える」って
書いてあったから、律儀にファイル名をUTF-8に変換して与えたら、
見事に文字化けファイル名の出来上がり。

 つまり、sqlite3_openのドキュメントは間違っていて、
実際は「MBCSのファイル名を与える」APIになってる。

 何が一番問題になるかといえば、SQLはUTF-8で与える仕様だけど、
"ATTACH 日本語.db"みたいなファイル名を扱うSQLコマンドを
UTF-8でsqlite3_exec等に渡しても動かないってこと。

 TICKETもらってos_winの改善案を提案するかな。
588NAME IS NULL:2005/08/24(水) 11:40:09 ID:???
>>587
> UTF-8→UTF-16の時点でCreateFileW呼べばいいってのはそうなんだが、
>それだとNTでしか動かなくなるし。
> LPCTSTRを使えば、UnicodeビルドとMBCSビルドで使うAPIを適切に
>切り替えられるようになる。

MBCSビルドの場合はUTF-8→MBCS変換で、UNICODEの時にはUTF-8→UTF-16変換
とコード切り分けているのであればそれで大丈夫かな。

> sqlite3_openの方も問題ありなんだよね。
> APIドキュメントには「UTF-8のファイル名を与える」って
>書いてあったから、律儀にファイル名をUTF-8に変換して与えたら、
>見事に文字化けファイル名の出来上がり。
>
> つまり、sqlite3_openのドキュメントは間違っていて、
>実際は「MBCSのファイル名を与える」APIになってる。
> 何が一番問題になるかといえば、SQLはUTF-8で与える仕様だけど、
>"ATTACH 日本語.db"みたいなファイル名を扱うSQLコマンドを
>UTF-8でsqlite3_exec等に渡しても動かないってこと。

つまりファイルネームはASCIIの範囲内にしとけと。

> TICKETもらってos_winの改善案を提案するか

どちらにしろos_winにはUTF-8でくるという仕様ではあるので
os_winだけの改造になりそうだね。

実装が変わると利用するアプリ側が今度はちゃんとUTF-8 or UTF-16で
渡さないと駄目だね。
589NAME IS NULL:2005/08/25(木) 00:28:21 ID:???
3.2.4 age
590562:2005/08/25(木) 04:55:19 ID:???
あー、レスくれた人ありがとう
3.xって結構2.xと違うんだな
ずっと2.xでやってて特に問題も無いのであまり勉強してなかったよ
591NAME IS NULL:2005/08/27(土) 21:18:31 ID:???
SQLiteのDLL版って何でヘッダファイル置かないんだろうか。
仮宣言をいちいちしなくちゃいけなくてめどい。
592NAME IS NULL:2005/08/27(土) 22:10:31 ID:???
src落としてsqlite3.h使うといいとおもうよ
593NAME IS NULL:2005/08/28(日) 00:29:31 ID:???
>>591
DLL版なんて飾りなのです。
偉い人にはそれが分からんのですよ
594NAME IS NULL:2005/08/28(日) 13:37:00 ID:???
3.2.5 age
595NAME IS NULL:2005/08/28(日) 23:24:53 ID:???
結構ハイペースにリリースされてるんだなぁ
596NAME IS NULL:2005/08/31(水) 16:40:42 ID:QcMvjbbs
SELECT COUNT(DISTINCT hoge) FROM table;
ってやると、syntax error になるんだけど(3.2.2)
これって仕様? それともオレだけ?
なんかいい方法あったら教えて下さい。
597NAME IS NULL:2005/08/31(水) 16:49:01 ID:???
>>596
select count(*) from (select distinct hoge from table);
かな。
598NAME IS NULL:2005/08/31(水) 17:11:38 ID:???
超サンクス.
599NAME IS NULL:2005/09/03(土) 12:55:07 ID:???
カッコ内にいれた瞬間にそれは福問い合わせに修飾してるんだから
そういう仕様は不便でも正しい面があるね
600NAME IS NULL:2005/09/03(土) 12:58:39 ID:???
吹く問い合わせ
601NAME IS NULL:2005/09/03(土) 14:52:29 ID:???
福問い合わせって縁起がよさそうだね
602NAME IS NULL:2005/09/03(土) 15:53:33 ID:???
福問い合わせでNULLがかえってきたら悲しい。
603NAME IS NULL:2005/09/04(日) 12:46:16 ID:???
服縫い合わせ
604NAME IS NULL:2005/09/04(日) 12:59:04 ID:???
厨房が沸いてる
605NAME IS NULL:2005/09/04(日) 16:03:24 ID:???
河豚食い合わせ
606NAME IS NULL:2005/09/04(日) 21:58:55 ID:???
SQLiteManager バージョン 1.1.1を使用しています

Warning: mb_ereg() [function.mb-ereg]: mbregex compile err: unmatched close parenthesis
in /include/ParsingQuery.class.php on line 399

エラーがでるのですが、原因がわかるかたいらっしゃいますか?

OS:FedoraCore3
SQLite バージョン 2.8.14 / PHP バージョン 5.0.3
607NAME IS NULL:2005/09/04(日) 22:23:47 ID:???
>>606
いや、そのエラーのとおり、正規表現の括弧の対応が取れてないんじゃない?
そのあたりのコードを読み直してみたら?
608NAME IS NULL:2005/09/10(土) 00:55:13 ID:???
カリカリチューニングの仕方を教えてください。
609名無しさん@そうだ選挙に行こう:2005/09/11(日) 01:31:57 ID:???
ガリガリ君なら上げます
610NAME IS NULL:2005/09/14(水) 02:12:55 ID:??? BE:56802252-
先週本屋でSQLite入門っていう本を見つけた
611NAME IS NULL:2005/09/14(水) 02:16:08 ID:???
612NAME IS NULL:2005/09/14(水) 09:35:36 ID:Zl9QgQIJ
レビューキボn
613NAME IS NULL:2005/09/14(水) 21:19:36 ID:???
それさきおとといぐらいに買ってきたよ。
PHPだとblogのサンプルが乗ってた。あといろんな言語から使う方法も書いてあった。
とりあえず私はPHPだけで使いたかったので半分ぐらいしか読むとこ無かったです。
あとでほかの言語で使おうとか思ってる人にはお勧めかもしれません。

それとサンプルのコーディングの仕方が特殊?
(というか趣味グラマなんでよくわかってないんですけど)

<?php
function hoge() {
?>
HTML...
...
...
<?php
}

function huga() {
?>
HTML...
...
...
<?php
}

こんな感じでした。
614NAME IS NULL:2005/09/14(水) 22:17:51 ID:???
SQLiteも入門書が出るまでになったか。
PHP5がもっと普及すればSQLiteも普及するんだがな。
肝心のPHP5が・・・
615NAME IS NULL:2005/09/14(水) 23:02:26 ID:???
blog程度の入門書って丸で役に立たないな

>>613
PHPは良くわからんが、早い話がwriteLineを必要行数分繰り返してるだけだと思うよ
616NAME IS NULL:2005/09/14(水) 23:31:45 ID:???
>>613
PHPのプログラムの書き方の中では余りスタンダードな書き方ではないな。
PHP(ロジック)よりもHTML(見栄え)に重点をおいた書き方だから。

PHP+SQLite本としては「PHP5徹底攻略」を薦める。
ただこの本はPHP"5"本としては個人的には物足りない内容。
617NAME IS NULL:2005/09/15(木) 11:33:29 ID:CNPf8Lex
PHP5使えるレンタルサーバってある?
Yahooウェブホスティングのライトプランは使えるようなんだが・・・
http://help.yahoo.co.jp/help/jp/webhosting/light/manage/manage-23.html
618NAME IS NULL:2005/09/15(木) 13:51:27 ID:???
>>613
目次見た感じだと、「いろんな言語」の中に、肝心の C/C++ が無い気がするのだが、
激しく片手落ちじゃね?
619NAME IS NULL:2005/09/15(木) 16:30:44 ID:???
げげ、C/C++はないですね。でもなでしこはあります。
620NAME IS NULL:2005/09/15(木) 18:56:07 ID:???
>>617
XREAには、一部PHP5の導入された鯖がある。
全部じゃないから注意しる。
あとはVPS鯖借りて自分でインストールするとか。
621NAME IS NULL:2005/09/17(土) 01:20:08 ID:???
>>618
フリーなデータベースエンジンの入門書って、どれもこれも似たような傾向があって、
載っているのはPHPかPerlで掲示板かBlogを作るだけのサンプルだったりするから、
C/C++の話なんて、まず絶対に出てこない。なぜなら、そこらへんの普通の
CGIの使えるサーバーって、Cコンパイラ使わせてくれないもん。

SQLiteは、アプリケーションに組み込めるというのが面白いところだと思うけど、
残念ながら、入門書にそこまで期待はできんでしょう。
622NAME IS NULL:2005/09/17(土) 10:46:34 ID:???
>>611の本ってSQLの基本とかも眞鍋ますか?
623NAME IS NULL:2005/09/17(土) 14:13:02 ID:???
>>622
とりあえず、お前が眞鍋かをり好きだということは学べた。
624NAME IS NULL:2005/09/17(土) 15:26:30 ID:???
>>622
SQL基本を勉強したいなら、特定のソフト、とくにフリーのデータベースの入門書は
避けたほうがいいよ。

フリーのデータベースが悪いという意味では絶対ないんだけど、残念ながら、
その手の解説本は、かなり多くの場合、ソフトのインストール方法と、PHPやPerlなどから
呼び出して使う場合の応用例ばっかりにページをさいていることが多くて、SQLそのもの
やデータベースの基本についての説明は、ほとんどないか、あっても杜撰な場合が多い。

本屋さんで、普通に「SQL入門」「SQLハンドブック」「SQL解説」みたいに、そっけない
題名になっている本を立ち読みして、説明の文体が自分にあいそうなもの(これ重要)を
買うか、自分の住んでいる市の図書館のホームページで「SQL」という言葉を含んでいる
題名の本を検索して適当に数冊借りてみるほうがいいと思う。
625NAME IS NULL:2005/09/17(土) 16:31:36 ID:???
>>624
サンクス、やっぱSQLの入門本から始めたほうがいいかぁ
626NAME IS NULL:2005/09/17(土) 20:23:42 ID:ZRoePNYb
>>620
サンクス、やっぱりVPS借りて自分でインスコするのが一番よさげですね。

試しにYahooウェブホスティングのライトプランでSQLite動かしてみた。
--ソース--
$con = sqlite_open('/****/htdocs/data/hoge.dbf');
sqlite_busy_timeout($con, 10000); //10秒
$results = sqlite_array_query($con, "select * from sample");
$errno = sqlite_last_error($con);
sqlite_close($con);
if ($errno != 0) printf("[%d] %s", $errno, sqlite_error_string($errno));

--実行結果--
Warning: sqlite_query() [function.sqlite-query]: database is locked in /****/htdocs/test.php on line 21
[5] database is lock

何故かデータベースがロックしてるエラーが・・・orz
627NAME IS NULL:2005/09/17(土) 20:27:49 ID:ZRoePNYb
>>626
またsqlite_open()してすぐsqlite_close()してみると

--ソース--
$con = sqlite_open('/****/htdocs/data/hoge.dbf');
sqlite_busy_timeout($con, 10000); //10秒
$errno = sqlite_last_error($con);
sqlite_close($con);
if ($errno != 0) printf("[%d] %s", $errno, sqlite_error_string($errno));

hoge.dbf は作成されるがファイルサイズが 0バイト。
これってひょっとしてデータベースの作成に失敗してます?

--phpinfo()の結果--
PHP Version 5.0.4
(省略)
SQLite
PECL Module version 2.0-dev $Id: sqlite.c,v 1.146.2.3 2004/09/26 01:41:40 wez Exp $
SQLite Library 2.8.14
SQLite Encoding iso8859
628NAME IS NULL:2005/09/17(土) 20:56:48 ID:???
>>626
テーブルはあらかじめ作ってあるんだよな?
とりあえず、同じプログラムをローカルのPHP環境で実行してみれ。
それでうまく行くなら、Yahooの問題。
629NAME IS NULL:2005/09/18(日) 15:03:14 ID:/TphbGBL
3.2.6 age
630NAME IS NULL:2005/09/18(日) 15:21:16 ID:???
お。このスレで話題になった COUNT(DISTINCT) がサポートされたね。
631NAME IS NULL:2005/09/18(日) 15:30:33 ID:???
drh は絶対このスレ見てるな。
632NAME IS NULL:2005/09/18(日) 20:49:02 ID:???
>>631
んなわきゃねえw
633NAME IS NULL:2005/09/19(月) 15:13:05 ID:ZFm7QfVl
>>628
うん、テーブルは作ってある。ローカルでもテスト済み。
ただ、ローカルの環境がWindowsだったのでFreeBSDとバイナリ互換ないのかなとおもって、
データベースを最初から作り直すことにしたんだが、 create table でも同じ現象が発生。
どうやらビージータイムアウトして database is lock が返ってきているみたいなので
sqlite_busy_timeout() で時間を延長してみたがやっぱりNG。

・・・自分でDBもどき作るしかないのかね・・・鬱だ・・・orz.
634NAME IS NULL:2005/09/19(月) 20:03:45 ID:qEdHNoTH
>>633

>>472 SQLite3 のロックの挙動で >>464,465 が SQLite 2.8 の例。
>>478 に解説あり。トランザクションを閉じれば回避できそうだけど。
635NAME IS NULL:2005/09/23(金) 15:11:56 ID:???
3.2.6でos_win.cの実装が多少変更されたが、ただ単に
NTでは問答無用でUnicode系のWin32 APIを使うだけみたいだ。
UTF-8文字列をMBCS系のAPIに渡したり、MBCS文字列を
UTF-8として処理するのは変わらず。

いいかげん、UTF-8 <> MBCSだってことに気付けYO!
636NAME IS NULL:2005/09/23(金) 15:20:33 ID:???
sqliteはWCS(のみ)で使うのが正しいのだと思う。たぶん。
637NAME IS NULL:2005/09/23(金) 15:29:47 ID:???
>>636
3.2.6以降は、sqlite3_open16等の関数だけを使えば
NTなら日本語ファイル名が使えるようになったが、
Win9xでは結局ダメ。

NTでの挙動
sqlite3_open16(UTF-16)→内部でUTF-8に変換
→os_win.cで再びUTF-16に変換してCreateFileW
→OK

9xでの挙動
sqlite3_open16(UTF-16)→内部でUTF-8に変換
→os_win.cでCreateFileAにUTF-8を渡す
→文字化けファイル名のできあがり
638NAME IS NULL:2005/09/23(金) 15:39:15 ID:???
>>637
うん。。Win9xは駄目だね。
うちはsqlite使うものはWin9xは対応しない。(要求もあまりないので)
639NAME IS NULL:2005/09/23(金) 15:52:40 ID:???
>>637
そこまで調べてるんなら、
パッチ作って送ったらいいんじゃね?
640NAME IS NULL:2005/09/23(金) 21:37:00 ID:???
>>635
os_win.c見てみたけど、NTの場合に問答無用でW系のAPI使ってるわけではなくて、
utf8ToUnicode関数でWide文字列に変換してから処理してるから大丈夫じゃない?

非16系の関数が、3.2.5まではMBCSのファイルパスを受け取ってたけど、今度からは
utf8にして渡さないとね。
641NAME IS NULL:2005/09/23(金) 23:04:19 ID:???
>>640
>>637

あと、本来はsqlite3_openは「UTF-8のファイルパスを受け取る」
と規定されてるので、MBCSじゃないと動かなかった今までは
実装が間違っていたということ。

Win9xでは、3.2.6でも結局MBCSで渡さないと動かんけど。
642640:2005/09/23(金) 23:36:02 ID:???
>>641

(637)
>3.2.6以降は、sqlite3_open16等の関数だけを使えば
>NTなら日本語ファイル名が使えるようになったが、

sqlite3_open16等の関数「だけ」なんて事は無いかと思った。
sqlite3_openとかでも3.2.6からは大丈夫。
どっちも中で使ってるのは、utf8食うopenDatabaseだから。
(sqlite3_open16では)

>あと、本来はsqlite3_openは「UTF-8のファイルパスを受け取る」
>と規定されてるので、MBCSじゃないと動かなかった今までは
>実装が間違っていたということ。

はい。それはその通りで過去に教えてもらいますたね。

>Win9xでは、3.2.6でも結局MBCSで渡さないと動かんけど。

Win9xはW系のAPI無いしで、16系のは使わないようにすれば
良いだけだからあまり大した問題には感じないなぁ。

UTF16->MBCS変換してファイルコールする実装にしてないのは
まぁさぼりだろうけど。とにかく内部ではutf8で通して楽したいってのが
開発者の考えだろうね。(ちょっと動作的に無駄が生じるけど)
643642:2005/09/23(金) 23:42:54 ID:???
>>642
>sqlite3_open16等の関数「だけ」なんて事は無いかと思った。
>sqlite3_openとかでも3.2.6からは大丈夫。
>どっちも中で使ってるのは、utf8食うopenDatabaseだから。
>(sqlite3_open16では)

ちょっと書き損ねた。
sqlite3_open16では、中で引数のファイルネームをUTF-16からUTF-8に
変換して、openDatabaseを呼んでいると。

自分は16系のは日頃使ってないけど、sqlite3_openで、非ASCII文字が
入ったパスのファイルをきちんと利用出来ているよ。

635の、
>UTF-8文字列をMBCS系のAPIに渡したり、MBCS文字列を
>UTF-8として処理するのは変わらず。

っていうのが残っていたら3.2.6で残っていたら問題だけれど、
os_win.cとか見ても問題無いかと思ったので、640を書き込んだ。

(Win9xは、、別にいいでしょ。。)
644642:2005/09/23(金) 23:50:50 ID:???
>>637
>
> 9xでの挙動
> sqlite3_open16(UTF-16)→内部でUTF-8に変換
> →os_win.cでCreateFileAにUTF-8を渡す
> →文字化けファイル名のできあがり
>

って、これが駄目なのか。。

Win9xで使う時にはMBCSでsqlite3_open呼ぶとかは…汚いか。。
ちゃんとWin9xでも動かしたい人は、os_win.cの中でUTF-8->MBCS変換の
処理を入れると…。

すんまそん。
645642:2005/09/24(土) 00:08:57 ID:???
結局、3.2.6のマルチバイト文字の扱いの問題は、os_win.cで、
utf-8をutf-16に変換出来ない時に(NTの時にしか変換しない)
MBCSを受け取るA系のAPIを、utf-8を渡して呼び出していると。

なので、
NT系
 sqlite3_open OK
sqlite3_open16 OK
9x系
sqlite3_open Not OK (バグ回避に過ぎないけどMBCSで呼び出せば使えるかも)
sqlite3_open16 Not OK

だと思う。
646NAME IS NULL:2005/09/29(木) 00:37:06 ID:???
copy復活マダー?
647NAME IS NULL:2005/09/29(木) 18:55:01 ID:???
3.2.7がでとるな。
648NAME IS NULL:2005/10/03(月) 23:52:55 ID:???
mysqlのマルチプルinsertほしいなぁ。
649NAME IS NULL:2005/10/04(火) 00:04:43 ID:???
>>648
スピードの問題だけであればトランザクションの中に入れるだけで
100倍くらい速くなったよ。
650NAME IS NULL:2005/10/04(火) 00:41:51 ID:???
>>649
うん。そうなんだけど、さらに高速にならないかなぁって。
最近パフォーマンス厨なもんで。
651NAME IS NULL:2005/10/04(火) 01:56:50 ID:???
>>650

sqlite3* hDB;
sqlite3_open( "hoge.db", &hDB );
sqlite3_stmt* hStmt;
sqlite3_prepare( hDB, "INSERT INTO hoge VALUES(?)", -1, &hStme, NULL );

int numbers[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for( int i = 0 ; i < sizeof( numbers ) / sizeof( int ) : ++i ){
  sqlite3_bind_int( hStmt, 1, numbers[i] );
  sqlite3_step( hStmt );
  sqlite3_reset( hStmt );
}

sqlite3_finalize( hStmt );
sqlite3_close( hDB );
652NAME IS NULL:2005/10/04(火) 01:59:27 ID:???
>>651のfor文の前後からBEGIN TRANSACTIONと
COMMIT TRANSACTIONがぬけてた。
補完よろしく。
653NAME IS NULL:2005/10/04(火) 10:08:33 ID:???
それはどのへんが高速化のポイントなの?
654NAME IS NULL:2005/10/04(火) 12:07:39 ID:???
prepareしてる辺りじゃないの。
655NAME IS NULL:2005/10/04(火) 13:58:35 ID:???
なるほど。
それならわざわざコードを出さなくてもそう説明してくれた方がわかりやすいね。
656NAME IS NULL:2005/10/06(木) 17:41:00 ID:BBu9gQvT
ttp://www.amazon.co.jp/exec/obidos/ASIN/4883374297/qid=1128587859/sr=1-2/ref=sr_1_8_2/249-2459413-7912369
これってどうなんだろ。どうもSQLiteを基本から学ぶのには適さないみたいだけど、サンプルとして見たらどうなのかな?
657NAME IS NULL:2005/10/06(木) 23:09:26 ID:???
>>656
その書評を見る限りでは・・・ だめなんじゃない?

率直な話、PHPって書いてある時点で、たいていの本は「ダメ警報発令」だと思う。

「何々SQLサーバーの入門書」と銘打っておきながら、PHPが全面に出ている本は、
結局のところ、「何々SQLサーバー」そのものに関する固有の情報や、他のサーバーに
ない特徴といったものは、ほとんど載ってない場合がほとんどだから。
もちろん、これは一般的な傾向であって、この本がそうだと確認したわけじゃないけど。
658NAME IS NULL:2005/10/09(日) 14:45:10 ID:???
SQLiteがTcl/Tkコミュニティから生まれたものだということが無視されて
PHPとPythonばかりフィーチャーされている件について・・・
659NAME IS NULL:2005/10/09(日) 16:35:12 ID:???
>>658
SQLite のサイトを見れば、tclとの関連が深いことはすぐわかると思うんだけど。
660NAME IS NULL:2005/10/10(月) 01:09:16 ID:???
ごめん知らなかった。
661NAME IS NULL:2005/10/10(月) 01:22:17 ID:???
tarball 開いたら Tcl のスクリプトがぎょーさん出てくるがな。
662NAME IS NULL:2005/10/10(月) 03:40:52 ID:???
windows用に sqlite3 の zip を落としてくると、中には .exe 一個だけ
しかなかったり・・・
663NAME IS NULL:2005/10/10(月) 17:36:57 ID:U3RRRrud
>>662
dllさがしている?それなら別のzip
664NAME IS NULL:2005/10/10(月) 19:47:27 ID:???
>>663
>>662>>661 へのレスと思われ。
665NAME IS NULL:2005/10/11(火) 23:32:37 ID:???
データベースのサイズに関してです。
ttp://www.sqlite.org/whentouse.html
> For smaller databases, the amount of memory required is not a problem,
> but when database begin to grow into the multi-gigabyte range, the size
> of the bitmap can get quite large. If you need to store and modify more than
> a few dozen GB of data, you should consider using a different database engine.
とあります。要は「数GBオーダーのサイズになったらそろそろ黄信号」つうことですよね?
ちょうど数GB程度になるであろう運用を考えているのですが、sqliteを採用するかどうかで
迷い中です。

詳しい方、あるいは似た状況の方、取るべき指針について御教示下され。。。
666NAME IS NULL:2005/10/12(水) 01:04:10 ID:???
>>665
詳しくないけど突っ込んでみる。
10GBでも2.5MBだけどメモリ不足なの?
667NAME IS NULL:2005/10/12(水) 01:09:41 ID:???
組み込みDBでGはきついんじゃないかな。
素直にRDBMSにした方がいいと思われ。
668665:2005/10/12(水) 03:35:57 ID:???
>>666
うわああああすみません!ごめんなさい!大ボケでした!
ケタ3つ間違えて、10GBで2.5GBと見積ってました
2.5MBのメモリ量なら、全く問題ありませんです・・・

>>667
こちらの方にも申し訳ないです、私めの認識+記述不足でした。
組み込みでなく、リソースがそこそこあるPC上での運用なのであります。

お二方、御迷惑おかけしまして大変申し訳ありませんでした orz _no
「RAM >= 256MB、HDD豊富なPC上で、10GB程度のsqlite DB運用は問題無し」
がFAということでよろしいでしょうか・・・?
669NAME IS NULL:2005/10/12(水) 03:37:37 ID:???
>>665
知識のないオレだけど、英文の内容を見る限り、別のデータベースエンジンを使うことを
検討すべきだというのは、「a few dozen GB」以上になった場合と書いてある。a few dozen
ってのは「数ダースの」という形容詞だから、「数ギガ」ではなく「数十ギガ」だと思う。

つまり、665さんの見積もり「数ギガ」に対しては、まだ一桁の余裕があるんじゃない?
670NAME IS NULL:2005/10/12(水) 07:42:54 ID:RxTmnOMj
SQLiteの同時接続数は、
コンパイル時に10に制限されているとのことですが
これを設定ファイル等で増やす事はできないのでしょうか?
10というのはいかにも少なすぎる気がするのですが…。
671NAME IS NULL:2005/10/13(木) 04:37:37 ID:???
同時接続の意味が違うような気がする。
672665:2005/10/13(木) 09:42:59 ID:???
>>669
コメントありがとうございます。
言われてみれば確かに「一桁の余裕」ですね。安心感が生まれてきました。
sqlite採用の方向でいってみます。どうもありがとうございました!
673NAME IS NULL:2005/10/13(木) 18:19:15 ID:???
>>671
MySQLで言うmax_connectionsのことではないのでしょうか?
max_connectionsはどこで設定できるのですか?
674NAME IS NULL:2005/10/13(木) 19:10:36 ID:???
何と何を接続するんだ?
675NAME IS NULL:2005/10/13(木) 21:51:16 ID:???
もしかして、もともとコネクションという概念自体がないんですか?
DBなのにtoo many connectionsエラーが出ない?
それはかなりありがたいですね!
676671:2005/10/14(金) 00:00:55 ID:???
>>675
えっと・・・ 間違ってたらゴメン。(おかしかったら突っ込んで>有識者の皆さん)

SQLiteって、基本的には、
「パソコンなりサーバーなりのローカルなディスクの上にファイルを作って、
そのファイルの中のいろんなデータをSQLの命令で検索する。」
という仕事をするためのライブラリで、たいていの場合、ひとつの
アプリケーションがひとつのデータベースのファイルを独占的につかう
のではないの?

(ひとつのデータベースファイルの中に、複数のテーブルを持つことは、
当然できる)

デーモンが常駐するわけでもなし、ソケットでクライアントとサーバーで接続すると
いうわけでもなく、アプリケーションのプログラムが自力でファイルを読む。
DB固有のユーザーという概念もない。単純にアプリがファイルを読み書きするときに
OSで設定されているアクセス権にしたがって処理が進む。トランザクションは
ファイル、つまりデータベース全体のロックで実現している。

で、必要なら、いくらでもSQLiteを内蔵しているアプリケーションを立ち上げて
しまえばいいのではないかと・・・

SQLiteでいう「同時接続数」は、通常はひとつのデータベースファイルを使うのに
対し、「必要に応じてもっとたくさんのファイルも使えますよ、その上限はいくつ
までですよ。」という意味の同時に扱うことのできるデータベースの数のことで、
クライアントがサーバーに接続するときの上限の数ではないと思う。

MySQLのmax_connectionって、サーバーが子プロセスを起動するときの上限の
設定のことだよね? たぶんSQLiteと言葉は似ているけど意味は全然違うと思う。
677NAME IS NULL:2005/10/14(金) 00:57:09 ID:???
>>676
たぶん正しいと思うんだけど、複数のアプリケーションが同時にひとつのファ
イルにアクセスできるから「独占的」という表現はあまり正しくなさげ。

ちなみに、書き込みは 2.x だと flock か何かでファイル全体のロックをして
いたけど、 3.x はそのへんもうすこし緩和されているらしい。
678NAME IS NULL:2005/10/14(金) 02:45:14 ID:???
まあ憶測であれこれ考える前にまずはドキュメント嫁と。
679NAME IS NULL:2005/10/15(土) 12:21:45 ID:???
ドキュメント嫁言いたいだけだろ。
680NAME IS NULL:2005/10/19(水) 19:13:28 ID:K3Pdo6yl
ところで、OpenSSIでクラスタ組んで共有ディレクトリにdbファイル作って、
複数CPU同時読み書き高負荷でやったけど、全然問題なかった。
他に検証やったことある椰子がいたら報告くれ。
openMosixでも可
ttp://openssi.org/cgi-bin/view?page=openssi.html
681NAME IS NULL:2005/10/21(金) 20:37:20 ID:uTNs7eq1
sqlite3_reset()とsqlite3_clear_bindings()の違いって何?
682NAME IS NULL:2005/10/21(金) 22:01:01 ID:aCtEsJXz
>>681
resetは実行結果(column)の消去、clearはパラメータ(bind)の消去
683NAME IS NULL:2005/10/21(金) 22:58:46 ID:???
>>682
なるへそーサンクス。
684NAME IS NULL:2005/10/28(金) 10:28:42 ID:IedZDhzg
>>678
ソース嫁が正しいとおもふ
685NAME IS NULL:2005/10/28(金) 21:47:04 ID:???
sqliteのロゴマークがtcl/tkのロゴマークと同じなのに誰も指摘しない件について
686NAME IS NULL:2005/10/30(日) 01:49:45 ID:???
687NAME IS NULL:2005/10/31(月) 23:25:24 ID:???
よくわかんないけどtcl/tkって何?
688NAME IS NULL:2005/10/31(月) 23:27:45 ID:???
GUIツールキット
689NAME IS NULL:2005/10/31(月) 23:34:04 ID:???
>>688 それはtkのほう。
tclは言語
690NAME IS NULL:2005/11/01(火) 18:03:49 ID:???
ADO.NET Data Provider for SQLite なんだけどさ
ソースコード軽く眺めてたら、Unix系とWindows系で処理が分かれてる。
SQLite.NETのUtil.csで。

これってつまり、monoにもそのまま対応してるってことかな?
691NAME IS NULL:2005/11/02(水) 02:50:21 ID:???
よくわかんないけどmonoって何?
692NAME IS NULL:2005/11/02(水) 02:51:17 ID:???
オープンソース版 .Net
693NAME IS NULL:2005/11/02(水) 08:40:24 ID:???
ReadMe.txtに Version 0.20 からのMono on UNIXサポート追加が書いてあるね。
694NAME IS NULL:2005/11/02(水) 09:20:34 ID:???
>>690
てゆうか、monoのクラスライブラリに Mono.Data.Sqliteっていうのがあるぞ
695NAME IS NULL:2005/11/02(水) 09:39:52 ID:???
消しゴム
696NAME IS NULL:2005/11/03(木) 07:14:39 ID:???
( ゚д゚)ノ ハイ!質問!

SQLite3 で win <-> Linux(unix) 互換性ってあるの?
Linux or FreeBSD に sqlite3 インスコして `sqlite3 test.db` やって

create table hoge(id, kao); insert into hoge(id, kao) values(1, 'ヽ(´ー`)ノマンセー');
ヤったあとwin機に test.db もってって、そっちで運用したいんだが。

要はDBファイルに互換性があるかどうかなんだが・・・。

697NAME IS NULL:2005/11/03(木) 08:26:35 ID:???
文字コードに気をつけりゃ出来るよ。
698NAME IS NULL:2005/11/03(木) 15:35:13 ID:???
あるよ。
別アーキテクチャだったら、試した事無いから分からんけど。
699NAME IS NULL:2005/11/03(木) 15:54:30 ID:???
(6) My linux box is not able to read an SQLite database that was created on my SparcStation.
You need to upgrade your SQLite library to version 2.6.3 or later.
<< http://www.sqlite.org/faq.html

なので、最近のSQLiteはエンディアンの問題も解決されているらしい。
700696:2005/11/03(木) 17:43:09 ID:???
>>697
>>698
>>699
アリガトン。休日なのにスマヌ。
文字コードは大丈夫。

・・・PGが間違えなければね。
701NAME IS NULL:2005/11/04(金) 06:15:36 ID:???
>>696
すでにレスついているけど、ファイルは互換性あるね。とってもうれしい。

サクラウェブで借りているFreeBSDのサーバー上で、PerlのSQliteモジュールを
使ったプログラムを動かしてみて、できたデータベースファイルをFTPで
ダウンロードしてWindowsXP上のSQLiteで読んでみたら、何の問題もなかった。
702NAME IS NULL:2005/11/05(土) 15:28:06 ID:lUG2HX7F
はじめてPHPをさわりますが

37 $db = sqlite_open('./SQLiteManager/pop_db');
38 if ($db == FALSE) {
40 echo "データベースに接続できませんでした";
41 } else {
42 echo "データベース接続";
43 $sql = "select * from link";
44 $result = sqlite_unbuffered_query($db, $sql);

結果

データベース接続
Warning: sqlite_unbuffered_query() [function.sqlite-unbuffered-query]:
no such table: link in C:\Apache Group\Apache2\htdocs\view.php on line 43

とでるのですが、何が原因でしょうか
703NAME IS NULL:2005/11/05(土) 15:39:06 ID:???
PHP板の方がいいと思うけど。
エラーメッセージが "no such table: link in ...略 on line 43" だから
"select * from link" で指定している link という名前のテーブルが存在しないんでしょ。
704NAME IS NULL:2005/11/05(土) 15:39:22 ID:???
>>702
だから no such table: link なんじゃないのかね?
705NAME IS NULL:2005/11/05(土) 17:25:23 ID:lUG2HX7F
703,704 ありがとう。できました。たすかりました
706NAME IS NULL:2005/11/11(金) 13:06:08 ID:v8h/gUt4
gooブログリーダーにPythonとSQLiteのDLLが入ってたage
707NAME IS NULL:2005/11/11(金) 22:29:51 ID:???
gooブログリーダーってのに入ってると何がどう変わるの?
PythonのDLLとSQLiteのDLLなの?PythonのSQLiteラッパーなの?
なにがなんなの?
708NAME IS NULL:2005/11/12(土) 00:17:58 ID:???
>>707
そこはそんなに突っ込むトコじゃないと思われ。
単なる「『こんなところにも SQLite』ネタ」でしょ。
709NAME IS NULL:2005/11/12(土) 03:54:01 ID:???
glucoseだっけかなgooのrssリーダ
話題としては去年のものだ

こんなところにもSqliteっていうのなら最近だと画像アルバム系ソフトとかにも使われてる
710NAME IS NULL:2005/11/13(日) 00:08:46 ID:???
>>709
画像そのものをDBに入れてるの?
バイナリ保存って出来たっけ?Base64なら納得だけど。
711NAME IS NULL:2005/11/13(日) 00:18:22 ID:???
>>710
普通に考えて画像ファイルのパスとかのメタ情報とかじゃねーの?
>>709 じゃない俺が答えてみる。

SQLite の DB にバイナリを入れるのは問題なくできるよ。
712NAME IS NULL:2005/11/13(日) 00:40:04 ID:???
>>711
そうなのか。
昔は数字と文字列との違いがないような処理系だったのに
そこまで変わったんだな。
713NAME IS NULL:2005/11/13(日) 01:28:04 ID:???
数字と文字列との違いが無かった古の昔からそうだったわけだけど。
714NAME IS NULL:2005/11/13(日) 07:54:54 ID:???
ファイルの拡張子は何にしてる?
715NAME IS NULL:2005/11/13(日) 14:17:09 ID:???
716NAME IS NULL:2005/11/13(日) 15:37:26 ID:???
検索すべきだった、スマソ。
717NAME IS NULL:2005/11/14(月) 00:11:25 ID:???
よし、これからは皆liteに統一しろ。
718NAME IS NULL:2005/11/14(月) 01:16:53 ID:???
断る
719NAME IS NULL:2005/11/18(金) 15:57:41 ID:???
拡張子は .xls にするのが普通だろ。
っていうかExcelでワークシートとして読み込めるの知らなかったのか?
720NAME IS NULL:2005/11/18(金) 20:49:10 ID:???
テキストファイルなんだから .txt でいいじゃん
721NAME IS NULL:2005/11/19(土) 00:33:38 ID:???
ちょっとまて、 719 と 720 は何の話をしているんだ?
722NAME IS NULL:2005/11/19(土) 00:35:37 ID:???
馬鹿話
723NAME IS NULL:2005/11/19(土) 11:39:05 ID:PHOWnBt0
hoge.mysql
724NAME IS NULL:2005/11/19(土) 23:17:07 ID:???
.hage
725NAME IS NULL:2005/11/19(土) 23:49:46 ID:???
いつからカツラだと知っていた!?
726NAME IS NULL:2005/11/20(日) 16:52:05 ID:???
>>719
え?ウソだろ!?
でもそうだったらめちゃめちゃ便利じゃん
とか思いながら開いてみた。

・・・つられた。。。

727NAME IS NULL:2005/11/20(日) 16:57:38 ID:???
728NAME IS NULL:2005/11/21(月) 17:52:25 ID:???
ごめん。開けるのはACCESS2003だった。

だから拡張子.mdbだ。
729NAME IS NULL:2005/11/21(月) 20:06:15 ID:???
おもろない。
730NAME IS NULL:2005/11/21(月) 21:25:29 ID:???
.jspにしますた
731NAME IS NULL:2005/11/21(月) 21:27:02 ID:???
んじゃおれは.aspxで
732NAME IS NULL:2005/11/21(月) 21:27:32 ID:???
漏れなんか .exe だど。
733NAME IS NULL:2005/11/21(月) 22:24:06 ID:???
youjo.rarにしますた
734NAME IS NULL:2005/11/22(火) 13:53:37 ID:???
`_
735NAME IS NULL:2005/11/25(金) 11:18:06 ID:oROAHEdA
sqlite 使える レンタルサーバーで安い所しりませんか
736NAME IS NULL:2005/11/25(金) 13:02:03 ID:???
・PHP5が使える鯖(PHP専用)
・DBIとDBD-SQLiteが使える鯖(Perl専用)
737NAME IS NULL:2005/11/26(土) 18:50:25 ID:???
>>735
まだ試してないけどさくらには、
DBD-SQLite-1.09
が入っている。

738NAME IS NULL:2005/11/26(土) 19:46:34 ID:stpPP/kh
SQLiteManagerってDBファイルをドライブのルートに作るわけ?
パスとファイル名がつながった名前でできる。なんか変。。。。
とりあえず、フィールドが16ある約2000行のCSVファイル(文字コードEUC)を
インポートしてみたらDBファイルの出来上がり。
ファイルをリネーム、移動して、ネットで拾ったHTMLテーブルに表示する
PHPスクリプトをコピペして使ったら、あっけなく動作・・・・
データベースなんて触ったこともないド素人なのに、あら簡単。
で、少し感動。
でも、SQLiteManagerって既存のDBファイルを開けないのかぇ?よくわからん。
これじゃデータの管理できないじゃん。
で、ただ今、挫折中 orz


739NAME IS NULL:2005/11/27(日) 14:20:55 ID:???
>>735
サクラインターネットでも使う? 一番安いコースはPHPは使えないけど、
でもsqlite を組み込んだperlのモジュールがある。
あと、Cコンパイラが使えるから、やりたいなら自分でソースをコンパイルする
こともできるはず。
740NAME IS NULL:2005/11/27(日) 17:28:58 ID:???
SQLiteManagerって名前のソフトは商用のスタンドアロンのやつとPHPのやつがあるんだけど。
741NAME IS NULL:2005/11/27(日) 19:41:58 ID:???
Javaでよけりゃ作ってやろうか?
JDBCDriverがあればだけど。
742NAME IS NULL:2005/11/28(月) 03:32:07 ID:???
>>740
PHPのやつです。参考になるアドバイスいただけるとうれしいス。
743NAME IS NULL:2005/11/28(月) 16:13:29 ID:???
>>742
他のを使え
744NAME IS NULL:2005/11/28(月) 20:41:01 ID:???
Mozilla プロジェクトのカレンダーアプリケーションソフト Sunbird は
0.3 alpha1 から SQLite 組み込みだそうな。
745NAME IS NULL:2005/11/29(火) 23:46:17 ID:???
じんわり浸透していくな。
なんか嬉しい。
746738:2005/11/29(火) 23:57:17 ID:???
SQLiteManager(PHPのやつ)で新規データベースを作る時、または既存の
データベースをロードする方法、発見しました!!!!
データベースへのパスを参照し
D:\www\myhome\database.db とか表示されたら「\」を「/」にマニュアルで
置き換えます。
D:/www/myhome/database.db こういうふうに
で、指定場所にデータベースファイルを作成したり既存のファイルを
SQLiteManagerにロードしたりできました!!!!
SQLiteManagerつかえるじゃん。やったー!
747NAME IS NULL:2005/12/03(土) 23:23:49 ID:???
なんでSQLiteは使いやすいのに普及しないんだろう?
MySQLが使用できないレン鯖でMovableTypeを入れようとする人とかに
結構需要はありそうに思うんだが。
せっかくブログブームでDBに初めて触れる人も出てきたのに
SQLiteはそのブームに乗り遅れた感じがするね。
748NAME IS NULL:2005/12/03(土) 23:27:06 ID:???
DBを使う用途ってのが個人だと少ないからな
749NAME IS NULL:2005/12/04(日) 00:14:06 ID:???
バージョンアップの頻度が高すぎて安心して使えない。
パイプでSQL流して結果をファイルにリダイレクトする程度ならいいが、
組み込みにはしたくないな。
750NAME IS NULL:2005/12/04(日) 00:26:58 ID:???
2系が枯れるのを待てばいいじゃん。
751NAME IS NULL:2005/12/04(日) 00:37:09 ID:???
3系が枯れるのを待って
2系は消えるのを待てばいいと思う
752NAME IS NULL:2005/12/04(日) 00:45:07 ID:???
3系は開発バージョンだろ。あと数ヶ月したら3.3が出るみたいだし。
なかなか枯れないと思うよ。
753NAME IS NULL:2005/12/04(日) 01:16:31 ID:???
MySQLなみに普及しようと思ったら
MySQLなみに世間にもまれなければならない。
いまはまだSQLiteは開発途上で一部のマニアのオモチャになっている段階。
754NAME IS NULL:2005/12/04(日) 01:18:06 ID:???
普及するってのがどの程度を指すのかが分からんな。
それなりに採用してるソフトは出てきてるみたいだが。
755NAME IS NULL:2005/12/04(日) 01:31:20 ID:???
最近の共用レン鯖ではインスコされてるね。
756NAME IS NULL:2005/12/05(月) 19:28:24 ID:???
>>747
あれはMySQLを入れたいんじゃなくて、MTを入れたいだけだし。
MySQLも含めたDBを使おうとはしてないよ。

>>748
データベースの概念が難しいからね。
アクセスさえも使えずに、エクセルでセルを操作する程度が一般人の思考。

>>754
今の所マカが人柱に成ってるだけだしね。
デスクトップ検索とブラウザのRSSサポートとか。
757NAME IS NULL:2005/12/05(月) 20:48:51 ID:???
SQLiteのこの手軽さがたまらん(*´Д`)
758NAME IS NULL:2005/12/06(火) 04:51:19 ID:???
>>757
アクセス廚のように始めのうちはいいけど後で困るんだけどね(w
アクセスは1万件で問題が出始めるんだっけか。
sqliteは100万件ぐらいは耐える?
759NAME IS NULL:2005/12/06(火) 05:49:54 ID:???
アクセスはっていうより.mdbはっていうなら同意
760NAME IS NULL:2005/12/06(火) 06:17:10 ID:???
耐えるってどういう意味?
761NAME IS NULL:2005/12/06(火) 09:24:10 ID:???
苦しさ・悲しさなどに屈せず我慢する。こらえる。
他から加えられる力に負けずにもちこたえる。
762NAME IS NULL:2005/12/07(水) 12:04:37 ID:???
>>761
こんな厨房レスいらんねん。おかげでパフォーマンスの話題が途切れた。
763NAME IS NULL:2005/12/07(水) 13:11:58 ID:???
で、おまいらどのくらいのレコード数処理させてるの?
すでに遅くなる所まで使い込んだ香具師居る?
764NAME IS NULL:2005/12/07(水) 13:43:38 ID:???
100万レコード、ファイルサイズで100Mバイトくらいまでは普通に使ってるけど
特に遅くなる様子はないよ。
765NAME IS NULL:2005/12/08(木) 01:58:24 ID:???
正規化をちゃんとすれば100万件くらいはいけるんじゃないかなあ
766NAME IS NULL:2005/12/08(木) 04:42:54 ID:???
20万件で100MB

数万件程度ならSQLiteもMySQLも速度的にはたいして変わらんが、、、
767NAME IS NULL:2005/12/08(木) 14:08:57 ID:???
つまりsqliteに限らず、正規化できてればMySQLと変わらないのかな?
アクセスはエクセルの延長的に使われるので正規化されずに使われそうだけど、sqliteはそうでもないかな?
768NAME IS NULL:2005/12/08(木) 22:52:04 ID:???
prepareされてればどのDBでも似たり寄ったりの性能だろ?
769NAME IS NULL:2005/12/12(月) 20:04:21 ID:???
教えて君ですんまそ。即答できる人がいたらおしえてください。
SQLite2とSQLite3のデータベースの形式に互換性がないのはわかったけど
libsqlite3(つーかSQLite3のライブラリ)でSQLite2のデータベースを触ることはできるの?
770NAME IS NULL:2005/12/12(月) 21:05:16 ID:???
無理
771NAME IS NULL:2005/12/12(月) 21:05:52 ID:???
>>769
できない。
772NAME IS NULL:2005/12/12(月) 23:34:35 ID:???
なんでそんなことを?
2でexportして3でimportすればええやん。
773NAME IS NULL:2005/12/13(火) 18:16:59 ID:???
色々しがらみがあって2のままでないといかんてこともあろうよ。
一々疑問に思うなってばよ。
774NAME IS NULL:2005/12/13(火) 19:52:37 ID:???
だったら2のライブラリ使えよ。
大したサイズじゃないんだから、両方入れりゃいいだろ。
775NAME IS NULL:2005/12/15(木) 00:46:56 ID:???
しがらみって何だよ?
ずっと2のままで使えばいいじゃん。
776NAME IS NULL:2005/12/20(火) 03:36:53 ID:sxnJeXo0
バージョンアップきたあああああああああああああああああ!!!
777NAME IS NULL:2005/12/20(火) 23:20:55 ID:???
しょっちゅうあることだしぃ
778NAME IS NULL:2005/12/21(水) 10:25:55 ID:???
全体的にバグ出具合はどんな感じ?
やっぱ、あるでしょ、少しぐらいは。
779NAME IS NULL:2005/12/21(水) 15:58:44 ID:???
どんな感じってどういう意味?
なんか最近抽象的な聞き方する人が多いな。
780NAME IS NULL:2005/12/21(水) 16:44:14 ID:???
時代はエスパーを求めているってことだろw
781NAME IS NULL:2005/12/21(水) 19:46:25 ID:???
なんだおまえら?
782NAME IS NULL:2005/12/21(水) 21:14:22 ID:???
1ファイルの容量が1MBなんだけど、パフォーマンス的には問題ある?
783NAME IS NULL:2005/12/21(水) 21:16:48 ID:???
>>782
全く問題ない。100Mくらいまでは普通に使ってる。
784NAME IS NULL:2005/12/22(木) 01:01:27 ID:???
レコード数にも依るかもな。
785NAME IS NULL:2005/12/22(木) 02:57:04 ID:???
XOOPSがSQLiteで使えればよいのになぁ。
786NAME IS NULL:2005/12/22(木) 10:35:58 ID:???
改造は可能
787NAME IS NULL:2005/12/22(木) 15:23:23 ID:???
ファイルサイズ316Mでテーブルが4000以上、レコード数は5万以上のテーブルもあるな。
JavaScriptで使っています。
おいらとしては問題なし、最適化って何ですか。(笑)
788NAME IS NULL:2005/12/22(木) 22:46:45 ID:???
5桁程度のレコードなら全RDBMSの中でも最速なんじゃない?
たしかMySQLより速いだろ
789NAME IS NULL:2005/12/22(木) 23:03:24 ID:???
手元のDB見たら、一番大きいテーブルで400万レコードほどあった。
特に性能的な問題を感じないで(仕事で)使ってるよ。
790NAME IS NULL:2005/12/22(木) 23:14:03 ID:???
XOOPSってPHPでしょ。ソース有るから弄ればいいじゃん。

まあSQL解析不要だからねえ。PreparedStatement状態。
791787:2005/12/23(金) 17:39:04 ID:???
LiteX - Automation wrapper for SQLite3 library.
http://republika.pl/roed/litex/

LiteXはCOMなのでJavaScriptからADOみたいに使用できます。
個人で遊ぶにはODBCを使用するより便利ではないかと思っとります。
792NAME IS NULL:2006/01/01(日) 15:27:03 ID:???
JDBCからSQLiteって使える?
793NAME IS NULL:2006/01/01(日) 18:19:44 ID:???
JNI次第じゃない?
794NAME IS NULL:2006/01/01(日) 19:33:50 ID:???
795NAME IS NULL:2006/01/02(月) 14:59:12 ID:???
>794
補足すると、J2SE5.0以降で使用する場合はAnt使ってリビルドが必要。
796NAME IS NULL:2006/01/11(水) 02:39:29 ID:???
おまえら、SQLite3は地雷だってこと、黙ってたな!?
797NAME IS NULL:2006/01/11(水) 04:31:27 ID:???
>>796
踏みましたか
798NAME IS NULL:2006/01/11(水) 05:11:27 ID:???
えっ?えぇっ?
799NAME IS NULL:2006/01/11(水) 14:59:10 ID:???
3.3.0aだね・・・わかるよ・・・
800NAME IS NULL:2006/01/11(水) 15:45:45 ID:???
kwsk
801NAME IS NULL:2006/01/11(水) 16:23:57 ID:???
だから2系使えって言ったのに。3は開発版の永遠のベータ版だって。
とはいえ、2は非推奨みたいな雰囲気かもしだしてるのが悪いと思う。
3のほうこそ安定するまで非推奨にするべきだ。
802NAME IS NULL:2006/01/11(水) 16:47:24 ID:???
具体的にどこが安定してないんだ?
803NAME IS NULL:2006/01/11(水) 16:56:12 ID:???
2.8
↓フォーマット変更(互換性がなくて大混乱)
3.0←いまここ
↓フォーマット変更(大混乱)←これからここ
3.3
804NAME IS NULL:2006/01/11(水) 17:41:45 ID:???
>>802
801の脳が
805NAME IS NULL:2006/01/11(水) 18:23:35 ID:???
>>804
お前の目はフシアナ
806NAME IS NULL:2006/01/11(水) 21:21:12 ID:???
とにかく、SQLite3は地雷。

それから、
>SQLite入門 すぐに使える軽快・軽量データベース・エンジン
この本を参考にすると、恐ろしい目に…。これ、全然、技術書じゃないね。

洋書を手に入れるしかないのか!!
807NAME IS NULL:2006/01/11(水) 21:32:49 ID:???
いやだから何が地雷なん?
データフォーマットが 3.3.0 で切り替わったってだけ?

808NAME IS NULL:2006/01/11(水) 21:33:24 ID:???
3.2.x使ってるけど、俺が使ってる範囲ではへっちゃらだ。
駄目な条件も書かずに地雷とか言ってる奴は自分の危険回避能力を疑ったほうがいい。
809NAME IS NULL:2006/01/11(水) 21:39:13 ID:???
漢字。
810NAME IS NULL:2006/01/11(水) 21:40:53 ID:???
>>809
またWindows 98/MEとかいう古代の遺物の話か。
811NAME IS NULL:2006/01/11(水) 22:19:48 ID:???
>>809
ドキュメントも見ずにダメとか言うのはどうよ。
Unicodeで出し入れするか、BLOB型使いなはれ。
http://www.sqlite.org/datatype3.html
812NAME IS NULL:2006/01/12(木) 01:15:33 ID:???
>>808
>俺が使ってる範囲では

問題はそこじゃないんだが・・・。まあどういう範囲か知らないが、
他人にファイルを渡したり貰ったり、関連のツールを使ったり
その辺の互換性が混乱することになるだろう・・・。
まあ調査能力の乏しい君にもいずれ現実が教えてくれるだろう・・・
813NAME IS NULL:2006/01/12(木) 01:40:51 ID:???
ここまで引っ張っておいて何が問題なのか書かないのか。
で、トラッカーにも載ってなくて、報告する気もなし?
814NAME IS NULL:2006/01/12(木) 02:16:38 ID:???
>>808

正確なバージョンかきなよ。xじゃ、どれがへっちゃらなのかわかんねーよ。
815NAME IS NULL:2006/01/12(木) 02:19:14 ID:???
ADO.NET 2.0 Provider for SQLite
http://sourceforge.net/projects/sqlite-dotnet2

存在に今気付いた。なんでわざわざ別プロジェクトにしたんだろ?
816NAME IS NULL:2006/01/12(木) 02:23:32 ID:???
>>811
お、REAL型を別扱いしてくれるようになったんだ。移行してみようかな。
817NAME IS NULL:2006/01/12(木) 03:33:29 ID:???
バージョン3.3.0のためのファイル形式は、2進の値の、より効率的なコード化を提供するためにわずかに変化しました。
SQLite3.3.0はSQLite3のどんな先のバージョンでも作成されたレガシーデータベースを読み書きするでしょう。
しかし、バージョン3.3.0作成されたデータベースは、SQLiteの以前のバージョンで読み込み可能であるか、書き込み可能にならないでしょう。
それが必要であるそれらのまれなケースのためのコンパイル時により古いファイル形式を指定することができます。
818NAME IS NULL:2006/01/12(木) 03:35:51 ID:???
ドキュメントも読まずにα版入れた馬鹿が嘆くスレ
819NAME IS NULL:2006/01/12(木) 03:37:32 ID:???
>>803
そんなことで混乱するのは素人だけ
いや素人のほうが慎重か?
820NAME IS NULL:2006/01/12(木) 04:10:22 ID:???
C#でSQLite使うのにDllImportして苦労してたのに…orz
821NAME IS NULL:2006/01/12(木) 05:54:09 ID:???
>>819
慎重でも検討もしないけど、素人は古いバージョンから上げてくことが少ないので
データ形式の下位互換性は余り問題にならない。ただ機能的な互換性は問題にはなる。
アプリケーションが対応してようがしてまいが、"一番新しい"のを導入しようとするから。
822NAME IS NULL:2006/01/12(木) 09:55:23 ID:???
ソースをコンパイルしたとき、あー、これはやば目だねって、わかるもんだ。
823NAME IS NULL:2006/01/12(木) 12:50:39 ID:???
どうせ自分の能力不足で使えなかった腹いせをやってるだけだろう。
824NAME IS NULL:2006/01/12(木) 16:30:13 ID:???
盲目的な信者ばっかだな・・・。
825NAME IS NULL:2006/01/12(木) 16:34:15 ID:???
ちゃんと使えてるからな。「地雷」とか言う奴は曖昧なことしか書かないし。
826NAME IS NULL:2006/01/12(木) 16:34:17 ID:???
>>822
このスレでコンパイルしてテストまで通せたやつは一人だけだろう。
827NAME IS NULL:2006/01/12(木) 16:37:47 ID:???
>>826
そんなわきゃない。
828NAME IS NULL:2006/01/12(木) 16:42:32 ID:???
>>827
おまえだけ
829NAME IS NULL:2006/01/12(木) 17:52:08 ID:???
>>824
遂にラベリング厨キタ━━━(゚∀゚)━━━!!!
830NAME IS NULL:2006/01/12(木) 19:05:27 ID:???
>>829
ラベリング厨とラベリングするのはやめてください
831NAME IS NULL:2006/01/12(木) 20:22:46 ID:???
EUC-JPでつっこんでも問題ないですか?
832NAME IS NULL:2006/01/12(木) 21:54:28 ID:???
>>831
基本的にはUnicodeにするべし
833NAME IS NULL:2006/01/12(木) 22:41:51 ID:???
>>832

理由は? UnicodeってUTF-8でもいいのかよ?
834NAME IS NULL:2006/01/12(木) 22:43:11 ID:???
>>833
API見れ
835NAME IS NULL:2006/01/12(木) 22:47:29 ID:???
>>833
API的には8bit stringはUTF-8、16bit stringはUTF-16を想定している。
http://www.sqlite.org/capi3.html

もちろん君の使うフロントエンドがコード変換をやってるならこの限りではない。
836831:2006/01/13(金) 04:23:07 ID:???
>>835を読んでみましたが、
SQLite2まではUTF-8、SQLite3からは16BE, 16LEも可で合っていますか?
837NAME IS NULL:2006/01/13(金) 11:33:09 ID:???
フロントエンドを使わずに SQLiteを使ってるやつはいるか?
838NAME IS NULL:2006/01/13(金) 13:57:07 ID:???
ラッパー自作して自作ソフトでSQLite使ってる人は珍しくない
839NAME IS NULL:2006/01/13(金) 14:29:24 ID:???
>>838
そんなめんどっちいことするのは少数派
840NAME IS NULL:2006/01/13(金) 14:33:10 ID:???
>>838-839

自分の価値観押しつけ合うのはやめような
841NAME IS NULL:2006/01/13(金) 21:52:20 ID:???
既存のコンポーネントあっても自作する人はいるもんだ
842NAME IS NULL:2006/01/13(金) 22:32:11 ID:???
パイプでSQL流して結果をファイルに落として自力パースでもいいんでない。
PerlやRubyならDBIとか使うのが手っ取り早いけど。
843NAME IS NULL:2006/01/13(金) 22:41:56 ID:???
なんかそれぞれ微妙に論点ズレてねー?
「フロントエンド」「SQLite」の辺りを俺定義で使ってる奴が混ざってる予感。
844NAME IS NULL:2006/01/14(土) 01:05:35 ID:???
SQLite 3.1.3がMac OS Xの超目玉機能のSpotlightの心臓部だから
SQLite3が地雷だと言うならSpotlightが不安定だと証明しなきゃな。

あと、一般的にDBのファイルって他人と交換しないだろ。
普通のアプリなら、内部で使ってるDBとは別に、データを
エクスポート/インポートするためのファイル形式を自分で定義する。
XMLとかでな。

それができずにグダグダ言ってるアプリ作者は単なるザコ。
消えろ。
845NAME IS NULL:2006/01/14(土) 01:26:30 ID:???
Appleの製品は人類を不幸に陥れるために作られている
846NAME IS NULL:2006/01/14(土) 01:30:01 ID:???
SQLite3 でも 3.3.0a とそれ以前が混ざってるような...
アルファ版は地雷原を歩いてもらうためのもんでしょ?

3.2.8 はいい感じだけど MacOS X 10.4 で PHP 5.1.2 バンドル版の PDO_SQLITE
(SQLite3 3.2.8) はファイルへの書き込みが妙に遅い症状あり。
:memory: は問題なくて、FreeBSD 6.0 でも問題ないので OS X もしくは
Xcode 2.2 についてくる GCC 4.0.1 の問題くさい。
847NAME IS NULL:2006/01/14(土) 01:50:55 ID:???
>>846
3.2.8使って、同等のCアプリを自分で書いて試してみた?
848NAME IS NULL:2006/01/14(土) 01:56:44 ID:???
>>844

もともとマックは地雷。
849NAME IS NULL:2006/01/14(土) 01:58:33 ID:???
>>848
つまんね
850NAME IS NULL:2006/01/14(土) 01:59:34 ID:???
>>844
>あと、一般的にDBのファイルって他人と交換しないだろ。

これはわからない。どういう風に使われているのかは、アプリ次第だし
ユーザーの挙動は想像するだけ無駄。
851NAME IS NULL:2006/01/14(土) 02:08:16 ID:???
>>850
ユーザーの挙動の話じゃなくて、アプリ作者のポリシーの話。

互換性がそんなに大事なら、データをエクスポート/インポートする
ファイル形式は、自分で定義するのが普通だが。

特に、SQLiteは組み込み用の軽量DBMSってのが売りなんだから
DBファイルは基本的にアプリ内部のローカルストレージであって
交換用の標準ファイルフォーマットではない。
852NAME IS NULL:2006/01/14(土) 09:29:16 ID:???
AdobeのLightroomもSQLiteつかってるよ。
853NAME IS NULL:2006/01/14(土) 09:49:40 ID:???
>>852

そのSQLiteのバージョンは?
854NAME IS NULL:2006/01/14(土) 10:39:26 ID:???
>>852
すまん。アプリケーション埋め込みでわからないの。Mac OS Xが近くに
あるなら、Lightroomを起動したあとに~/Pictures/Lightroom/を洗う
とデータがありまする。

これはReadMeからです
>SQLite
>The original author of SQLite has dedicated the code to the
> public domain. >Anyone is free to copy, modify, publish, use,
> compile, sell, or distribute the >original SQLite code, either
> in source code form or as a compiled binary, for any purpose,
> commerical or non-commerical, and by any means.
855NAME IS NULL:2006/01/14(土) 16:09:56 ID:???
マカ氏ね!

HFSファイルシステム自体が糞。
856NAME IS NULL:2006/01/14(土) 16:16:11 ID:???
マカと創価学会員を殺してもいいって法律を作ってほしいよ
857NAME IS NULL:2006/01/14(土) 17:06:48 ID:???
>>856
日本の北朝鮮化計画、乙。
858NAME IS NULL:2006/01/14(土) 22:52:49 ID:???
>>854

オリジナルコードと協調しているあたり、かなり変更して使ったぜー、って雰囲気をかもし出してる。
859NAME IS NULL:2006/01/15(日) 00:25:34 ID:???
>>854
ファイルフォーマットから2、3.0、3.3を見分けろ。バイナリエディタで開けばわかるはずだ。
860NAME IS NULL:2006/01/15(日) 05:25:28 ID:???
質問。Cからsqlite3を使っています。
unique indexをつくって、同じIDでinsertするとSQLITE_ERRORが返ってくるが、
これって他のエラーと見分けつくの?エラーコードで。
IDが既にあるならなにもしない的な動きにしたいんだが。
861NAME IS NULL:2006/01/15(日) 09:58:07 ID:???
>>860
トリガー書け
862854:2006/01/15(日) 10:59:41 ID:???
>>859
ありがとうございます。hexdump -Cでみると、1~2行目はこんな感じでした。
00000000 53 51 4c 69 74 65 20 66 6f 72 6d 61 74 20 33 00 |SQLite format 3.|
00000010 20 00 01 01 00 40 20 20 00 00 00 15 00 00 00 00 | ....@ ........|
3.3は使ったことないですが、これは3.0系のフォーマットですか。
863NAME IS NULL:2006/01/15(日) 11:25:53 ID:???
yes
俺のシステムだとfileコマンドがSQLiteのバージョンまで表示してくれるなぁ。
864NAME IS NULL:2006/01/16(月) 18:08:18 ID:???
 ∧||∧
(  ⌒ ヽ  < 2006-Jan-16 - Version 3.3.1 alpha
 ∪ 。ノ  
  ∪∪
865NAME IS NULL:2006/01/17(火) 20:09:05 ID:???
げ。3.0と3.3ってファイル互換性無かったのか。
どうりでODBCドライバとかことごとく使えないと…
866NAME IS NULL:2006/01/18(水) 05:24:20 ID:jidDFeuu
SQLiteってCSEから扱えますか?
867NAME IS NULL:2006/01/18(水) 06:24:25 ID:???
よくしらんがODBC経由なら使えるんじゃね?
868NAME IS NULL:2006/01/18(水) 06:30:27 ID:???
>>866
SQLite用のODBCドライバを使えば扱える。
あと、CSEと似たようなソフトならたくさんある。

http://www.yunqa.de/delphi/sqlitespy/
http://www.dbtools.com.br/EN/index.php
http://www.sharpplus.com/
869NAME IS NULL:2006/01/19(木) 06:02:48 ID:???
>>868
ありがとう!
870NAME IS NULL:2006/01/21(土) 00:04:40 ID:???
CソースからSqlite3のAPIを使ってるんですが、
:memory:でメモリ上に作成したDBを
ファイル化するにはどうやればよいのでしょうか
871NAME IS NULL:2006/01/21(土) 03:03:04 ID:???
872NAME IS NULL:2006/01/21(土) 05:48:41 ID:???
>>871 thanx!
873NAME IS NULL:2006/01/23(月) 09:07:42 ID:???
>>868
日本語フォントで表示できるのはCSEだけなの?
874NAME IS NULL:2006/01/24(火) 00:25:37 ID:???
>>874
SQLiteSpyみたいなUnicode対応のソフトなら普通に日本語も表示できるが。
できないのってSQLiteCCみたいな屑ソフトだけだろ。

外人ってUTF-8とASCIIの区別がついてないから、SQLiteのUTF-8文字列を
そのままWin32 APIに渡しちゃうんだよw
875NAME IS NULL:2006/01/24(火) 09:37:01 ID:???
7ビットであらわせるASCII部分はUTF-8でも同じだからなあ
876NAME IS NULL:2006/01/24(火) 12:12:38 ID:???
APIがデフォルトUTF-8じゃないWin32がゴミ同然なだけ。
877NAME IS NULL:2006/01/24(火) 12:20:09 ID:???
Win32は unicode だからな。
当時UTF-8は無かっただろ
878NAME IS NULL:2006/01/25(水) 23:31:33 ID:BM5SnTHn
>>874
自分にレスしてね?w
ていうかSQLiteCCは日本人なら日本語版使うだろ
ttp://www.takke.jp/soft/sqliteccj.html
879NAME IS NULL:2006/01/26(木) 00:22:29 ID:???
>>878
それってクエリー文字列入力欄は日本語対応してないし。
あと、勝手にクエリー文字列を小文字か大文字に変換してるらしく
文字列比較系のクエリーがまともに使えない。
880NAME IS NULL:2006/01/26(木) 09:00:20 ID:3MzXjqdF
>>874
>SQLiteSpyみたいなUnicode対応のソフトなら普通に日本語も表示できるが。

初心者ですみませんが教えてください。SQLite3.EXEで普通に
CREATE TABLE FOO (A INTEGER, B TEXT);
とかして作ったテーブルのコードはなんですか?
SQLite3.EXEでは漢字が表示されるのにSQLiteSpyでは□で表示されるのですが・・・
881NAME IS NULL:2006/01/26(木) 09:35:54 ID:???
>>880
クライアントではどの文字コードで入力したの?
882NAME IS NULL:2006/01/26(木) 11:38:19 ID:XuaaA1W8
【レズ画像流失】女子高勤務の女性教諭のPCがWinny(キンタマウイルス)に感染し教え子の女子生徒とのレズプレイ画像が流失
http://aa5.2ch.net/test/read.cgi/nida/1130995497/l50
883880:2006/01/26(木) 13:08:29 ID:???
>>881
WindowsXPで普通に入力しました。
文字コードって指定できるのですか?
884NAME IS NULL:2006/01/26(木) 23:49:27 ID:???
>>880
SJISでDBに書き込まれて、SQLiteSpyが
「SJISをUTF-8として扱って」文字化けしてるんだろ。

SQLite3.exeって、文字コードの変換とかは何〜んもやらんから。
DOS窓ではSJIS以外では入力はできません。
885NAME IS NULL:2006/01/26(木) 23:57:18 ID:???
>>880
正しくUTF-8でDBに書き込んだ場合、
Windows XPのコマンドプロンプトでsqlite3.exeを使ったら
「日本語が文字化けして読めない」のが正しい挙動。

コマンドプロンプトでsqlite3.exeを使って日本語を入力/表示すると、
一見きちんと日本語が扱えてるように見えるが、これは実際には
「SJISで入力してSJISで保存されてSJISで表示してる」だけです。

「文字コードはUTF-8かUTF-16」と定義してるSQLite的には
間違った使い方がされている状態。

sqlite3コマンドで正しくUTF-8が入力/表示できるのは
LinuxやMac OS Xだけです。
886NAME IS NULL:2006/01/27(金) 00:07:41 ID:???
ふむ。Cygwin + ck だとどうだろ。
887NAME IS NULL:2006/01/27(金) 00:28:58 ID:???
>>886
いけるんじゃね?

http://www.geocities.jp/cygwin_ck/history.html
> 2004/04/05 -
> ver0.8.5リリース
> UTF-8を入力、表示できるようにしました。
888NAME IS NULL:2006/01/27(金) 15:09:38 ID:???
しかしさぁ。メモリリークがめちゃくちゃあるんだけど、これって大丈夫なのか?
Unix系プログラマってバカだからな、ANSIすらまもらねぇヤツ多いしさ。

これが当たり前なのか? Sqlite3.0系では。
889NAME IS NULL:2006/01/27(金) 15:37:24 ID:???
SQLiteは使い手を選ぶんだよ。
890NAME IS NULL:2006/01/27(金) 15:50:13 ID:???
「こいつみたいなアホに使われるのダルぅ。無意味にmallocしてやろw」
891NAME IS NULL:2006/01/27(金) 17:50:34 ID:???
正直、UNIXでコマンド作るだけの時はメモリリークはキニシナーイ
起動して何か処理して終わればすぐプロセスごと終了だもの。
もちろんデーモンを作る時にはそうはいかないが。

SQLiteはそういうちょっとしたツール向けだろ。
常時起動している(メモリリークが問題になる)サーバで使うものじゃない。
アクセスがあるごとにプロセスをつくり、そこでSQLiteを利用、
終わればプロセス毎開放するような使い方ならともかく。

クライアントアプリでも、ずっと立ち上がってるようなものには向いてないだろな。
892NAME IS NULL:2006/01/27(金) 18:06:44 ID:???
つか>>888が言ってるのは単にフリーしてないメモリがあるって話だろ。
それが一定量であれば問題にしないのがUnix文化だし、実際Unixだろうと
Windowsだろうと問題にはならない。
リークってのは処理を続けていくうちに比例的にどんどんメモリ消費量が増えて
いっていつか続行不能になるってことだが、Sqliteでそういう経験はないな。
一ヶ月くらいの連続運用は平気でやってるけど。
893NAME IS NULL:2006/01/27(金) 18:10:25 ID:???
ANSIの通らない処理系が現役だったりするから
いろんな環境に対応させようとするとこうなるのはまあ・・・
894NAME IS NULL:2006/01/27(金) 21:45:09 ID:???
SQLiteSpyって見るだけなの?セル上でデータの変更とかできないの?
895NAME IS NULL:2006/01/27(金) 21:57:23 ID:???
そうかぁ?
必要じゃない限り、いろんな環境に対応させようなんて考える必要ないはずだけどなぁ。

リークっていうのは…て書き出しにしちゃ、誤用っぽい説明だな。
おまえみたいな奴がいるから。Windowsじゃ強引にプロセスのマークをつけて、メモリ解放するように
「途中からOSを仕様変更」したからな。

しかし、古典的エンジニアが聞いたら卒倒しそうな文化だな。
896NAME IS NULL:2006/01/27(金) 22:15:12 ID:???
>>895
Win16とか旧MacOS時代の人、乙。はやく時代に適応できるといいね。
897NAME IS NULL:2006/01/28(土) 02:04:22 ID:???
SQLite3 を組み込んだ UNIX 上の daemon を一年以上メモリリークさせずに動かしてますが何か?
898NAME IS NULL:2006/01/28(土) 02:13:39 ID:???
>>897
っつーか、Spotlightなんてまさに
「SQLite3を組み込んだUNIX上のdaemon」だよな。
899NAME IS NULL:2006/01/28(土) 02:28:57 ID:???
Solaris 10 の svc は SQLite2 だから関係無いか。
900NAME IS NULL:2006/01/28(土) 02:32:52 ID:???
結局>>889-890が真実という事のようですな
901NAME IS NULL:2006/01/28(土) 04:38:37 ID:???
>>896
どんな結果でさえ、ソース上、バカなコーディングは遠慮させていただく。
902NAME IS NULL:2006/01/28(土) 06:35:55 ID:???
このままマイナーDB企画として埋もれてしまうのかな…
903NAME IS NULL:2006/01/28(土) 10:05:35 ID:???
組み込み用のDBとしては、かなりの躍進じゃない?
904NAME IS NULL:2006/01/28(土) 16:26:23 ID:???
>>902
人知れず埋め込まれていっています
905NAME IS NULL:2006/01/28(土) 17:17:30 ID:???
いまさらBerkeleyDBなんか使いたくないよ
906NAME IS NULL:2006/01/29(日) 00:50:58 ID:???
必要じゃない限り、移植の手間がかからないように書くもんじゃないのか?
卒倒しそうなのは、古典的PC系エンジニアですな。

メモリリークって言ったら、
(事実上)プログラムが制御出来なくなったメモリが、発生することだと思ってた。
907NAME IS NULL:2006/01/29(日) 00:59:53 ID:???
メモリリークってのはフリーしてないメモリが「増え続ける」事。
単に使った後のメモリを開放しないのは行儀が悪いだけでリークではない。
メモリがタイトになればページアウトされるだけだから深刻な問題にはならない。
プログラムが制御出来ないメモリが発生するのはOSのバグだろ。
908NAME IS NULL:2006/01/29(日) 12:28:37 ID:???
メモリリークの結果、メモリが増え続けるんだろ。
メモリリークとメモリが増え続けることは別の話。

メモリがタイトになれば、ページアウトされてパフォーマンスダウンじゃねーの?

カーネルプログラミングの場合だと、制御できないメモリが発生はプログラムのバグで、
OSのバグじゃないんですけど。
909NAME IS NULL:2006/01/29(日) 13:35:43 ID:???
メモリリーク:
プログラムがヘボで、一度OSから取得したメモリブロックを
使用終了後もOSに返さないままプログラム側でもポインタも失うこと。

OS側から見れば、プログラムから返却されていないから
プロセスが終了するまでそのメモリは割り当てっぱなしになるし、
プログラム側でも既に使ってない空虚なメモリ空間が発生する。

このメモリ空間はプロセスが終了すればOSによって強制的に回収されるため
単発コマンド等では実害として現れにくいが、
長時間稼働し続けるプログラム、特にデーモン等では、
時間が経てば経つほどメモリ保持量が増大し続ける被害が発生する。


使用メモリが増え続けること = メモリリーク、ではない。
フリーしてないメモリが増え続けること = メモリリーク、は正しい。
メモリリークの結果、使用メモリが増え続ける、のは正しい。
使用メモリが増え続ける = メモリリーク、とは限らない。
910NAME IS NULL:2006/01/29(日) 14:03:21 ID:???
早い話、増え続けるのでなければ全く無害。
偏執的に全てのメモリをfreeしろというのは>>888のような低脳プログラマでも
仕事できるようにするための規律にすぎない。
911NAME IS NULL:2006/01/29(日) 14:07:44 ID:???
free()したからといってOSにメモリが返却されるとは限らない(以下例の奴
912NAME IS NULL:2006/01/29(日) 14:49:15 ID:???
メモリ3GBつんで半日に1回再起動させてるから問題なし
913NAME IS NULL:2006/01/29(日) 16:42:01 ID:???
>>910
仕事でする規律って…。組み込み系とかの仕事したこと無いんだろ。
低脳なんて言葉が使えるほど経験値高くないぞ、おまえは。
914NAME IS NULL:2006/01/29(日) 17:05:39 ID:???
>>913
組み込み系の真面目なプログラマが聞いたら怒るぞ。
おまえが土方仕事しかやってないってことはよくわかったから、もう来なくていいよ。
915NAME IS NULL:2006/01/29(日) 19:26:50 ID:???
こんなとこでfjばりのキモい論争は勘弁してくれ。
916:2006/01/29(日) 21:20:18 ID:w90V2ZdU
ゴールデンレター)
このスレを見た人はコピペでもいいので30分以内に
7つのスレへ貼り付けてください。
そおすれば14日後、好きな人に告白され、
17日後にはあなたに幸せがおとずれるでしょう
917NAME IS NULL:2006/01/29(日) 22:27:04 ID:???
これだから、Unix系はバカなんだよ。
918NAME IS NULL:2006/01/29(日) 22:39:20 ID:???
SQLite3 API を正しく使っていればメモリリークするなんて俄かには信じ難いのですが、
一体どんなコードでメモリリークが再現するのか >>888 さん見せていただけませんか?
919NAME IS NULL:2006/01/29(日) 22:56:28 ID:???
>>918
プログラムが制御出来ないメモリが発生するのはOSのバグだろ。
プログラムが制御出来ないメモリが発生するのはSQLite3のバグだろ。

こんなことを言うUnixプログラマはバカなんだよ。
920NAME IS NULL:2006/01/29(日) 23:01:05 ID:???
>>919
いやー、君ほどじゃないけど
921NAME IS NULL:2006/01/29(日) 23:04:36 ID:???
低脳888氏を弄るのも飽きてきたので別の話題を頼む
922NAME IS NULL:2006/01/29(日) 23:17:28 ID:???
>>921

> 913 名前:NAME IS NULL 本日のレス 投稿日:2006/01/29(日) 16:42:01 ???
> >>910
> 仕事でする規律って…。組み込み系とかの仕事したこと無いんだろ。
> 低脳なんて言葉が使えるほど経験値高くないぞ、おまえは。

おつかれ、910。
923NAME IS NULL:2006/01/29(日) 23:18:55 ID:???
>>922
まだ居たのか、低脳。はやくどっか池。
924NAME IS NULL:2006/01/29(日) 23:19:52 ID:???
業務アプリにSQLite3を埋め込んで負荷テストやったけど、
メモリリークは報告されなかったよ。

(唯一、アプリ終了時のCriticalSectionハンドルの開放忘れ
(SQLite3が内部で使ってる)があったから自分で修正したけどね。)

>>888がヘボプログラマでFA。
925NAME IS NULL:2006/01/29(日) 23:27:36 ID:???
>>924
結局>>888はフリーしてないメモリブロックがあるというデバッガメッセージを
一目見ただけで鬼の首を取ったように騒いだだけなんだろうな。
926NAME IS NULL:2006/01/29(日) 23:54:29 ID:???
>>923
910おつかれ。
927NAME IS NULL:2006/01/30(月) 00:20:38 ID:???
>>923
能無し雑魚がまだいたの?
お前みたいな下等生物が居ていい板じゃないんだよここは。な?
928NAME IS NULL:2006/01/30(月) 20:54:23 ID:???
SQLite3自体にメモリーリークはない、でFA?
それとも命令や使い方によってはあるのかな?
929NAME IS NULL:2006/02/01(水) 13:21:42 ID:???
2006-Jan-31 - Version 3.3.3 stable

早い、早すぎるよ。
930NAME IS NULL:2006/02/01(水) 13:57:01 ID:???
ホンマにstableでええんか?って思うね。
個人的に3.3.6ぐらいまでは様子見。
931NAME IS NULL:2006/02/01(水) 14:09:11 ID:???
2chブラウザJane Doe Style にsqlite.dllが入ってた
932NAME IS NULL:2006/02/01(水) 20:38:49 ID:???
3.3.3 stable に対応するODBCドライバはまだないの?
フォーマットが変わったのでSQLSpyもCSEも全滅じゃん。
933NAME IS NULL:2006/02/01(水) 20:49:52 ID:???
あちこちで3.3.3に悲鳴が上がってる
934NAME IS NULL:2006/02/01(水) 20:53:14 ID:???
>>932
まだ3.3.3使ってないから誤解してるのかもしれんが、ソースからコンパイル&リンク
し直せばいいって問題じゃないの?
935NAME IS NULL:2006/02/01(水) 21:42:21 ID:???
sqlite.dll を置き換えれば収まるような問題では無い?
936NAME IS NULL:2006/02/01(水) 22:27:00 ID:???
937NAME IS NULL:2006/02/02(木) 13:52:11 ID:???
http://sourceforge.net/projects/sqlite-dotnet2

SQLite for ADO.NET 2.0 新バージョンktkr

同根のSQLiteのバージョンは3.3.1aらしい。
938NAME IS NULL:2006/02/02(木) 20:14:32 ID:???
3.3.3でpython-sqliteのバグが顕在化してPython関係が全滅状態。
939NAME IS NULL:2006/02/02(木) 20:27:34 ID:???
だから地雷だっつっただろー。
940NAME IS NULL:2006/02/02(木) 20:46:01 ID:???
>>938 を SQLite3 のバージョンアップのせいにするのはお門違いっつーか。
941NAME IS NULL:2006/02/03(金) 19:28:51 ID:???
>>940

919 名前:NAME IS NULL 投稿日:2006/01/29(日) 22:56:28 ???
>>918
プログラムが制御出来ないメモリが発生するのはOSのバグだろ。

python-sqliが制御出来ないメモリが発生するのはSQLite3のバグだろ。

こんなことを言うUnixプログラマはバカなんだよ。
942NAME IS NULL:2006/02/03(金) 19:51:44 ID:???
>>941
ごめんなさい。こういうとき、どんなレスをすればいいのかわからないの。
943NAME IS NULL:2006/02/04(土) 02:28:05 ID:???
>>942
必ず、ファイルは閉じて、メモリは解放する。
944NAME IS NULL:2006/02/06(月) 10:52:23 ID:???
>>942
閉じればいいと思うよ

            ,、‐ ''"  ̄ ``'' ‐- 、
        /イハ/レ:::/V\∧ド\
       /::^'´::::::::::::i、::::::::::::::::::::::::::::\
     ‐'7::::::::::::::::::::::::ハ:ハ::|ヽ:::;、::::::::::::丶
     /::::::::::::::/!i::/|/  ! ヾ リハ:|;!、:::::::l
    /´7::::::::::〃|!/_,,、   ''"゛_^`''`‐ly:::ト
      /|;ィ:::::N,、‐'゛_,,.\   ´''""'ヽ  !;K
        ! |ハト〈  ,r''"゛  ,       リイ)|
          `y't     ヽ'        //
         ! ぃ、     、;:==ヲ  〃
         `'' へ、   ` ‐ '゜   .イ
              `i;、     / l
                〉 ` ‐ ´   l`ヽ
            / !       レ' ヽ_
         _,、‐7   i|      i´   l `' ‐ 、_
     ,、-‐''"´  ノ,、-、 / 、,_ ,.、- {,ヘ  '、_    `ヽ、_
   / i    ,、イ ∨ l.j__,,、..-‐::-:;」,ハ、 '、` ‐、_   ,`ヽ
  /  l ,、‐'´ // ',/!:::::::::;、--ァ' /  `` ‐   `'7゛   ',
 /   l  i  ´  く   ';::::::l  / /         /     ',
/     ! l      \ ';:::l , '  /        i/     ',
945NAME IS NULL:2006/02/10(金) 10:23:03 ID:???
sage
946NAME IS NULL:2006/02/10(金) 18:29:26 ID:???
age
947NAME IS NULL:2006/02/12(日) 00:09:43 ID:???
2006-Feb-11 - Version 3.3.4
948NAME IS NOT NULL:2006/02/13(月) 05:22:25 ID:???
2006 February 11 (3.3.4)

Fix a blunder in the Unix mutex implementation that can lead to deadlock on multithreaded systems.
Fix an alignment problem on 64-bit machines
Added the fullfsync pragma.
Fix an optimizer bug that could have caused some unusual LEFT OUTER JOINs to give incorrect results.
The SUM function detects integer overflow and converts to accumulating an approximate result using floating point numbers
Host parameter names can begin with '@' for compatibility with SQL Server.
Other miscellaneous bug fixes
949NAME IS NULL:2006/02/13(月) 15:04:40 ID:???
うへえ
950NAME IS NULL:2006/02/13(月) 15:51:31 ID:???
おひぃ
951NAME IS NULL:2006/02/13(月) 15:56:48 ID:???
あはぁ
952NAME IS NULL:2006/02/14(火) 00:38:23 ID:???
らめぇ
953NAME IS NULL:2006/02/14(火) 09:16:37 ID:???
あぁぁぁ
954NAME IS NULL:2006/02/17(金) 22:09:04 ID:???
sqliteを長時間使っている時点でダメポ。
他のまともなRDB使え。
955NAME IS NULL:2006/02/17(金) 23:08:14 ID:???
>>954
うちはへっちゃらですけど・・・
956NAME IS NULL:2006/02/19(日) 17:27:22 ID:???
やっぱりSQLiteは使い手を選ぶね。
957NAME IS NULL:2006/02/19(日) 21:24:59 ID:???
それが SQLiteの欠点だな。
958NAME IS NULL:2006/02/19(日) 21:58:11 ID:???
読解力ないね。
959NAME IS NULL:2006/02/19(日) 23:08:52 ID:???
選民思想キモス
960NAME IS NULL:2006/02/21(火) 02:14:31 ID:???
まあ普通のRDBならちゃんとセッション管理してくれるけど、sqliteは開きっぱで忘れてリソース喰われまくり。
961NAME IS NULL:2006/02/21(火) 02:24:03 ID:???
> sqliteは開きっぱで忘れて

自分のミスを SQLite のせいにするかね。
962NAME IS NULL:2006/02/21(火) 02:27:22 ID:???
>>960
お。低脳君久々の登場ですね。
963NAME IS NULL:2006/02/21(火) 11:41:56 ID:???
       │
       J >>960
  ∩_∩    ∩_∩
 (・(ェ)・ )   ( ・(ェ)・)
964NAME IS NULL:2006/02/21(火) 19:02:57 ID:???
開いたら閉じるという「簡単なこと」がなぜ出来ないのかねぇ。
965NAME IS NULL:2006/02/21(火) 19:23:02 ID:???
>>964
>>960 によると、「普通のRDB」なら閉じなくても開きっぱにならないんだそうですよ。
966NAME IS NULL:2006/02/21(火) 21:51:49 ID:???
セッションタイムアウトで強制的に閉じられる。
967NAME IS NULL:2006/02/21(火) 21:56:44 ID:???
ライトなものを使いこなす能力のない人は普通のRDBでも使ってりゃいいじゃん。
968NAME IS NULL:2006/02/21(火) 22:04:27 ID:???
なにしろ名前がSQLiteだからね
969NAME IS NULL:2006/02/21(火) 22:27:46 ID:???
人の作った物にケチつけて自分が偉くなったような気分になってんじゃねーカス
970NAME IS NULL:2006/02/22(水) 02:00:04 ID:???
>>966は、Webブラウザなんかを作るときも、セッションタイムアウトまで
開きっぱにするらしい。

ひどい公害プログラマだなw
971NAME IS NULL:2006/02/22(水) 02:22:33 ID:???
>>970
もう少しおもしろいこと書けよ
972NAME IS NULL:2006/02/22(水) 02:33:03 ID:???
面白いプログラムは書けないくせに、人のことばかり言うんだな >> 971
973NAME IS NULL:2006/02/22(水) 09:29:39 ID:???
ふとんがふっとんだ
974NAME IS NULL:2006/02/22(水) 12:57:55 ID:???
わらちゃった(つД`)
975NAME IS NULL:2006/02/22(水) 16:06:15 ID:???
7000個のりんごがあります。今3000個追加しました。全部で何個になったでしょうか?
976NAME IS NULL:2006/02/22(水) 16:14:48 ID:???
データベースがロックされてて読めません
977NAME IS NULL:2006/02/22(水) 20:39:31 ID:???
ロールバックされたので7000個のままですた。
978NAME IS NULL:2006/02/22(水) 21:36:16 ID:???
正解は
おまんこ。
979NAME IS NULL:2006/02/22(水) 22:18:42 ID:???
何だこのカオスは
980NAME IS NULL:2006/02/23(木) 03:13:52 ID:???
>>975
はいはい一まんこ一まんこ。
981NAME IS NULL:2006/02/24(金) 16:00:36 ID:+IIz7SDv
age
982NAME IS NULL:2006/02/24(金) 17:15:45 ID:???
もうだめかもしれんね。
983NAME IS NULL:2006/02/24(金) 18:22:56 ID:???
perlでDBI使って
DBI->connect( 'dbi:SQLite:/ほげほげ/db/dbfile', '', '' )
とかしてApacheのCGIで動かしてみてうまく行くっぽいんで、
mod_perl入れたら
DBD::SQLite::db selectrow_array failed: not an error(21) at dbdimp.c line 398 at ほげほげ
とかのたまう。
クエリ結果ぜんぜん帰ってこないし、insert してもデータ入らないから
あきらかにおかしいんだけど、 not an error てなんなんだよー
984NAME IS NULL:2006/02/24(金) 20:13:38 ID:???
httpdそれぞれがDB掴んで動く訳ないじゃん(w
985NAME IS NULL:2006/02/25(土) 00:19:34 ID:???
また開いたら閉じるができない香具師か
986NAME IS NULL:2006/02/25(土) 07:40:37 ID:???
複数動いて握りっぱなしなら動かなくても納得するんだけど、
apache起動して一発めでもダメなもん?
987NAME IS NULL:2006/02/25(土) 08:07:43 ID:???
開発環境と鯖のSQLiteのバージョンが合ってないとか。
DBのファイルが壊れているとか。
988NAME IS NULL:2006/02/25(土) 09:35:47 ID:???
989NAME IS NULL:2006/02/25(土) 10:45:06 ID:???
起動した瞬間にDB握ってる。mod_perlロードしてるでしょ。
990NAME IS NULL:2006/02/25(土) 16:00:49 ID:RhNDLCTJ
なんだかんだでSQLiteへ乗り換えてる香具師もいるっぽい
http://www.outdex.net/diary/archives/2006/01/sqlite.shtml
991NAME IS NULL:2006/02/25(土) 16:27:12 ID:???
ああ BerkeleyDB からの乗り換えか。そりゃ乗り換えたくもなる罠。
992NAME IS NULL:2006/02/25(土) 16:59:26 ID:???
>>987
全く同じ環境でmod_perlを有効にしてないときはちゃんと動くのよね。
mod_perlありだと単純に select 10 とかやっても答えが返ってこない。
>>989
確かにmod_perlだけど、どうやったら起動時にDB握るの?
connectするまでは握るDBすら決まってないんだから。
993NAME IS NULL:2006/02/25(土) 20:18:27 ID:???
Apache::DBI->connect_on_init
994NAME IS NULL:2006/02/25(土) 20:33:31 ID:???
>>992
リクエスト毎に disconnect してもダメなん?
995NAME IS NULL:2006/02/26(日) 08:20:02 ID:???
>>994
ダメなん。ていうか一番最初のクエリからしておかしいので。
ぐーぐる様に聞いても同じような症状で困ってる人は見つかっても
解決したって話が出てこない。
mod_perl外すのは厳しいから、違うDBMSにするかdbm方面に逃げるか
かなぁ。
996NAME IS NULL:2006/02/26(日) 20:58:01 ID:???
>>983
ttp://multix.jp/cgi-bin/cdiary2/2003-04-04.dml.html
>mod_perl 環境下でやっちゃダメなものをいくつか。

参考になるかね?
997NAME IS NULL
再現コードぷりーず。

次スレで。