2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

sqliteを語るスレ

1 :名無しさん@お腹いっぱい。:03/06/30 16:01 ID:3hdiLYQO
とりあえず立てときますた

参考: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:???
誰か使ってる人いませんか?

4 :nobodyさん: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⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

11 :NAME IS NULL:03/10/19 03:06 ID:fcozYorT
PEARのsqlite試し中
期待age

12 :あぼーん:あぼーん
あぼーん

13 :NAME IS NULL:03/10/23 21:14 ID:w0drDQcj
NUT NULLって書いたのにテーブルできてる・・・
スキーマダンプしてもNUT NULL・・・
ていうか誰も使ってないのかよぅ

14 :NAME IS NULL:03/10/29 09:35 ID:???
情報少なすぎです。

15 :NAME IS NULL:03/10/29 22:13 ID:i9iRWIvB
>>14
少ないからこそ話し合おうやないかと。
とりあえずはオフィシャルのマニュアルでなんとかいける。

PHPでPEAR DBインターフェイスで使ってます。
コマンドラインからCSVから一括インポートできないのが今面倒。
それくらい自分で作れってわかってはいるけど。
あと、完全なカラム名入りのINSERT文でダンプできないのも面倒。


16 :NAME IS NULL:03/11/05 13:36 ID:???
delphiのラッパーでやろうと思ってるんだけど、、、

17 :NAME 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


18 :NAME IS NULL:03/11/15 19:28 ID:pb0zFJJB
sqliteのワイド文字対応版ってない?

19 :NAME IS NULL:03/11/26 09:28 ID:hrsdO7GB
.NETユーザーにとても便利。
SQLite用のADO.NETデータプロバイダSQLite.NET登場。
http://sourceforge.net/projects/adodotnetsqlite
まだα版ながら.NET Framework上ですでに動作。
これでODBCドライバもDSN登録もいらなくなった。

20 :NAME 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で接続する。

21 :NAME IS NULL:03/11/29 21:01 ID:???
>>20
情報ありがとう。でも、

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

これが面倒(と感じる人もいるよね)。

22 :NAME IS NULL:03/12/01 00:51 ID:???
PHPで使おうと思ってるんですが、日本語(EUC)は通りますか?


23 :20:03/12/01 09:34 ID:O/R85Nmb
ODBCドライバのインストールは一度やっとけばいいやと思うけれども、
データソースネームの登録をデータベースごとにいちいちやるのは
本当にうっとうしい操作で嫌いです。
でも今の所こうするしかないようで・・・いい手あったら教えて下さい。
JScriptやVBScriptなどからSQLiteやJetを使うときは 、
DSNなしでドライバ名とファイル名を直接指定する接続の方を
使っちゃうんですが、この手はどこでも通用するわけではないようで。

24 :NAME IS NULL:03/12/01 16:34 ID:???
API経由で作れるんだから、必要なときにその場でスクリプトから
作ってしまうのはどうか

25 :名無しさん@Linuxザウルス:03/12/01 19:55 ID:fM+FlLdE
コンパクトなので組込用途にも使えそうでつ。

26 :23:03/12/02 09:12 ID:UGNuLnLW
>>24
データソースネームの登録をスクリプトからしてしまうということでしょか。
できるかも。方法を調べてみます。

27 :23:03/12/02 10:31 ID:/D3psl+q
ありました。DSN登録はスクリプトでもできそうです。
「ファイルDSNを使用して接続する」
http://homepage2.nifty.com/inform/vbdb/filedsn.htm
というVBでのサンプルみつけました。これを応用すればできそうです。

28 :23:03/12/02 11:00 ID:/D3psl+q
あれ。APIを使うならこっちでしたか。
「ODBCデータソースの登録・削除 (API) 」
http://homepage2.nifty.com/inform/vbdb/api_dsn.htm
何度も失礼しました。

29 :NAME 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


30 :NAME IS NULL:03/12/05 22:33 ID:???
>>29
何回おきにcommitした?


31 :NAME IS NULL:03/12/05 22:34 ID:???
ああ、INSERTと読み間違えた。
ごめんなさい。


32 :NAME IS NULL:03/12/06 07:47 ID:Y3cvNAdD
データ投入のスピードはどうよ、おねーさん

33 :NAME IS NULL:03/12/06 21:12 ID:???
sqlite_create_function() や sqlite_create_aggregate() って
どんなことに使ってる?


34 :NAME IS NULL:03/12/07 18:13 ID:???
>>29
SQLiteの設定値は?
速度あげるためにチューニングした?

35 :NAME IS NULL:03/12/07 22:27 ID:???
>>34
そんなチューニングがあるのかい?

36 :NAME IS NULL:03/12/09 01:31 ID:???
MySQL使わない?としてSQLiteを使うのだろうか?
PHPにSQLiteが搭載されてもPostgreを使うのではと思う俺。
いやいやMySQLが擦り寄ってくるのでは?と期待する俺。


          正直なところSQLiteはどうだい?

37 :いなむらきよし:03/12/09 13:39 ID:90H4pzxx
キケー!

38 :NAME IS NULL:03/12/09 23:33 ID:???
とあるオンラインソフトを作ってるんですが、
データ量が多くなってきたのでデータベースを導入しようと思っていた矢先に
SQLite を見つけました。
ソースコードから全部結合させて SQLite を内包させちゃいます。
(これが組み込みってやつですよね?)
これから追っていくつもりなのでよろしくです。
ちなみに DB は初心者です。

39 :38:03/12/12 23:07 ID:fEBGkoUY
オンラインソフトってのは、Windows 用のフリーソフトとか
シェアウェアとかです。
既存のソフトのデータベースを SQLite のデータベースに変換する
プログラムを書いたんですが、以外と遅いですね。

40 :NAME IS NULL:03/12/13 09:27 ID:???
>>39
そゆ書き方をすると「SQLiteって遅いのか」というイメージだけが広がって
「遅いからクソ」とか自分は知りもしないのにけなす奴が増えていく悪寒


41 :38:03/12/13 20:07 ID:???
>>40
ごめんなさい。私がまさにそういうイメージを植え付けられて試していたフシがあります。
で、TRANSACTION 化(って言うのかな?)すると十分に実用的な速度になりました。
だいたい10万件くらいのデータを変換したんですが、所要時間のほとんどが
SQL 文を作る処理で、SQLite の速度はめちゃ速かったです。
フリーソフトとかに組み込むような用途では SQLite 以外の
選択肢は考えられないように思います。速いし。

42 :NAME IS NULL:03/12/14 14:35 ID:???
>>40
そゆ書き方をすると「SQLiteって遅いのか」というイメージだけが広がって
「遅いからクソ」とか自分は知りもしないのにけなす奴が増えていく悪寒

>>41
比較などの詳細をキボンヌ。

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

>>42
そのうち。

44 :NAME IS NULL:03/12/23 13:03 ID:???
WEB+DB PRESS Vol.18 pp.86-94

45 :NAME IS NULL:04/01/02 14:56 ID:cP+5Z7n4
SQLiteExplorer というGUIツールを知りました。外国製にしては珍しく
文字セット変更があって日本語が使える。
作者や出所が不明になっているらしいですが、下でダウンロードは可能。
http://members.rogers.com/mbi/software/software_index.htm

46 :NAME IS NULL:04/01/02 17:19 ID:GTnsxWCQ
データ型のないSQLiteで、型の宣言をしています?
(1) 無意味だからやらない。 (2) 目印になるからやる。
(3) しないよりした方がいいと言う人がいるからやる。
(4) するとやっかいな結果になるからやらない。
など、考えていますが、どれが適当かはわかりません。
Date型を付けてしまって、後悔したことがあります。
読むときにアプリのDateTime型が例外を出してきたり...
単なる目印のつもりはまずいことがある。ということはメリットは?
Integerも要注意みたい。

47 :NAME IS NULL:04/01/02 21:34 ID:???
>>46
> Date型を付けてしまって、後悔したことがあります。
> 読むときにアプリのDateTime型が例外を出してきたり...

具体的にどんなことになったの?


48 :NAME IS NULL:04/01/05 11:44 ID:gQ8zMdLQ
NULLの扱いがよくわからん!

49 :46: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で読む指定は何とかできるかもしれないけど、一般的には
もう汎用性がなくなって、用途によっては困ると思います。

50 :NAME IS NULL:04/01/06 15:45 ID:???
>>49
SQLite以前に型チャックちゃんとしようぜ。
Double型に文字列を投入しちゃうようなプログラムはダメだ。

51 :46:04/01/07 09:06 ID:UJmgjzrz
>>50
けっきょく、そういうことです。
型のないSQLiteに型チェックなんかないし、
型をつければ、それをスキーマから読んであてにしようとするプログラムは
あるんだから。いっそ型を付けない方が正しい。型はないんだから。
>SQLite以前に型チャックちゃんとしようぜ。

52 :NAME IS NULL:04/01/07 16:10 ID:???
>>51
型はつけなよ。他のDBからテーブルをインポートしたり
エクスポートしたりするときそのまま持ってけるから便利じゃん。
君の場合は使ったADO.NETのラッパー?が型のチェックを
ちゃんとしてないだけじゃろ。

53 :NAME IS NULL:04/01/07 21:34 ID:???
>>49
Date型のカラムに '2004-01-02' という値が紛れ込んでてエラーになったという話ですか
どうしてそんなことに?

入力の際にそれをはねなかったのが問題だと思う


54 :46: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型を付けなけりゃうまくいったのに、との後悔だったんだけど・・・

55 :46:04/01/08 14:50 ID:wdL+QGFi
>>52
ラッパーの件がありました。たぶん、そこの問題じゃないです。
ADO.NETでも高級な DataSetでの例だったんです。
低級で高速な DataReaderでは、明示しなけりゃDateTime型にデータを投入しませんから、
もともと問題なしです。

56 :46: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は受け付けるけれど」
が誤解の元でした。失礼しました。

57 :NAME 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.

58 :NAME 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;
}

59 :46:04/01/09 10:57 ID:vDXjRDTC
>>57 >>58
ずばりサポート、ありがとうございました。
訂正: ラッパーが対応していないも正解でした。
やることが山ほどできました。

60 :NAME IS NULL:04/02/10 22:26 ID:1wsqz1Hs
SQLiteManagerはなかなかいい。

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

標準の関数が少ないのが辛い。

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

タイプレスのDBっていうのは、
アプリ側のやる仕事が増えそうな印象があって(それが本当かどうかはしらんが)、
それでなかなか触手が伸びないのかな?

62 :NAME IS NULL:04/02/21 02:04 ID:UE2tYF6F
MySQL なり PostgreSQL なりと同列に考えるような Web のバックエンドとしては
アプリ側の仕事が多くて使いにくいんでしょうが,Windows や Mac ネイティブな
ソフト用の組み込み DB としてはほかに選択肢がないから sqlite が一番だと思ってます.
自分でゴリゴリと DB 操作コードを書かなくていいのは激しく楽です.
JET エンジンとかがほかの選択肢なんでしょうか.
個人的には alter table がないのが厳しい.
あと,sqlite 自身ちょくちょくバージョンアップしてるみたいですが,
どこがどう変わったか公式サイトをみてもわからないのがつらいです.

63 :NAME IS NULL:04/02/22 00:53 ID:???
>>62
サイトは殺伐としすぎてますよね。
sqlite 自体に必要な機能を備えさせるのは構わないけど、サイトやらドキュメントは
もっと饒舌であってほしい。

64 :NAME IS NULL:04/02/22 13:34 ID:84o4/Ew4
>>62
http://www.hwaci.com/sw/sqlite/changes.html
ちゃんと書いてるだろうがヴォケ。英語嫁。空気嫁。

65 :NAME IS NULL:04/02/22 21:58 ID:4n+LahDS
>>64
あ,ほんとだ.こっちみてますた
http://www.sqlite.org/cvstrac/timeline
つーか
http://www.sqlite.org/
からそこに辿れないのが不親切よね(辿れたらスマソ)

66 :NAME IS NULL:04/02/23 08:23 ID:gJFAyjPD
>>65
http://www.sqlite.org/トップの、"Current Status"の"Change Summary"じゃだめなん?

67 :NAME IS NULL:04/02/23 09:16 ID:xmVB1NEu
辿れたよ。スマソ(65の代筆)。

68 :NAME IS NULL:04/02/23 14:51 ID:???
sqlite使ってますが、型なしで困るのが日付と時刻。
表示や入力フォーマットの統一も面倒だし、
並べ換えもねえ。

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




69 :NAME IS NULL:04/02/23 16:56 ID:aEcQvCoc
最初は、alter table を使おうとして動かずあせった。
ドキュメント見直したらサポートしてない、とあって、
じゃあどうすりゃいいんだと、またもあせった。
答えは単純なのであった。

70 :NAME IS NULL:04/02/23 22:12 ID:???
このスレには詳しく調べる前に
すぐに文句を言っちゃう人が多いですね・・・。

71 :NAME IS NULL:04/02/24 01:56 ID:???
>>70
2ちゃんねる全体の傾向です。

72 :NAME 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も追加サポート。

73 :NAME IS NULL:04/02/24 22:53 ID:???
ワラッタ
Excel の表みたいだな。

74 :62:04/02/25 18:20 ID:UqpphvZs
>72
公式には「バックアップとって,dropして,createして,コピーすれ」って
書いてありますね.パフォーマンスはひどいと思われますが...
http://www.sqlite.org/faq.html#q13
私は a,b,...,z じゃないけど,列に「予約」を加えることにしてます.

75 :NAME IS NULL:04/02/25 20:23 ID:???
パフォーマンスはあまり気にならないのでは
1回だけだし

76 :NAME IS NULL:04/02/25 20:35 ID:???
ちょっとは自動化できるスクリプトかバッチファイルでも作ってみるかな。

77 :NAME IS NULL:04/02/26 00:12 ID:1lxCODMs
PHPと連携して、管理システムを構築した。

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

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

後はプロシージャさえ組めれば・・・・・


78 :NAME IS NULL:04/02/26 09:25 ID:???
サービスとして起動しておく必要がないのに、とても高速で使えるよね。
これだけコンパクトだと、組み込み用途で重宝というのもよくわかる。やったことないけど。
PHP5で知名度が上がれば「SQLite本」出るかな。

79 :NAME IS NULL:04/02/26 13:29 ID:???
>>74
もうすこし効率のいい方法があったような気がしたけど
やりかた忘れた・・・

80 :NAME 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してますね。

81 :NAME IS NULL:04/03/01 10:02 ID:???
>80
この場合は「行を追加」ではなく「列を追加」でしょうね。
行を追加するInsertのサンプルに上がっているけどね。よく見つけたな。

82 :NAME IS NULL:04/03/01 10:45 ID:LObuw1/6
結局、新しいテーブルを作ることは簡単だが、元のデータを移そうと思うと、
同じ名前の別テーブルに、名前の衝突を回避しながら入れ替えることは
ステップを踏まないと出来ないということだな。

83 :NAME IS NULL:04/03/03 10:09 ID:???
(゚Д゚)ハァ?

84 :NAME IS NULL:04/03/03 11:51 ID:???
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  |   ハァハァ禁止!  |
  |________|
      ∧∧.||
    ( ゚д゚)||
    / づΦ

85 :NAME IS NULL:04/03/03 20:41 ID:???
(゚д゚)ハーン?

86 :NAME IS NULL:04/03/04 17:40 ID:3W8zShnU
日本でもフリーなPHPスクリプト配布する人が増えているが
海外に比べるとDB使っている人が非常に少ない。
理由はやはりレンタルサーバが対応している所が少ないからってのがあると思う。
で、それが>>77-78の理由で大ブレイクする予感。

87 :NAME IS NULL:04/03/04 18:05 ID:???
クマー!!(・∀・)
http://www5e.biglobe.ne.jp/~yb_net/clip/img/14872.jpg

88 :80: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内で自動的にできたらいいなぁとか思って
ソースのぞいてみたけど、カラムの型なんかいちいち調べてたら
時間かかりそうだし・・・

89 :NAME IS NULL:04/03/05 20:03 ID:kZCYuHRE
Sqlite で JDBC接続している人いませんか?
英語のサイトを読みつつ 接続したのですが うまくいきません
JAVAでウィンドウズ2000でやっている人いないかな 

90 :NAME IS NULL:04/03/05 22:08 ID:???
トリビア

SQLiteの作者はTclのハッカーである。

91 :NAME IS NULL:04/03/05 22:56 ID:???
>>89
何がうまくいかんの?
俺もちょっと前にJDBC接続してみたが、普通に使えたぞ。
日本語以外は。

92 :NAME IS NULL:04/03/12 00:40 ID:RfCZzlsO
>90
15ふ〜ん

93 :NAME IS NULL:04/03/15 16:28 ID:???
>>36
擦り寄って来たね♪

94 :NAME IS NULL:04/03/17 21:15 ID:InsPnmlY
>>93
そーすきぼんぬ

95 :love.chu.love@dj.r.ne.jp:04/03/17 22:15 ID:???
love.chu.love@dj.rmail.ne.jp

96 :NAME IS NULL:04/03/18 06:01 ID:tomkhCwI
>94
ttp://www.itmedia.co.jp/news/articles/0403/13/news017.html

97 :NAME IS NULL:04/03/18 06:31 ID:jR84uLHZ
a

98 :80:04/03/18 08:08 ID:???
>>96
SQLiteがきたからMySQLが戻ってきても・・・
ストアドとかテクニカルな事がしたかったらポスグレ使うし
規模がデカくなったらOracle使うし・・・

SQLiteManagerいつのまにか日本語化されてますね。
自分で日本語化ファイル作ってつかってますた。


99 :NAME IS NULL:04/03/18 21:45 ID:Us3+nbT1
>>96
ほんまや。必死だな藁
つーかSQLiteが当て馬になってんのかなあ。
それはちょっと政治的で嫌だなあ。
まあ俺はWebプログラマじゃないからPHP使わないけど・・・


100 :NAME IS NULL:04/04/14 10:02 ID:+XCDs49F
http://pcweb.mycom.co.jp/special/2004/php5/007.html

トランザクション使わずにぐるぐるINSERTしてます。


101 :NAME IS NULL:04/04/17 21:04 ID:PagAZNLN
>>100
なんか気の毒だね。
教えてあげた方がいいかもw

102 :NAME IS NULL:04/04/17 22:49 ID:x7N6mXCW
>>100, 101

先日教えてあげました.
すでに訂正が入っていますね.SQLite の方が速かったみたいです.

103 :NAME IS NULL:04/04/18 03:33 ID:???
俺のテストによればトランザクションでまとめてインサート
してもデータの数が500万件とかになると、インサートは
遅くなる。多分Bツリーのページ溢れによる再構築か
ディスクアクセスに時間がかかってるのだと思う。
どうすれば速くなるのかまだ実験中。

104 :NAME IS NULL:04/04/18 21:41 ID:hUv2zobH
>>98
>ストアドとかテクニカルな事がしたかったらポスグレ使うし
>規模がデカくなったらOracle使うし・・・

だな。MySQL、もうイラネ

>>103
素朴な疑問なんだが500万件をまとめてインサート
するようなことは頻繁に発生するの?
ていうかデータの絶対量が500万件を超えると
1件の挿入でも遅いってこと?
前者ならあんま気にせんでいいような。


105 :NAME IS NULL:04/04/18 23:03 ID:???
>>104
毎日500万件のテーブルに4000件程度の挿入をまとめてやるんだが
2000件目くらいから極端に遅くなる。CPUをフルに使ってズバズバやって
欲しいのだが、CPUの使用率も下がってしまう。どこにボトルネックがあるのか
いまいち掴みきれてない。

106 :NAME IS NULL:04/04/19 03:40 ID:???
>>105
CPU が下がってるときのディスク I/O は?

107 :NAME IS NULL:04/04/19 23:30 ID:???
>>106
どれくらいの頻度でアクセスしてるのかよくわからない。
アクセスランプ壊れてるんだわ。すまん。
トランザクション中のジャーナルファイルの更新が遅い感じ。
最適化のFAQ読んでたらジャーナルファイルをOFFにできる
みたいなんでそれやってみるわ。

108 :NAME IS NULL:04/04/19 23:51 ID:ZwzacxDL
>>105
なるほど。
オイラは「500万件という(ある意味小規模とは言いにくい?)
量のアクセスで遅くなるなら、素直にあきらめて別のものを使うのが
SQLiteにとって吉」という意見なのだが…どうかね?

SQLiteはシンプルでコンパクトであり続けて欲しい。
…1000アクセス/1日未満のサイトとか、ちょっとしたアプリで
バークレーDBよりもうちっと構造化されたDBが欲しいという場合に
フリーで使えるメジャーなDBライブラリになって欲しいのよね。
getopt的プログラマの共通言語「ああ、アレね」みたいな。


109 :NAME IS NULL:04/04/20 00:21 ID:???
>>107
ん? iostat とかで見れないすか? Windows とかだったらスマソ。

110 :NAME IS NULL:04/04/20 16:47 ID:???
>>108
俺はCとTcl/Tkを好んで使うんでSQLiteにはとても
親近感を持ってるんだよ。使いたいんだ。

>>109
うん。Windows。すまん

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

ところで先日クロスコンパイルに失敗。
見た感じではさくっといきそうな感じだったんだが_| ̄|○


112 :NAME IS NULL:04/04/25 23:30 ID:???
PocketPCで使える?

113 :NAME IS NULL:04/04/26 02:26 ID:ORUhb82C
>107
sqliteInt.h の
# define TEMP_STORE 1
ですね.俺もC/Win 環境で使ってるので続報期待.

ところで ver3 の開発が始まったみたいだね.
今のところ BTree に手が加えられてるみたいだけど詳細は不明.
個人的には圧縮関連ルーチンが取り込まれないかと期待.

114 :NAME IS NULL:04/04/26 11:19 ID:fJzkQNNx
SQLiteManagerを操作中
Tableを間違って消しちゃったみたいなんですが
DBの中身を見るとテーブル定義もデータも残ってるみたいなんです。
(でもselect * from sqlite_masterしてもでてこない)

これって救出する方法ありますか?


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

Windows環境なんですが、どうやればよいでしょうか?
教えて下さると、とっても嬉しいです。よろしくお願いします。


116 :NAME IS NULL:04/04/26 19:15 ID:???
>>115
mysql <test.sql
つーバッチファイルつくりゃすむだろ

117 :NAME IS NULL:04/04/27 00:22 ID:???
なんでmysqlの質問がここなんだよw


118 :NAME IS NULL:04/04/27 09:24 ID:???
warata

119 :NAME 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にでもしてみようかなぁ。静かそうだし

120 :NAME 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であるのが決定的に違うところか?


121 :NAME IS NULL:04/04/28 10:08 ID:zZMnOcUG
>>120
Accessのmdbは商用利用ダメなんですか。そうですか。

バックアップって.dumpでsqlファイルとしてとってます?
容量が小さいならファイルまるごとコピーでも良いのではないかと
思っておるのですが。
(というか.dumpはバックアップ用なのか?)

122 :112:04/04/28 23:29 ID:???
やっぱりそうですよね。
石の違いを吸収してしまうDBファイル形式。
母艦でOracle等の親DBからデータを切り出したSQLiteのDBファイルを作成。
PDA用のアプリは慣れたSQLを使って作成可能。

os.cを見てみたのですが、PDAは所詮利用者ひとりだけなので移植はそれほど
難しくなさそうな気がするんだけど。もしかしてほとんどそのままコンパイル可能?
PocketPCアプリ作ったことがないんでよくわからないので聞いてみたのですが。
PDAで動作すると商業ベースにも乗って意外とそっち方面でも流行るのでは?

123 :NAME IS NULL:04/04/29 00:18 ID:???
Accessのmdbが商用利用不可というのは初耳なんだが

124 :120:04/04/29 11:12 ID:???
失礼。ちょっと脳にウィルス入ってた。


125 :NAME IS NULL:04/04/29 20:07 ID:???
>123
たしか
accessのライセンスがないとダメだよ。


126 :NAME IS NULL:04/04/29 21:47 ID:WDx32sxT
>>121
dumpはバックアップ用じゃなくて、他のDB、というか
Postgresqlにデータを移すために使うんだよ。
バックアップは君のいうようにDBファイルを圧縮しとけば
いいと思うよ。差分は取れるのかどうかしらない。

127 :NAME IS NULL:04/04/30 08:57 ID:y7ZGN/fc
>>125
たぶんライセンスじゃなくて信頼性とかの問題で
商用利用不可なんじゃないかと。

128 :NAME IS NULL:04/04/30 21:19 ID:VZceiIAf
信頼性というのならsqliteは実績が無いから商用につかうのは
どうかと思うけど・・・。なんかsqlite使った有名アプリない?
PHPとかは無しで。

129 :NAME IS NULL:04/04/30 21:36 ID:???
>>128
有名かわからんが、TeamSpeak
http://www.teamspeak.org/

130 :NAME IS NULL:04/04/30 23:41 ID:???
調べずにカキコするが
sqliteのperlへの実装ってある?

131 :NAME IS NULL:04/05/01 00:11 ID:FaMfpc9Z
sqliteってシングルユーザなDBみたいですけど
ロックってどんなかんじ? なんも考えず select for update
でOK?

132 :NAME IS NULL:04/05/01 01:20 ID:???
>>130
http://search.cpan.org/~msergeant/DBD-SQLite/lib/DBD/SQLite.pm

133 :NAME IS NULL:04/05/03 08:02 ID:???
>>131
トランザクション開いてアクセスする。

(トランザクション閉じるまで他の人は読み込みも蹴られますた。
SQLite擁護派として何かもう一言フォローしたいところだが
漏れも調査中なんでスンマソ)


134 :NAME IS NULL:04/05/03 23:01 ID:AtGIA8g9
SQLiteに500万件なんてナンセンス!

135 :NAME IS NULL:04/05/03 23:57 ID:6ET0kvN6
>>133
最初に開いたのだけ書き込みできたんじゃなかったっけ。

>>134
うるせーバカ

136 :NAME IS NULL:04/05/04 04:30 ID:EWylYRto
>>135
だって意味なくね?
実験するのは大いにかまわないけど、なんか必死なのが痛い。
文字通り 軽量 のデータベースなんだからさ。

137 :NAME IS NULL:04/05/06 08:18 ID:YTLAADWx
>>136
言い回しは好きじゃないけど内容的には賛成。
SQLiteは好きだし便利だけど、データ量が多いと
その真価は発揮できないと思う。
(処理速度よりもバックアップとかのメンテの面で。)

俺の場合500万件なんていうたくさんのデータを扱う案件は
今後でてこないと思うのでSQLite使いつづけますが。
10万件程度なら全然問題ないし。

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

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

あと、今のところ単純なラッパーを越える使い勝手のC++ライブラリが存在しないんですが、
ACCESS VBAのADODB.Recordsetライクな使いやすいアクセスライブラリってどこかに落ちてませんかね?
板違いならスマソ。

139 :NAME 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
かな。

140 :138:04/05/06 19:26 ID:kuYQWsdl
>>139
>なんかすごいこと言いますね。
>ロケール文字列をDBに入れるってすげーありえねー。

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

ライブラリのほうは家に帰って試してみます。ありがとう。


141 :NAME IS NULL:04/05/06 21:26 ID:S/PbMEEw
>>2

142 :NAME IS NULL:04/05/07 05:27 ID:???
>>140
> ほとんど「何でも」入ります。

>>139 はそういう話を言ってるわけじゃないだろう。

143 :NAME IS NULL:04/05/07 09:40 ID:uvn4YUcn
SQLiteなら、DBとしての利用という範囲で考えずに、
>>138 が言う「ファイル形式としての応用」への挑戦はありえるんじゃない。
XMLより使いやすい場合があるかも。

144 :NAME IS NULL:04/05/08 06:16 ID:Gf03gDXu
>>143
それはどうでしょう.いきなりファイル形式が変化することもあるんでは?
同様に内部コードが UTF-8 と ANSI の場合でファイル形式変わってしまいませんかね?
(調べてません.すんません)
基本的に非圧縮だし,と思えば亜種で圧縮サポート形式も出てきていて,標準には向かないような.
以上は交換用途としての(.pdfのような)ファイル形式としての話.
アプリのデータ保存用で,ある種独自のファイル形式としてなら,大いに結構.
公式にもその用途を謳っていますしね.でも比較対象はXMLではないと思います.

145 :NAME IS NULL:04/05/08 08:01 ID:???
ロケール文字列はDBに入れないほうがいいと思う。
なぜかというとsqliteのツールが無いとユーザーが
新しく追加できないから。UTF-8のテキスト形式が
シンプルでいいと思う。
初期設定の保存とかは便利でいいと思う。

146 :NAME IS NULL:04/05/08 15:04 ID:???
>>137
軽量ってのは、本体のコードのことで
DBのサイズでは無いと思うんだけど
どうなんでしょう

147 :NAME IS NULL:04/05/08 16:36 ID:???
locale文字列.....
ADODB.Recordset.......
ファイルシステムの代わりに最適........

上記の話題を見た直後の私の第一印象、
「はぁ........もうダメポ」

148 :NAME IS NULL:04/05/08 17:56 ID:???
>>147
なんか間違えたこと言った?変なこと言ってたら
訂正するから指摘してくれ。

149 :NAME IS NULL:04/05/08 18:38 ID:???
>>148
それほどには奇天烈なことは言ってないと思うがちょっとうなってしまう
部分はある。
ロケール文字列については、
 { 言語, 通し番号 } → 文字列
ができればいいわけだよね。
現状は言語ごとに分かれたファイルから通し番号でとってくる
やり方が主流だと認識してる。

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

新しいやり方にチャレンジする精神は立派。完成させてみて
発見したり実感したりすることもあると思うのでガンガレ

150 :NAME IS NULL:04/05/09 14:03 ID:6b2QA1ug
>>149
>すでに確立した感のある方法(自動生成ツールがあったり、
>その解説ドキュメントがあったりして他の開発者が
>共通の知識を持っている)をあえて捨てるメリットがあるかは疑問。

ソースキボン
プログラム板のスレタイトル眺めて、多国語対応でググってみたが、
いいサイトが見つからない

151 :NAME 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も似たしくみのはず。

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

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

ただ、DBをこういう風に使うのはなんか間違ってると思うが。
リレーション?なにそれ?っていう状況になるわけで。

153 :NAME IS NULL:04/05/10 10:20 ID:6CmpQPbS
> リレーション?なにそれ?っていう状況になるわけで。

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

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

SQLiteのデータ型
第1節 型なし
SQLiteは「型なし」である。これは、そのカラムに宣言されたデータ型に関わらず、どのテーブルのどんなカラムにも君が望むあらゆる種類のデータを蓄積できる、という意味である。(このルールのただ一つの例外は、次の第2節を見よ。)この動作は仕様であってバグではない。
データベースはデータを蓄積し、復元しなければならないものであって、どんな形式のデータが入るかはデータベースには関係のないことである。
他のほとんどのSQLエンジンに見られ、SQL言語の仕様に定められている強い型システムは、間違った仕様である。この間違いはインターフェースの中に現れる実装の一例である。
SQLiteは、こうした間違った仕様の克服を求める。あらゆる種類のデータをあらゆるカラムに蓄えることを君にまかせ、データ型の定義に柔軟さを認めることによって。

154 :NAME 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 使ってて、まだ持ってなかったのかい。

155 :NAME IS NULL:04/05/12 14:42 ID:???
http://www111.sakura.ne.jp/~hanyan/todouhuken/00-chizu/futama-nihon-moe2.jpg

156 :NAME 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

157 :NAME IS NULL:04/05/19 18:07 ID:???
SQLiteをC++で使いたいけど英語が苦手なんで
昨日から少しずつ翻訳してるのですが、
うまく日本語になってないところ・・・というより
意味不明なところが多すぎる _| ̄|○

http://tria.s31.xrea.com/sqlite/c_interface.html


158 :NAME IS NULL:04/05/20 17:36 ID:???
ODBCドライバはファイルDSNには対応していないのかな?
やろうとしたらエラーが出たんだけど。


159 :NAME IS NULL:04/05/23 11:50 ID:???
>>157
ぐっじょぶ!

160 :NAME IS NULL:04/05/25 01:33 ID:???
未出のようなので一応リンクしておきます。

SQLite ODBC Driver
http://www.ch-werner.de/sqliteodbc/

161 :NAME IS NULL:04/05/25 01:34 ID:???
SQLite Control Center より使えるかどうかわかりませんが一応これも

SQLite Database Browser
http://sqlitebrowser.sourceforge.net/

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

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

それにしても、アプリに組み込みできる、シンプルで、使い勝手が良くて、緩いライセンスの
データベースがあるって素晴らすぃ。

163 :NAME IS NULL:04/05/25 08:21 ID:???
>>161
カコイイ!でも文字コードがああああああ

逝ってくる。

164 :NAME IS NULL:04/05/25 10:14 ID:???
>>163
ttp://www.kumaryu.net/cgi-bin/diary/?date=20040110
で修正の手掛りが書かれているんだけど
C言語な人解らないかなぁ...


165 :NAME IS NULL:04/05/25 10:52 ID:???
文字コードがどうかしたの?

166 :NAME IS NULL:04/05/26 08:39 ID:???
Qt 使ってるのか。

167 :NAME IS NULL:04/05/26 10:49 ID:OP8x6gI1
ほんとだ。Windows版バイナリだと、日本語データ表示は文字化けだあ。
これで入力すると ?? というデータになるしね。Qtは知らないからなあ...

168 :sage:04/05/26 13:14 ID:YjzGdGIt
外国製でもきっちり日本語処理ができるのって、どういうのかな。
Unicodeを使ってるドットネットのものは、大丈夫なのが多いみたいだけど、
Javaのもいいか ?

169 :163:04/05/26 13:19 ID:???
>>167
最初、自分がINSERTしてるデータがEUCだったので表示されないのかと
思って「逝ってくる」ってパピコしたんだけど
その後UTF-8で入れなおしてもダメ。
私もQtなんて知らないです・・orz

170 :NAME 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と聞きました.
ちょっといじってみます.

171 :NAME 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 向きだね。


172 :NAME IS NULL:04/05/27 18:11 ID:???
こんなんもありますた。
ttp://www.manoeuvre.net:8080/wiki/index.php?SQLite%CD%AD%B8%FA%B3%E8%CD%D1%B7%D7%B2%E8


173 :171:04/05/28 09:03 ID:+ZceNJch
このライブラリ使って、ロケール文字列を SQLite に入れておくテストしたら、あっさり成功しました。
普通のリソースを使う既存のコードも、1行書き換えるだけ。
あとは SQLiteで
create table Messages ([key], [ja-JP], [en-US], [de-DE], [fr-FR])
なんてして、データを入れておけば、勝手にシステムのカルチャに合わせた文字列を表示する。
プログラムからカルチャを変更するような使い方も簡単だな。
標準クラスを継承するクラスの作り方・使い方のお手本みないなもんだ。

174 :163:04/05/28 15:10 ID:???
SQLiteのMLができたってー

http://www.net-newbie.com/sqlite.html

175 :NAME IS NULL:04/05/29 13:30 ID:???
ttp://oku.edu.mie-u.ac.jp/~okumura/php/db.html

176 :NAME IS NULL:04/05/29 15:08 ID:???
まとまったリファレンスはけん
http://www.rakuto.net/study/htdocs/sqlite/

177 :NAME IS NULL:04/05/29 15:43 ID:???
テキストストレージとして使うってのはありなのかな。
メモ帳、日記、掲示板みたいな、付帯属性のあるプログラムのバックエンドとして使いたい。

178 :NAME IS NULL:04/05/29 18:57 ID:???
>>177
おおあり

179 :NAME IS NULL:04/05/30 02:20 ID:???
>>178
そうでつか。今作ってるデータ集計用のアプリが完成したら、PIM ソフトを作ってみようと
思っていたので心強いです。どうもありがとう。
日本語の全文検索あたりが難関かなと思ってます(現在ノー・アイデア)。

180 :NAME IS NULL:04/05/30 06:23 ID:???
>>179
めんどくさいからlike演算で・・・。

181 :170:04/06/01 04:17 ID:???
SQLite Database Browser の日本語化をやろうとしましたが,
オリジナルの Windows 版は Qt の製品版を購入して作ったらしいので,
Qt を持っていない私には開発できないことがわかりました.残念.

>>179
SQLite 自身に手を入れてもいいかもしれませんね.
正規表現パッチとか勝手に作っちゃいます?

182 :NAME IS NULL:04/06/01 07:29 ID:???
>179
日本語は全てUTF8に変換してDBに突っ込む。
突っ込む際は、表示用のオリジナルのテキスト(フィールドA)のほか、
・全角英数記号を半角化
・半角カナを全角化
・ひらがなをカタカナ化
・無駄な空白を取り除く
等の処理を行ったテキストも別フィールドBに突っ込む。
検索の際は同じ処理を行ったUTF8のテキストをフィールドBに対してLIKE演算。
という感じで簡易あいまい検索を実現してま…

183 :174:04/06/01 08:21 ID:???
>>181
フリー版での国際化はこれでできそうなのにね。
http://www.asahi-net.or.jp/~hc3j-tkg/qt-i18n/index-j.html

184 :170: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
興味深い方法ですね.それって常套手段なんでしょうか?


185 :182:04/06/02 00:00 ID:???
>>184
適当に自分で考えただけなんで、常套手段なのかどうかは全然わかりません。
とりあえずこうしておかないとパフォーマンスが悪いと思うんで…
というかまずRDBは全文検索には向かないと思うんですよね。


186 :157:04/06/19 07:51 ID:???
ver 3.0 alpha 来ましたね
UTF-16使えるようになったのかな

187 :NAME IS NULL:04/06/24 22:59 ID:???
SQLite のサイト、いつのまにあんなデザインになってたんですか?

188 :NAME IS NULL:04/06/25 13:19 ID:???
>>187
私も気づかなかったー。
グラフィカル。でもやっぱりシンプル。良い。

189 :NAME IS NULL:04/06/28 20:24 ID:???
VB6で3を使う方法が書いてあるページ探し中・・・・・・・
だれか

190 :NAME IS NULL:04/06/28 21:15 ID:???
>>189
ODBC経由は駄目なの?


191 :NAME IS NULL:04/06/30 09:54 ID:???
>>190
ODBCを使うと配布やインストーラ作成が大変そうな気がするのですが、どうなんでしょう。
一般アプリの組み込みDBとしたいので。

・・・バージョン2使おうかな・・・

192 :NAME IS NULL:04/07/01 10:44 ID:mj80YqiM
>>191
そういう用途だと、インストールの点で、ODBCを使うのは面倒そう。
VB.NET にすれば ODBCはいらないけれど、.NET Framework が入っているかが問題になるし。

193 :NAME IS NULL:04/07/01 17:21 ID:QhIip2ce
>>186
なってるみたいですな。
http://sqlite.org/version3.html

自作プログラムは大して開発が進んでるわけでもないので、
さっそくVer3に移行しようかな。

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

195 :NAME IS NULL:04/07/02 23:02 ID:???
ぬおーデータ変換が面土居。

196 :NAME IS NULL:04/07/09 11:34 ID:nSC8GXrZ
Ver3のsqlite3_execにUTF-16直接つっこんじゃ駄目?

197 :NAME IS NULL:04/07/09 16:12 ID:???
SQLite ODBC DriverがSQLite 2.8.14になりました。

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



198 :NAME IS NULL:04/07/16 23:10 ID:RV+8pVD1
PHP 5.0.0 Released! [13-Jul-2004]
SQLite has been bundled with PHP.

199 :NAME IS NULL:04/07/23 13:33 ID:???
SQLite Delphi Components
SQLite 3.0 components released
ttp://www.aducom.com/sqlite/



200 :NAME IS NULL:04/07/29 22:45 ID:???
「SQLite」 (Chris Newman 著)
http://www.amazon.co.jp/exec/obidos/ASIN/067232685X

201 :NAME IS NULL:04/08/02 15:53 ID:CPTZa5VA
同上
2004年10月発売予定(SAMS Publishing)。ただいま予約受付中。

202 :NAME IS NULL:04/08/05 09:22 ID:???
>>201
200のは、Macmillan Computer Pub ; ISBN: 067232685X ; (2004/09/30)になってるけど
別の本ですか?

203 :NAME 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」ね。

204 :NAME IS NULL:04/08/09 13:05 ID:cCyZtPbc
>>202
同じみたいです。
http://www.bookpool.com/.x/7mtopise8m/sm/067232685X

205 :NAME IS NULL:04/08/09 17:17 ID:52OdYyi7
>>203
> Lindaってなに?→増井氏の記事
面白い記事を紹介していただき、ありがとうございました。
こんなものがあるとは知らなかったです。
タプル空間に SQLiteを使うというのは、
SQLiteにプロセス間通信の仲介をさせてみよう、ということでしょうか。
できたら面白い。

206 :NAME IS NULL:04/08/10 05:34 ID:???
>>205
>SQLiteにプロセス間通信の仲介をさせてみよう
そゆことですな。
「タプル空間」って、イベントスプール+αなものだと解釈してます。
そのアルファの部分は、
・型宣言とかしなくても任意の型の任意列数のデータを入れておける
・先頭以外からもとりだせる
・パターンマッチを適用して取り出せる
・複数マッチしたらとりだされる順番は保障されない(どれか1つがでてくる)
と。
コンピュータにとっては重い要求だろうけど、
えらく簡単なソースでいろいろ表現できるメリットがある、と。
SQLiteは型がないから、エクセルみたいにA〜ZZ列にしておけば、
タプル的なデータが入る。
DBMSなのでパターンマッチで取り出すのもできる。
あとはウェイト処理と、希望に沿うレコードが入ってきたらそれを
通知する仕組みがあれば「タプル空間」になるのかな、とね。

207 :NAME IS NULL:04/08/10 10:09 ID:???
>>204
ありがとう。アマゾンで買ってみる。

208 :NAME IS NULL:04/08/11 20:17 ID:???
SQLiteって、sub select使えますか?

209 :NAME IS NULL:04/08/12 01:32 ID:???
PHP5でいじってます。SQLiteManagerもいい感じ。
ttp://www.zend.com/php5/articles/php5-sqlite.php
↑にPHPで使う文書があって、OOでグリグリいじってるけど
OOなマニュアルは発見できず。誰か場所知ってる人いる?

210 :NAME 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日後に大嫌いな人が事故で入院しました。

212 :NAME IS NULL:04/08/24 17:59 ID:j0R9/TNS
> OO?
もしかして OOP の OO かな ? オブジェクト指向 ?

213 :NAME IS NULL:04/08/24 22:57 ID:???
>>209
へぇ〜

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

こんなことできるんだ。知らなカターヨ

214 :NAME 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;投げてるんだけども。


215 :NAME IS NULL:04/08/31 19:24 ID:???
>>209
そうそう。私も探してます。

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

って書いてあるのに、SQLiteDatabaseクラスに関する
記述はどこにあるねん。


216 :NAME 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 の安定版がもうすぐ出そうだし、今手を出すのはためらうな…

217 :NAME IS NULL:04/09/01 00:14 ID:???
ちなみに 3.0 系では「型アリ」になる予感

218 :NAME 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機能を追加してるのが
特徴らしいが…開発者にとっては似て非なるものをつくられても
十字架が増えるだけだよな。

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

PHP の SQLite への対応は嬉しい。バージョン 3 に対応するときは、2 と 3
を別のモノとして扱ってくれると混乱少ないかなぁ?ふたつ同居になるけど。

220 :215:04/09/01 10:14 ID:???
ほほう、216さん very thanx です。
私もソースハックしてみます。

221 :NAME IS NULL:04/09/18 22:21:10 ID:???
>>206
SQLiteは一般的なRDBMSと違って独立したサーバープロセスを持っていないため、
複数のプロセスから要求をアトミックに処理するという並行プログラミングの
ための基本的な要件がまったく抜け落ちています。

つまり、プロセス間通信の受付けや複数の依頼元からの要求を破綻なく処理する
という中枢部分をゼロから実装しなければならないわけです。
これって結構大変ではないでしょうか。


222 :NAME IS NULL:04/09/19 01:53:33 ID:???
>>221
失礼ですが、 SQLite を使ったことありますか?

223 :NAME IS NULL:04/09/19 21:24:48 ID:???
>>222
僕の知識は古いですか?
SQLiteと一般的なRDBMSとの最大の違いは、アプリケーションプログラムの
内部にライブラリとして組み込まれて動くことだと理解していましたが。


224 :221:04/09/19 21:39:02 ID:???
あ、複数のプロセスから同時にデータベースファイルを update しても
トランザクションは破綻しないのかな?
それならファイルにアクセスできる=タプルスペースを共有できる
ということになりますね

Rindaとかはネットワーク越しにやってるから、ついついそれを基準に
難しく考えてしまいました。


225 :NAME IS NULL:04/09/20 04:32:12 ID:???
チラシの裏でやれよw

226 :NAME IS NULL:04/09/21 09:42:19 ID:???
>>222
失礼ですが、Lindaをご存知ですか?

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

ポーリングでもして待ちますか? w


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

破綻するようなのはトランザクションと呼ばないと思ってたんだけど、俺の勘違いか?

228 :NAME IS NULL:04/09/21 11:19:23 ID:vUHMrqUQ
>>226
> ブロックして
とは何を何からブロックするのですか。

229 :NAME IS NULL:04/09/21 14:52:36 ID:???
>>228
in() や rd() で問い合わせを実行すると、マッチするデータが出現するか、
タイムアウトするまで待つため、その間制御は帰ってきません。
このことをブロックと書きました。

# これによって待ち行列やランデブーなどのロジックを実現します。


230 :NAME IS NULL:04/09/21 15:01:34 ID:???
>>226
恥ずかしながら寡聞にして存じません。

私の指摘したかった点は、
「SQLiteは一般的なRDBMSと違って (中略) 基本的な要件がまったく抜け落ちています」
についてだけだったのですが、
他の「一般的なRDBMS」ならばそういった要件が満たされるのでしょうか?

231 :NAME IS NULL:04/09/21 22:10:51 ID:???
PostgreSQL LISTEN NOTIFY でググる。

と書いてみたけど、勘違いしている可能性大。

232 :NAME IS NULL:04/09/21 23:36:06 ID:???
変なひとは放置の方向で。>all

233 :NAME 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にハマる使い方ってもうないの?

234 :NAME IS NULL:04/09/23 15:02:09 ID:???
3.0 安定版(3.0.7)キタ━━━━(゚∀゚)━━━━ッ!!

235 :NAME IS NULL:04/09/24 10:13:49 ID:???
みんな SQLITE_BUSY が返る場合のことを意識してコード書いてる?

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

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

という場合のことも考えてコードを書くべきなんだよね。


236 :NAME IS NULL:04/09/26 16:40:39 ID:???
漏れもPHP。
一応エラー意識して書いてるつもりだけど最後はrollback頼みだよ。
insert/updateを二三行う場合の模範例みたいのありますかね。

237 :NAME IS NULL:04/10/22 12:40:19 ID:???
バージョン3のJDBCのWrapperはやくでねーかな。


238 :NAME IS NULL:04/11/07 18:21:53 ID:ipMPK00B
hoshu

239 :NAME 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

241 :NAME IS NULL:04/11/16 11:11:39 ID:stpfuOmw
>>239
DataTable.Rows.Count ではどうでしょうか。用が足りませんか。

242 :NAME 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 の標準にないからでしょう。
標準の機能を駆使して間に合わせる方が、早そうに思えます。

243 :239:04/11/17 13:06:43 ID:???
>>241
>>242
ありがとうございました。
いじってみます。

C#, ADO.NETも平行で勉強しているので混乱気味です。

244 :NAME IS NULL:04/11/17 14:20:50 ID:???
>>240
2種類あるようだな。
俺はsourceforgeのを使ってる。

245 :NAME IS NULL:04/11/19 00:41:35 ID:???
SQLite試してみたけど、これって日本語が文字コードそのままで入っちゃうのね。
ラッパー噛ますか、自分でコンバータ書かないと駄目なのかな。


246 :NAME IS NULL:04/11/25 22:23:56 ID:???
エスキューライト? スクライト?

247 :NAME IS NULL:04/11/25 23:04:04 ID:???
(・∀・)シークァライト!!

248 :NAME IS NULL:04/11/26 00:59:48 ID:???
エスキューエル いて

249 :NAME IS NULL:04/12/11 04:26:24 ID:???
ADO.NET Data Provider for SQLite
パスに日本語が入ってるとあぼーんする…orz

250 :NAME IS NULL:04/12/13 09:35:12 ID:oxhzl4xo
SQLiteについて質問。
1、ストアドプロシージャは使えますか?
2、トランザクションは実装されてますか?

251 :NAME IS NULL:04/12/13 23:09:16 ID:???
とりあえず http://www.sqlite.org/lang.html 検索汁

252 :NAME IS NULL:04/12/14 14:08:53 ID:sBR5K/AY
SQLite(DLL)をDelphiで使うには、どのようにしたらいいのでしょうか。

253 :NAME IS NULL:04/12/14 14:22:39 ID:???
>>252
SQLite Delphi Components
ttp://www.aducom.com/sqlite/

254 :252:04/12/14 14:25:33 ID:sBR5K/AY
253>
ありがとうございます。
しかしながら、D6のパーソナルだったり。
データベース関連のユニットないんです。


255 :NAME IS NULL:04/12/15 02:30:36 ID:???
>>250
1. ない
2. されてる

256 :NAME IS NULL:04/12/15 18:58:27 ID:???
>>255
サンクス

257 :NAME IS NULL:04/12/20 12:30:56 ID:U2fIrr/6
ADO.NET Data Provider for SQLite
とりあえず日本語は通るみたいだけど、ファイルのパスどうしてる?

258 :NAME 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使おうかな

259 :NAME IS NULL:04/12/21 11:14:53 ID:???
ソースも配布されてるんだから、デバッグしてみ。

260 :NAME IS NULL:04/12/21 13:13:02 ID:MSZ78en0
>>258
日本語のパスが通らないぞ、という話。
再現できなくてヘンだぞ〜と思っていたら、自分は古いバージョンを使っていた。
SQLite2 のみ対応していた Version 0.18 (July 01, 2004)
までなら日本語パスが使えていた。Version 0.19 と最新 0.20 では確かにダメ。
とりあえず、デバックのヒントということで。

261 :258:04/12/21 21:17:33 ID:???
情報ありがとうございます。

わかる範囲でソース追いかけてみます

262 :NAME 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 の方は、わざわざそれを使っていることに理由ありなら、
まずい変更ということになるわけで、ソースをまだ追跡してないので、
あてにせずに自分でチェックして下さい。

263 :NAME 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);

でいいような気もする。

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

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

何か出来ることあったらやります。
出来ることは少ないので、あんまし役に立てそうに無いですが・・・・

265 :258:04/12/23 15:21:34 ID:???
>>263
同じようにsqlite2のほうもokでした…
涙で画面が見えません(つд`)


266 :262:04/12/24 09:18:51 ID:DruLsR8d
>>263 なるほどです。
そこを変えるなら、エンコーディングには手をつけなくてすむし、
その修正が正しいと思います。
そもそも、ファイル名の文字コードとデータの文字コードが
同じにできるとは限らないでしょうから。
ということで、ひとまずデバッグ完了にしてもいいでしょうね。
ご苦労さまでした。

それにしても、SQLite3 対応バージョンになったら、どうして
わざわざファイル名までマーシャリングしているのか、という謎ですが、
ソースを眺めていると、SQLite3 の UTF-16 サポートに対応しかけて
途中で止まっているように見えます。
sqlite3_open16() を使おうとしたものの、ASCII コードと互換性がないから
このやり方ではまずいと思いなおして、やめにした痕跡(日本では困った残骸)
かな、と思いました。

267 :NAME IS NULL:04/12/24 09:49:25 ID:j+9u7lDN
えっと、おまえらちょっと教えてください。
2歳児程度の知能でわかるように。
今日始めてSQLってものに興味持った。
で、WindowsXP+SQLiteって環境で何かやってみたいなと。
オレはいきなり困ったんだよ。
createなんちゃら、とかでデータベースのファイル作るんだろ?
その作業はいったいどこでどうすればいいのか、と。
試しにコマンドプロンプトから
sqlite hoge
ってやってみた。
当然パスなんか通ってないし何も起きない。
なぁ、助けろお願いします。


268 :263:04/12/24 11:02:26 ID:???
>>266
あっちではASCIIが標準っぽいから、UTF使わん時は
とりあえずASCIIにしとけやって感じだったんでしょうなぁ。
何にしても、ファイルオープンはOS依存部分なんで、
現状、下手にファイル名はエンコーディング変換すべきじゃないかなと。

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

>>267
sqlite c:\hoge.db で create table したら、 hoge.db が出来てる。
あとはSQL92本とSQLite公式ドキュメント読んで気合で。

269 :NAME IS NULL:04/12/24 14:52:32 ID:j+9u7lDN
>>268
さんくす。
ただ、書き忘れてたことがあって。
よー考えたらPHPにSQLiteのモジュール組み込んだだけなような。

非常に感謝した。


270 :NAME 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 にも無関係。

271 :NAME IS NULL:04/12/27 13:25:39 ID:???
Defaultはともかく、Shift-JIS決め撃ちはよろしくないな。
Winのコードは、正確にはShift-JISじゃないし。
まぁ、何にしてもUTF-8使おうぜ。

272 :270:04/12/27 14:10:38 ID:bP0BeZGo
確かに。これからは UTF-8 を使うのが推奨。

273 :NAME IS NULL:04/12/30 17:41:45 ID:FzyFXvYT
C# で SQLite 使うに
SQLite Query Analyzer (SQLiteQA) は実用にもなるけど、
ソースも参考になりますです。
http://www.monkeyshinez.net/SQLiteQA/

274 :NAME IS NULL:04/12/30 22:09:30 ID:???
unicodeなんて糞
今までどおりeucかsjisでええわ

275 :NAME IS NULL:04/12/31 19:03:34 ID:???
> までどおりeucかsjisでええわ
m9(^Д^)プギャー
こういう奴が、MS932と純Shift-JISの区別もつかずに
DBに文字放りこんでるんだろうな。

276 :NAME IS NULL:05/01/01 00:20:55 ID:???
UTF8 って MS932 の文字も含まれているの?

277 :NAME IS NULL:05/01/01 04:48:25 ID:???
>>275
しつれいだがどういう繋がりが?

278 :NAME IS NULL:05/01/01 10:34:56 ID:???
>>277
文字コードの話が出ると必ずこういうのが沸いてくるのはもう仕方ない。
普通にスルーしとけ。

279 :NAME IS NULL:05/01/01 11:28:51 ID:???
Perl DBD::SQlite で使ってみてるんですが、LIKE 構文でちょっとはまってます。

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

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

何か良い解決策はないでしょうか?

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

個人的に、SQLiteのウリは可搬性だと思うので、UTF-8使うのがよさげだと思った。


281 :NAME IS NULL:05/01/01 20:47:45 ID:???
>279
phpでは\エスケープで動いたが。なぜ動かなかったスクリプトを書かない?

$_ = '%_\\';
print "$_ => ";
$_ =~ s/([%_\\])/\\\1/sg;
$_ = "%$_%";
print "$_\n";

282 :NAME IS NULL:05/01/02 10:39:43 ID:???
これからSQL勉強するのにお勧めの本ってある?

283 :279: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件もマッチしません。

284 :NAME IS NULL:05/01/04 21:46:21 ID:???
> "SELECT * FROM files WHERE namer LIKE '
これはOKなのか?
入力ミスかどうか知らんけど。


285 :283:05/01/06 01:24:06 ID:???
>>284
すいません、そこは貼り付ける時の編集ミスです

286 :NAME 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

288 :NAME IS NULL:05/01/07 13:07:13 ID:???
何か、と言われても
そっれがどうした僕ドラえもんって感じだ。

289 :NAME IS NULL:05/01/07 22:23:15 ID:???
>>286
どこで、が重要。ローカルなら普通すぎ。

290 :NAME 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 '%あ%' とかもふつうに使えるようなのですが、

問題が起こるケースはどんな時なのでしょうか?


291 :NAME IS NULL:05/01/09 18:54:09 ID:???
大文字小文字

292 :290: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検索を使いたい)



293 :NAME IS NULL:05/01/11 16:59:22 ID:???
>>292
う〜む。そーす見ても分からんな。
LIKEじゃなくGLOBを使って、*/?を[*]/[?]にしてみたらどうよ?
いっそ「検索にワイルドカードが使えます」とアナウンスするほうが楽かもしれないが。

294 :290: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使用中

295 :NAME IS NULL:05/01/12 11:18:21 ID:???
>>294
ああ、そういうことならsubstring()とかlength()等文字列操作関数以外では特に関係無いから。


296 :NAME 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 使うときは、 _ があったら、 % にでも
して、やり過ごそうかと思ってますが。
どう?

297 :296:05/01/12 14:38:21 ID:???
sqlite3.0 で SJIS のデータでやってますが。
like は、 エスケープが使えないのかな。
http://www.mail-archive.com/sqlite-users@sqlite.org/msg04862.html
http://www.mail-archive.com/sqlite-users@sqlite.org/msg04863.html
に、それらしい?ことが書いてありましたが、
で、
仕方が無いので、 '_' or '%' があるときは、
like じゃなくて、 glob で * にするとか
like のままで、 _ を % にでも書き換えようかと
思いました。



298 :NAME IS NULL:05/01/12 16:54:43 ID:???
pdo_sqliteが見当たらないどこいったーー


299 :NAME IS NULL:05/01/19 22:04:11 ID:???
いつのまにか SQLite3/Ruby ができてた。

300 :NAME IS NULL:05/01/22 22:08:03 ID:???
LIKE ... ESCAPE 対応sage

301 :NAME IS NULL:05/01/22 22:43:21 ID:???
alter table 出来るんだね。

302 :NAME IS NULL:05/01/24 08:54:59 ID:???
ALTER TABLE ... RENAME TABLE ...
テーブル名変更のみ対応の限定版みたいだけどね。少し楽になるかな。

303 :NAME IS NULL:05/01/31 11:03:59 ID:3JFZomnK
3.10(alpha) age

304 :NAME IS NULL:05/02/02 07:46:54 ID:mdzMwrr7
Sqliteが使える鯖あったら、教えてチョ。


305 :NAME IS NULL:05/02/02 10:41:49 ID:???
XREAの一部のサーバーでPHP5が利用可能になったよ。
どのサーバーで使えるかは事前に確認しろよ。

306 :NAME IS NULL:05/02/02 14:10:53 ID:???
3.1.1 (beta)

307 :NAME IS NULL:05/02/04 07:30:10 ID:???
>>305
あんがと。

308 :NAME IS NULL:05/02/13 02:33:51 ID:bTxKUDlt
どうがんばっても3.1.1betaがダウンロードできない・・・

309 :NAME IS NULL:05/02/16 14:04:19 ID:???
3.1.2を落とせばいいじゃない

310 :NAME IS NULL:05/02/16 14:25:22 ID:???
stableデタ━━━(゚∀゚)━━━!!!

311 :NAME 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名と解釈してしまいエラーがでる問題が解消されている)

312 :NAME IS NULL:05/03/14 11:06:00 ID:zJnP9H2H
3.1.5age

313 :NAME IS NULL:2005/03/25(金) 09:46:27 ID:v5PK2Oi/
3.2.0age

314 :NAME 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.

列追加はちょっといいかな?

315 :NAME IS NULL:2005/03/28(月) 10:21:23 ID:???
うん。かなり嬉しい。

316 :NAME IS NULL:2005/03/31(木) 21:11:39 ID:S6NJNymo
3.2.1 age

317 :NAME IS NULL:皇紀2665/04/01(金) 11:57:56 ID:WCU4nkIR
SQLiteはいつになったらストアドプロシージャに対応しますか?

318 :NAME IS NULL:皇紀2665/04/01(金) 12:18:15 ID:???
>>317
えーっと、sqliteでそれが出来る意味ってあるの?


319 :NAME 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.

コメントとコマンドってずいぶん違うな

320 :NAME IS NULL:皇紀2665/04/01(金) 15:27:20 ID:???
>>318
速度的な面というより他のDBとの互換性の問題で
必要性があるんだが。

321 :NAME IS NULL:皇紀2665/04/01(金) 15:37:38 ID:???
>>320
詳しく!

322 :NAME IS NULL:2005/04/02(土) 13:57:56 ID:???
DB”MS”ではないsqliteにはいらない機能だろ。
っていうかどうやってつかうん??
だいたい、ストアドなんてDBMS間でも互換性低いし。

323 :NAME IS NULL:2005/04/02(土) 15:53:45 ID:???
例えばDBが変更になる可能性がある場合に
SQLの標準ではない関数はストアドファンクションにして
抽象化してしまうとかってやらない?

324 :NAME IS NULL:2005/04/02(土) 18:48:27 ID:???
>>323
お前はやったことあるのか?

325 :NAME IS NULL:2005/04/02(土) 22:03:04 ID:???
create_function()があればそれでいい気が駿河

326 :NAME IS NULL:2005/04/03(日) 00:05:25 ID:???
>>325
何それ?

327 :NAME 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は知らん。
他の言語も知らん。

328 :NAME IS NULL:2005/04/03(日) 00:59:25 ID:???
>>325
激しく同意。
>>327
Cインターフェースに同名のがある。他言語のやつはこれのwrapperだな。

329 :NAME IS NULL:2005/04/06(水) 19:33:56 ID:nkLoBP4Q
PHP5+PDO_SQLite+SQLite3使っている人いるか?

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



330 :NAME IS NULL:2005/04/07(木) 09:04:06 ID:???
commit したか?

331 :NAME 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の「ほげほげ」が返ってこないんだ?


332 :NAME IS NULL:2005/04/08(金) 18:03:26 ID:???
そのSQLをUTF-8で保存して実行してみた。

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

多分、文字コードの問題かと思われる。

333 :NAME 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 のときだけ、違うのか。

334 :NAME IS NULL:2005/04/10(日) 22:21:48 ID:???
つかSQLITE_UTF8とSQLITE_ISO8859どっちでコンパイルしたんだ

335 :333:2005/04/11(月) 10:40:34 ID:???
これは、全部 Precompiled Binaries For Windows
の配布バージョンでの結果。どっちなんでしょー。

336 :NAME IS NULL:2005/04/11(月) 10:49:36 ID:???
自分でコンパイルした方がいいかもしれんな。

337 :NAME 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の時は無かったよなぁ。

338 :NAME IS NULL:2005/04/15(金) 12:13:49 ID:???
SQLiteってなんて読むの?

339 :NAME IS NULL:2005/04/15(金) 12:20:32 ID:???
しーけらいと

340 :NAME IS NULL:2005/04/15(金) 12:41:05 ID:???
すくりて

341 :NAME IS NULL:2005/04/15(金) 13:18:32 ID:???
俺はえすきゅーらいとって読んでるけど正しいのかどうかは知らん

342 :NAME IS NULL:2005/04/15(金) 13:40:07 ID:???
俺もえすきゅーらいと

343 :NAME IS NULL:2005/04/15(金) 15:33:54 ID:???
PostgreSQL はポスグレ
SQLite はエスキュレ
MySQL はマイスキュレ

344 :NAME IS NULL:2005/04/15(金) 19:53:21 ID:???
俺もえすきゅーらいとだけど正しいかどうか分からんよなぁ。

345 :NAME IS NULL:2005/04/17(日) 05:04:22 ID:Jx/K/CRQ
sqliteって速いらしいけど実際どうよ?
http://pcweb.mycom.co.jp/special/2004/php5/006.html
ここの速度比較だとMySQLの方がほとんどの項目で若干速いらしいが。
データ型を宣言しなくても良いっていうのもどういう事なのか良く分からん。
内部的に、型が決まってる方がソートの時に役立つと思うんだがなぁ。
インデックスの出来も気になる。
全文インデックスはあるの?

346 :NAME IS NULL:2005/04/17(日) 11:48:00 ID:???
型が決まってないってのは、そういう余分な判定処理を省いてるって事。
コンパクトな組み込みDBであるってのがSQLiteの売りなので、
本格的なRDBMS並の機能を使いたいなら、DBの選択が間違っているよ。


347 :NAME IS NULL:2005/04/17(日) 22:58:06 ID:???
>345
そこの「お詫びと訂正」読んだ?

348 :NAME IS NULL:2005/04/18(月) 10:00:20 ID:???
まあ、きっちりスレ読めばわかるように、(とりあえず、>>100 からあたりを読む)
SQLite でまとまった数のインサートするには、トランザクションを使わないと遅い。
使えばかなり速い、と覚えておかないと比較を間違うぞ、ということで。

349 :NAME IS NULL:2005/04/18(月) 10:11:46 ID:???
SQLiteQA >>273 が、SQLite3 対応などのアップデートしたね。

350 :NAME IS NULL:2005/04/18(月) 10:22:03 ID:???
Berkeley DBやNDBMが
SQLによる操作が可能になったもの、という解釈でいいの?

351 :NAME IS NULL:2005/04/18(月) 12:24:04 ID:???
BerkeleyはLDAP構築した時によく潰れたから、二度と使うまいと思った。
NDBMはシラネ。

352 :NAME IS NULL:2005/04/18(月) 15:12:50 ID:???
>>350
まあそんなとこ。

353 :NAME IS NULL:2005/04/19(火) 22:15:10 ID:kUry0XBZ
SQLite3をインストールしたらコマンドラインのコマンドが
sqliteではなくsqlite3になってしまったのですが、
従来のSQLiteとSQLite3って別物なの?


354 :NAME IS NULL:2005/04/20(水) 11:07:06 ID:???
>>353
SQLite と SQLite3 はデータベースファイルに互換性がないので、
ダンプしないといけないよ。あと、>>333 のような違いもあるか。
使い勝手はさほど変わんないけどね。

コマンドラインのコマンド(sqlite3, sqlite)もちょっとした
違いがあったように思うけど、詳細は忘れた。試しに使う程度
では、今までと同じように使えるはず。

355 :NAME IS NULL:2005/04/20(水) 16:10:28 ID:???
>>354
なるほどDBに互換性がないんですね。
ありがとうございました。

356 :NAME IS NULL:2005/04/21(木) 15:44:54 ID:L2hn0Pnq
mac os x tiger に標準で載るんだってね。

357 :NAME IS NULL:2005/04/21(木) 16:29:17 ID:???
Solaris10 にも標準で載ってる。
デーモンの稼働監視・操作ツールが 10 で一新されて、
そいつのステータスを保存しておくバックエンド。
おまけでインストールされるとかいう扱いではない。


358 :NAME IS NULL:2005/04/24(日) 12:17:33 ID:???
SQLiteって最近知ったんだけど昔からあった?

359 :NAME IS NULL:2005/04/24(日) 12:35:04 ID:???
ずっと前からあったけど昔にはなかった。

360 :NAME IS NULL:2005/04/24(日) 23:12:37 ID:???
ぶっちゃけSQLiteって素晴しすぎないか?

361 :NAME IS NULL:2005/04/25(月) 12:21:15 ID:???
ACCESSみたいなフロントエンドが出来たら流行りそうな気がする。
OpenOffice辺りでやってくれんかな。

362 :NAME IS NULL:2005/04/25(月) 15:51:59 ID:???
<チラシの裏>
Delphi6 personalでプログラミングの勉強はじめたんだけど、
libsqlというVCLとSQLiteを使ってデータベースを作り始めた。
SQLiteの3.2.1には、>>331の問題があるんで、UTF8の変換で扱うようにした。
いろいろと勉強となった。
自分で使うデータベースには、この組み合わせはお手軽で非常によい。
BDE等余計な気を遣わなくても動作するので、ローカルデータベースにオススメ。
今度はBLOBを扱えるようにしたい。
</チラシの裏>

363 :NAME IS NULL:2005/04/25(月) 23:49:09 ID:???
>>361
OOo に付いて言えば、ボランティア求むって感じみたい。
今メインに据えられている HSQLDB が技術以外の面で問題が多いんで、
↓こいつを完成させれば、可能性は大きいと思う。

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

あとは上の方に幾つか上がっていたと思う。
自分は組込みメインで使ってるから、フロントエンドは要らないかな。

364 :NAME IS NULL:2005/04/26(火) 11:45:25 ID:???
漏れも組込みメインで使ってるけど、
デバッグやテストでそういうツールがあったらなあということはよくある。

365 :NAME IS NULL:2005/04/28(木) 14:54:39 ID:/d52HoIm
もっとみんなもどんな風に使ってるのか具体例をどんどん挙げろや。

366 :NAME 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に使われていたとは…

367 :NAME IS NULL:2005/04/30(土) 22:46:29 ID:???
zaurus で使うと美しいカンジ

368 :NAME IS NULL:2005/05/05(木) 05:26:18 ID:???
>>365
俺は単なるユーザなんでアレだが

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

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

ユーザとしては鯖が必要ないのとDLLだけで済むのが利点

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

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

というわけでsqliteを使いたい(自称)プログラマなのだが、DBは扱ったこと無くて苦戦中。

370 :NAME IS NULL:2005/05/05(木) 21:18:38 ID:???
>>369
DLLつうことはWindows限定の話だとして、
MySQLサーバもDLLファイル1つだけ済むよ。

MySQLでやってたのをSQLiteに持ってきたいとは思わないけど、
今までファイルでやってきたのをSQLiteで楽できるのは実にいい。


371 :NAME IS NULL:2005/05/05(木) 21:27:13 ID:???
>MySQLサーバもDLLファイル1つだけ済むよ

!!!!!!
まだ俺も調査が足りないなあ。ありがとう

372 :NAME IS NULL:2005/05/05(木) 22:26:03 ID:???
うーむ、製品に使いたくて仕方ないのだが、bugがあった時自分で対応できないかも知れないのが怖い…。
ソースを完全に理解すればいいんだろうけど。

373 :NAME IS NULL:2005/05/05(木) 22:35:25 ID:???
大丈夫、全部あなたが自前で書くよりは bug 少ないはず。

374 :NAME IS NULL:2005/05/06(金) 11:55:37 ID:???
SQLiteで使えるMySQLAdmin的なものってありますか?

375 :NAME IS NULL:2005/05/06(金) 13:35:58 ID:???
>>374
sqliteManagerでどうよ?

376 :NAME IS NULL:2005/05/06(金) 16:43:27 ID:???
確かに保守は問題だな…。自分で書いたコードと違ってデバッグが面倒かも。

377 :NAME IS NULL:2005/05/06(金) 18:21:45 ID:???
SQLiteも、大手が採用し出してる所見ると、
目立つほど大きなバグは無いんじゃないかとは思う。
後は、実績だけかね。


378 :NAME IS NULL:2005/05/06(金) 19:28:06 ID:olCECiB8
>>370
firebirdもそーすよ

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

あと、たぶんどっちも複数のプログラムで同じDBに同時にアクセスできない。sqliteはできる。

379 :NAME IS NULL:2005/05/06(金) 19:45:41 ID:???
みんながどんどん使い始めればbugも枯れてくるでしょう。
技術力に自信がなければ先駆者にはならない方がいいと思いますが。

380 :NAME IS NULL:2005/05/08(日) 20:22:09 ID:??? ?
2.x系を使用中です
3.x系って2.xと比べて何が違うんでしょうかね

381 :NAME IS NULL:2005/05/08(日) 21:54:42 ID:???
>>380
UTF16が使えるとか、BLOBが使えるとか、Prepared Statementが
使えるとか、Collate functionが使えるとか、色々拡張されてる。

かなりバグも出尽くしてきたし、そろそろ移行を勧める。


382 :NAME 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

383 :382:2005/05/09(月) 11:33:41 ID:???
db.execute( "create table t (id integer)" )
訂正

384 :382:2005/05/09(月) 11:55:34 ID:???
すいません 作成できましたorz

385 :NAME IS NULL:2005/05/09(月) 11:55:56 ID:???
>>382
うちではそれでちゃんと作れてるけど?
何かエラーとか出てないの?ファイルやディレクトリのパーミッションは?

386 :NAME IS NULL:2005/05/09(月) 11:56:45 ID:???
orz

387 :NAME IS NULL:2005/05/09(月) 22:15:03 ID:???
イ`

388 :2?:2005/05/09(月) 23:52:42 ID:???
もしかして プログラム上からは、DROP TABLE出来ない仕様とか?

389 :NAME IS NULL:2005/05/10(火) 00:53:14 ID:???
いや、普通にできるだろ・・・

390 :NAME 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


391 :NAME IS NULL:2005/05/13(金) 01:48:50 ID:Gb3T45gj
こんな便利なアプリはPerlくらいLinuxの標準になれればいいのにね。

392 :NAME IS NULL:2005/05/13(金) 01:51:46 ID:???
>>391
SQLiteって、アプリの位置づけなのか・・・?
どちらかと言えばライブラリだと思うが・・・。

393 :NAME IS NULL:2005/05/13(金) 02:42:57 ID:???
Perl もアプリじゃないと思うが・・・。

394 :NAME IS NULL:2005/05/13(金) 10:15:38 ID:???
みんなアプリ

395 :NAME IS NULL:2005/05/13(金) 12:44:55 ID:???
「プログラム」とか「ソフトウェア」って言えばいいのに「アプリ」なんて言うから。

396 :NAME IS NULL:2005/05/13(金) 13:27:02 ID:???
細かいことを言うと、
アプリケーションとソフトウェアはほぼ同義。
プログラムはコードそのものを指すことが多い。

397 :NAME IS NULL:2005/05/13(金) 14:18:36 ID:???
まあ俺定義なんだがな。

398 :NAME IS NULL:2005/05/13(金) 15:21:48 ID:???
適用業務プログラム

399 :NAME IS NULL:2005/05/13(金) 21:04:47 ID:???
業務アプリケーションは、業務適用業務プログラム
IBM 出身のおっさんは絶対にアプリケーションって言葉を使わなかったな

ところで sqlite ってデータファイルのサイズはどうですか
頻繁に更新掛けると急激に肥大化したりとかは無いですか?

400 :NAME IS NULL:2005/05/13(金) 22:05:39 ID:zQWDZ7V/
アッチョンプリケ〜



                                                   ション



今から使うシステムでそんなにハードに使わないけど、
行レベルロックができないのはちょっとなー、
ってことでMySQLを選択したけど、インスト不要ってのはやはりお手軽だね。

401 :NAME IS NULL:2005/05/14(土) 03:07:40 ID:???
アプリの定義も知らんくせに生意気抜かすな雑魚ども。

402 :NAME IS NULL:2005/05/14(土) 17:23:41 ID:???
SQLiteって2ちゃんねるのシステム作るぐらいなら十分耐えられるかな?

403 :NAME IS NULL:2005/05/15(日) 23:15:06 ID:???
釣りか?

404 :NAME IS NULL:2005/05/16(月) 01:00:22 ID:M4q00F3S
SQLiteって整数型のフィールドで
INSERT時に自動的に値をインクリメントさせるプロパティって
指定できますかね?

405 :NAME IS NULL:2005/05/16(月) 01:14:30 ID:???
FAQ嫁。

406 :NAME IS NULL:2005/05/16(月) 15:46:12 ID:???
>>405
FAQ読みました。
"INTEGER PRIMARY KEY"とすればいいんですね。
でもSQLiteって"ALTER TABLE"ができないから
複数カラムを主キーにする場合どうすればいいんだろうか?
とか思いました。

407 :NAME IS NULL:2005/05/16(月) 21:49:49 ID:???
>>406
おまいはよくここを読んで
http://www.sqlite.org/lang_createtable.html
複数のカラムを主キーにする方法を学べ。
というか、ALTER TABLE使わないと複数カラムを
主キーに出来ないと思ってたのか?

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

まあ、現状ALTER TALBEじゃ主キーは追加できんがな。

408 :NAME IS NULL:2005/05/17(火) 01:56:31 ID:???
>>407
ウッセー馬鹿!

409 :NAME IS NULL:2005/05/17(火) 02:21:59 ID:???
馬鹿に馬鹿と罵倒されるとは可哀相な奴だな>>407

410 :406:2005/05/17(火) 05:44:38 ID:???
>>407
それはわかっております

411 :NAME IS NULL:2005/05/17(火) 07:07:15 ID:???
FAQもマニュアルも読む気しない。
お前らは俺の質問に答えてればいいんですよ。

412 :NAME IS NULL:2005/05/17(火) 09:26:51 ID:???
王子様到来の予感w

413 :NAME IS NULL:2005/05/17(火) 09:41:55 ID:???
判ってるなら質問するなと言いたい。

414 :NAME IS NULL:2005/05/17(火) 13:48:17 ID:???
多分別人だとは思うが。

王子様 ◆6XD48Lv1aI
こいつまだ生きてたんだな。

415 :NAME IS NULL:2005/05/22(日) 13:04:19 ID:cF+W78bF
SQLiteってまさに俺の理想のDBなんだよなぁ。
ありがとうSQLiteの作者の人!

416 :NAME IS NULL:2005/05/22(日) 21:07:31 ID:???
SQLiteがサポートしているSQLの一覧ってどこかにありませんか?

417 :NAME IS NULL:2005/05/22(日) 21:51:06 ID:???
普通にあるよ。

418 :NAME IS NULL:2005/05/22(日) 22:46:43 ID:???
公式サイトにあるよ

419 :ながも○みずか:2005/05/22(日) 23:32:20 ID:???
ここにあるよ

420 :NAME IS NULL:2005/05/23(月) 07:38:24 ID:???
それはどこにでもあり、どこにもない。

421 :NAME IS NULL:2005/05/23(月) 20:13:50 ID:???
SQLiteのSELECT文で
SELECT hoge, 0 AS zero
FROM t_hoge;
みたいにやったらエラーになるんだけど、
AS演算子って使えないのかね?

422 :NAME 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>

使えるよ?

423 :NAME IS NULL:2005/05/23(月) 23:45:24 ID:???
>>422
ごめんできてた。
しつれいしやしたー(><)

424 :NAME IS NULL:2005/06/28(火) 20:02:20 ID:kCWpMjUF
sqliteって mod_ruby に対応してる?

425 :NAME IS NULL:2005/06/28(火) 20:12:52 ID:???
追記
dbi->sqlite です。

426 :NAME IS NULL:2005/07/02(土) 17:01:07 ID:???
>>392
コンポーネントという表現にすればやたら使い回しが利いていいよ

427 :NAME IS NULL:2005/07/02(土) 23:23:33 ID:???
ttp://edit2000.net/
このサイトの管理人さんここ見てるかな?
リンク切れが目立つので挫折しかかってるなら
なんとか踏みとどまって欲しい。

普及のためにも和訳できる人はがんがって。


428 :NAME IS NULL:2005/07/08(金) 15:21:25 ID:BmV8B6lB
ログデータを突っ込もうと思うんだけど、sqliteってローテートっぽい事は出来ないですよね?
mysqlならmergeテーブルを使えば良いんだけど。

429 :NAME IS NULL:2005/07/08(金) 16:01:15 ID:???
>>428
viewでいいんぢゃね?

430 :NAME 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するとすごく重いです。
何か間違えていますか?

431 :NAME IS NULL:2005/07/08(金) 18:16:55 ID:???
インデックス張ってないというオチはないよね?

432 :429: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)

ただ、実際の話、全レコードを取り出すの?
そんなに大量のレコードを返されても困ると思うんだけど。

433 :429:2005/07/08(金) 18:56:49 ID:???
>>432
テスト環境のOS書き忘れた。WinXP Proね。

434 :428: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は作れないとなると、
どう運用したら良いか分かりません。

435 :NAME IS NULL:2005/07/09(土) 01:43:46 ID:???
>>434
いかに運用するかを考えて金稼いでるんだよね?
とりあえず2chで聞きかじった話をそのまま運用に持っていくなよ。
sqliteは万能じゃないんで、 ある程度の規模になれば
Oracleなんかも選択肢に入れといた方がいいと思う。

ログの頻度はわからないけど、10万件のログを管理する案件ならば、
sqliteで自作するよりOpenViewとかTivoliを買った方が安くすむかもね。

436 :428:2005/07/11(月) 09:40:44 ID:BGxhRhgA
>>435
いや、単に大学のサーバのログを取るソフトを夏休みに作ってみようかと。。。

でも、良いのが出来たら、シェアウェアとかにしたいので、MySQL(GPL)は嫌なんです。
Posgreは遅いし。

437 :NAME IS NULL:2005/07/11(月) 14:12:00 ID:lZIKbO9U
誰も買わねぇーYO!!


438 :NAME IS NULL:2005/07/11(月) 14:20:26 ID:???
シェアウェアでMySQLをGPLで使用できるの?

439 :NAME IS NULL:2005/07/11(月) 15:14:01 ID:???
>>438
ビジネスモデル的な問題の可能性があるだけで
別に排他じゃないから可能。GPLだとソフト自体の価値よりも
ソフトのサポートに価値を持ってこないと、再配布されるだけだからね。
シェアでライセンスしたものだけ、サポートするってのは
GPLで勝手に持ってけ、でもクレクレ質問厨避けはしたい。
そういうシチュエーションには結構使えるので良いよ。

440 :NAME IS NULL:2005/07/11(月) 16:01:29 ID:???
レスサンクス。スレ違いって怒られそうだけど(^^;
シェアウェア代金は、ソフトウェア代金ぢゃなくて、サポート代金と考えれば
問題ないわけだね。
この場合、「レジストしなければ機能に制限あり」や「レジストしなければ
10日しか使えない」ってのはOKなんかな。。。
どのみちGPLなんで、要求があればソース公開になってしまうから、
制限を掛けるのに意味はないってのは判るんだけど。
まぁライセンスうんぬんは抜きにして、アプリとDBを一緒に配布できる
SQLiteは便利だよね。
個人的には、PHP5のSQLiteモジュールをさっさとをバージョン3系に
して欲しい今日この頃。。。

441 :NAME IS NULL:2005/07/11(月) 16:10:09 ID:???
>>440
銭取るのなら、DBをユーザがある程度選べれるように、
複数サポートしてはどうか。

442 :NAME IS NULL:2005/07/11(月) 16:20:32 ID:???
libmysqlclient ってLGPLじゃなかったかな。
サーバーとは別プロセスのはずだから、GPLの縛りはうけないと思うけど。

443 :NAME IS NULL:2005/07/11(月) 17:05:10 ID:???
MySQL4以降、クライアントライブラリはLGPLからGPLに変更になったハズ

444 :NAME IS NULL:2005/07/11(月) 18:37:48 ID:???
>>440
PHP 5.1 のPDO_SQLiteは3系列(CVSでは最新版の3.2.2)だよ。
デフォルト有効でコンパイルされる。
SQLiteは2.8.xのままで、これもデフォルトで有効。

445 :NAME IS NULL:2005/07/11(月) 23:32:52 ID:???
sqliteをCGIに使うのはさすがに無謀かな?


446 :NAME IS NULL:2005/07/11(月) 23:40:30 ID:???
別に。

447 :NAME IS NULL:2005/07/11(月) 23:43:39 ID:???
C++でバリバリCGI書いてます。
SQLite便利です。
みんなもっと低級言語でCGI書こうぜw

448 :NAME IS NULL:2005/07/12(火) 00:31:34 ID:???
RなDBである必要性を感じさせるCGIってのもなかなか思いつかん
Flashでゲームのセーブとかに使ったりするのには便利か

449 :NAME IS NULL:2005/07/12(火) 00:32:03 ID:???
C++って低級言語ぢゃないと思うが。
アセンブラでCGI、ハァハァ。

450 :NAME IS NULL:2005/07/12(火) 00:41:04 ID:???
C++で低級言語と言われる時代になったんだなー。

451 :NAME IS NULL:2005/07/12(火) 00:46:24 ID:???
Cやasmをたぶらかす罪な言語だしな
.hはC++でも現役さ

452 :NAME IS NULL:2005/07/12(火) 01:26:29 ID:???
CGIなんて書いてないで全部Apacheモジュールにしてしまうのがおすすめっすよ。

>>448
今ならブログツールあたりかな。
RなDBである必要性というより単に便利だから使われてるんじゃないかと。

453 :440:2005/07/12(火) 09:07:13 ID:???
>>444
ありがとうございます。
今後、PDO_SQLiteは、バージョン3、SQLite_xxxは、バージョン2と
住み分けるつもりなんでしょうかねぇ。
PDO_SQLiteって、後々仕様がころころと変わりそうでちょっと不安。
しばらく様子見しておきますです。

454 :NAME IS NULL:2005/07/12(火) 22:52:23 ID:???
HSP向けSQLiteDLLを開発しようとした。
そしたらHSP向けDLLで挫折した。
SQLiteDLL自体は糞簡単だった。

・・・HSPってどこが簡単なんだ

455 :NAME IS NULL:2005/07/13(水) 10:16:19 ID:???
sqliteって排他制御勝手にやってくれる?

456 :NAME IS NULL:2005/07/13(水) 12:45:24 ID:???
>>455
勝手に、という意味が判らないけどトランザクションを開始すれば
ロックしてくれる。
ロックの種類はデータベース単位(レコードでもなくテーブルでもなく)の
排他ロックしかないけど。
SQLiteの適用範囲を考えると十分だと思う。

457 :NAME IS NULL:2005/07/13(水) 20:20:47 ID:???
テーブルロックが行ロック(あるいはページロック)より優れている点はあります?

458 :NAME IS NULL:2005/07/13(水) 20:57:10 ID:???
>>457
DBを使用する側からすると利点はない。
ロックの範囲が広いほど同時実効性能は低下するから。
同時に多数のレコードをレコードロックする場合はテーブルロックや
ページロックの方が処理が軽い場合があるかもしれないけど。
んで、データベース単位でのロック「しか」できないSQLiteのスレで
何でそんなことを聞くんだい?

459 :NAME IS NULL:2005/07/13(水) 21:00:59 ID:???
>>458
ごまん。なんかロックネタがあたからつい。

460 :NAME IS NULL:2005/07/14(木) 10:11:02 ID:???
>>456
サンクス
readするだけでも他からreadできなくなるのね

461 :NAME IS NULL:2005/07/14(木) 13:17:40 ID:???
>>456
んなこたあない。

462 :461:2005/07/14(木) 13:18:17 ID:???
ごめん。 >>456 へのレスじゃなくて >>460 ね。

463 :NAME IS NULL:2005/07/15(金) 17:18:52 ID:???
>>461
つまりreadするとき他でもreadできて
writeするときは他はreadできなくなる普通のロックですね

464 :NAME IS NULL:2005/07/15(金) 18:29:57 ID:???
>>463
なんのこっちゃ。試せばすぐ判るだろうに。。。

1. プロセスAがトランザクション開始。この時点でテーブル全体が排他ロック。
2. プロセスBが SELECT。ロックされているので待たされる。
3. プロセスAがトランザクション終了
4, プロセスBの SELECT成功

465 :464:2005/07/15(金) 18:32:05 ID:???
まちがえた。
1. プロセスAがトランザクション開始。この時点でテーブル全体が排他ロック。
 ↓
1. プロセスAがトランザクション開始。この時点でデータベース全体が排他ロック。

466 :461:2005/07/15(金) 20:44:50 ID:???
>>464
ホントに試したの?

467 :NAME IS NULL:2005/07/15(金) 21:14:00 ID:???
>>466 間違ってるところがあればフォローしてやればいいぢゃん
ただの煽りだったらチラシの裏にでも書いとけ
>>464の動作はタイムアウトが設定されている時の動作と思われ
タイムアウトが設定されていなければ2は即エラーになる
sqliteのコマンドラインユーティリティ、API、各言語のラッパー
ライブラリでタイムアウトは設定できる

468 :NAME IS NULL:2005/07/15(金) 22:24:22 ID:???
SELECT中SELECTできればいいよ

469 :NAME IS NULL:2005/07/16(土) 05:15:26 ID:???
副問い合わせのことかい?

470 :NAME IS NULL:2005/07/16(土) 11:04:05 ID:???
流れから言って違うだろう

471 :NAME IS NULL:2005/07/17(日) 13:29:38 ID:???
今、PHP4 + SQLiteで掲示板とかアクセスカウンター作ってるけど
PHP5がもうちょっと普及してくれればデフォルトでSQLiteライブラリが
付いてくるので配布が容易になるのにね。

472 :461:2005/07/19(火) 11:41:32 ID:???
>>467
手元で試したけど、こうなるよ。

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

>>464 のは SQLite 2 の話ではない?

473 :NAME IS NULL:2005/07/20(水) 12:24:12 ID:???
SQLiteでPostgreSQLのnow()に該当するものってありますか?
nowって文字列が入っちゃうんですが。。。

474 :NAME IS NULL:2005/07/20(水) 12:39:46 ID:???
now()は知らんが、sqlite3だとCURRENT_TIMESTAMPが実装されてなかったっけ。

475 :NAME IS NULL:2005/07/20(水) 14:32:58 ID:???
CURRENT_TIMESTAMPのほかにCURRENT_DATE,CURRENT_TIMEもあるね。
http://www.sqlite.org/lang_keywords.html より。

476 :NAME IS NULL:2005/07/20(水) 14:48:24 ID:???
>>474-475
ありがとん。
PEAR::DBを使ってるんだけど、この当たりを自動で吸収はしてくれないんでしょうかね。

477 :NAME 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


478 :NAME IS NULL:2005/07/20(水) 16:01:18 ID:???
ついでにちょっと上の方で話題になっているロック関連ネタ。

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

読んでおくと幸せになれるかも。


479 :NAME IS NULL:2005/07/20(水) 16:51:31 ID:???
>>478
日本語訳はありませんか?

480 :NAME IS NULL:2005/07/20(水) 19:10:47 ID:???
>>479
たぶん、誰も訳してない or 公開してない。さほど難しい文章でもないので、ちょっと
自分でやってみることをお薦め。


481 :NAME IS NULL:2005/07/20(水) 22:24:34 ID:???
SQLiteのプリペードステートメントって実際にコンパイルされてるの?
ストアドプロシージャ不要ですか?

482 :NAME IS NULL:2005/07/21(木) 01:31:35 ID:???
prepaid statement
何かが違う

483 :NAME IS NULL:2005/07/21(木) 06:34:07 ID:???
PostgreSQLもCURRENT_XXXあるだろ

484 :NAME IS NULL:2005/07/21(木) 16:32:01 ID:???
>>482
多分通貨が違うんだろう

485 :NAME IS NULL:2005/07/23(土) 12:53:57 ID:???
SQLiteCCで見るとNULL値の表示がおかしい(化けてる)んだが、どうなってるんだ?

486 :NAME IS NULL:2005/07/27(水) 19:24:48 ID:???
SQLiteのDBファイル作るときの拡張子って何をつけてます?
.db?.sqlite?

487 :NAME IS NULL:2005/07/27(水) 21:39:02 ID:???
漏れは .db にしてたけど、特に根拠はなし。

488 :NAME IS NULL:2005/07/27(水) 22:42:56 ID:???
俺も.dbだな。なんとなく。

489 :NAME IS NULL:2005/07/27(水) 22:46:35 ID:???
漏れは根拠なしに.datなんだが。。。少数派?

490 :NAME IS NULL:2005/07/27(水) 23:01:01 ID:???
たまに嫌がらせを兼ねて.mdbにする

491 :NAME IS NULL:2005/07/28(木) 08:19:18 ID:???
俺は.dbfだな。

492 :NAME IS NULL:2005/07/28(木) 15:13:11 ID:???
何とはなしに.sdb

493 :NAME IS NULL:2005/07/28(木) 15:26:29 ID:???
普段は.dbで、SQLiteであることを示したいときは.sqlt

494 :NAME IS NULL:2005/07/28(木) 15:44:59 ID:???
何もつけてないよヽ(`Д´)ノ ウワアアン!

495 :NAME IS NULL:2005/07/28(木) 16:09:02 ID:???
俺も.dbだな。特に理由はない。

496 :NAME IS NULL:2005/07/29(金) 02:15:37 ID:???
sqlitespyはデフォルトで.db3を認識するみたい

497 :NAME IS NULL:2005/07/29(金) 02:58:45 ID:???
なつかしーな >dBASE III
ボーランドに乗っ取られる前って何て社名でしたっけ?

498 :NAME IS NULL:2005/07/29(金) 03:21:46 ID:???
>>497
あしゅとん帝都

499 :497:2005/07/29(金) 03:54:41 ID:???
そういえば俺、SilverFox派だった

>>498 Thx!!

500 :497:2005/07/29(金) 04:09:19 ID:???
間違った。

× SilverFox
○ Quick Silver

501 :NAME IS NULL:2005/08/02(火) 00:00:43 ID:???
>>492
.sdbはまずいんじゃなかったけ。

502 :NAME IS NULL:2005/08/02(火) 00:41:39 ID:???
まずいって何が?
拡張子なんて人間のためだけにあるんだぞ。

503 :NAME IS NULL:2005/08/02(火) 01:51:39 ID:???
でも、さすがに .exe とかにはしたくないよね。w
何か他のアプリで使われてるってんじゃないの?
(見たことないけど)

504 :NAME 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 を選択できるようにした.

505 :NAME IS NULL:2005/08/02(火) 22:59:20 ID:???
.exeより.comのほうがまずいぞ。

506 :NAME IS NULL:2005/08/02(火) 23:00:53 ID:???
ここまでの意見を総合すると.dllでFA?

507 :NAME IS NULL:2005/08/02(火) 23:02:12 ID:???
sqIite3.exeにすればいいさ

508 :NAME IS NULL:2005/08/02(火) 23:13:44 ID:???
>>507
多分そういう問題じゃない。

509 :NAME IS NULL:2005/08/02(火) 23:15:49 ID:???
じゃあ .lite とかどうよ。なんかオサレじゃない?

510 :NAME IS NULL:2005/08/02(火) 23:29:08 ID:???
英数字にこだわる必要は無い。

511 :NAME IS NULL:2005/08/02(火) 23:32:45 ID:???
.@_@

512 :NAME IS NULL:2005/08/02(火) 23:41:08 ID:???
>>511
そんな拡張子に関連付けしたくないなw

513 :NAME IS NULL:2005/08/03(水) 00:02:14 ID:???
.:-p

514 :NAME IS NULL:2005/08/03(水) 00:13:56 ID:???
>>513
Windowsじゃ":"は使えないよ…

515 :NAME IS NULL:2005/08/03(水) 00:35:35 ID:???
.^_^;


516 :NAME IS NULL:2005/08/03(水) 00:42:15 ID:???
.-____-


517 :NAME IS NULL:2005/08/03(水) 00:50:53 ID:???
.○| ̄|_ (SQLite2)

.○| ̄|_=3 (SQLite3)

518 :NAME IS NULL:2005/08/03(水) 00:51:10 ID:???
.orz

519 :NAME 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

520 :NAME IS NULL:2005/08/03(水) 01:21:55 ID:???
何かスレが伸びてるから、新しい展開があったのかと思ってきたら

521 :NAME IS NULL:2005/08/03(水) 03:56:41 ID:???
>>519
よくわかんないから訳して。

522 :NAME IS NULL:2005/08/03(水) 10:17:04 ID:???
>>521
意訳: WinXPだとsdbはAPPFIXに関連づけされてるからやめとけ。

523 :NAME IS NULL:2005/08/03(水) 10:24:50 ID:???
拡張子とか関連付けとか、おまいらまさかWindowsで使ってるんでつか

524 :NAME IS NULL:2005/08/03(水) 10:50:43 ID:???
>>523
Windows「でも」使ってるよ。これからはクロスプラットフォームですよ。w

525 :NAME IS NULL:2005/08/03(水) 11:02:26 ID:???
Winで開発して、Linuxで運用ってパターンが結構多いんじゃないかな。

526 :NAME IS NULL:2005/08/03(水) 15:38:50 ID:???
おれは.cgiにしてる。
ダウンロードされないようにw

527 :NAME IS NULL:2005/08/03(水) 21:00:52 ID:???
>>524
wxWidgetsとかSDLとか使ってんの?
最近はクロスさせるときはJavaばっかだな

>>526
wつけるまでも無く昔からある小技だよ。

528 :NAME IS NULL:2005/08/04(木) 00:19:59 ID:???
>>527
クライアントアプリで使ってるの?

529 :NAME IS NULL:2005/08/04(木) 22:47:12 ID:???
>>528
HypersonicSQLならクライアントで使ってるよ
JDBCが強力でぬるま湯状態な気がしないでもない

SQLiteはCGIと一緒に使ってみたいな
mod_pythonと連携出来たら鬼な気がする

530 :NAME IS NULL:2005/08/09(火) 00:58:40 ID:D+KA1pWN
PerlでDBD::SQLite使おうと思ってるけど、バイナリって格納できる?

531 :NAME IS NULL:2005/08/14(日) 16:58:53 ID:???
mutexでわざわざ排他制御かけて同時にアクセスしないようにしてやっても。
タイミングによってsqliteが完全停止するんだが。
ちなみにVCね。
使えないなこれ。


532 :NAME IS NULL:2005/08/14(日) 17:57:54 ID:???
MSDEつかえよ。

533 :NAME IS NULL:2005/08/16(火) 03:42:12 ID:???
>>531
お前のコードがバグってるだけだろ。

アホがコードも晒さずにイキがってんじゃねーよ、カスが


534 :NAME IS NULL:2005/08/16(火) 22:05:02 ID:???
transactionかければ勝手に排他されるんじゃないの?

535 :NAME IS NULL:2005/08/19(金) 02:45:55 ID:???
格納する値の型に関する制限がちょっと緩めなところが使いやすいけれど、Alter Table系が弱めだね。
utf-8以外のencodingに対応した関数群の実装も提供されて欲しいなぁ。。

536 :NAME IS NULL:2005/08/19(金) 02:48:05 ID:???
>>530
> PerlでDBD::SQLite使おうと思ってるけど、バイナリって格納できる?
DBD::SQLiteはよく知らないけど、ver3だとBLOB型として格納出来るよ。
ver2の場合はBASE64とかでencodeして放り込むんだろうか?
使った事無いから良くわからない。。

537 :NAME IS NULL:2005/08/19(金) 02:52:50 ID:???
>>532
MSDEはとても良いと思うんだけれど、インスコ作業が必要だよ。。
その点SQLiteならstatic linkにも出来るので場合によっては良いよ。

538 :NAME IS NULL:2005/08/19(金) 21:46:29 ID:???
>>533
バグではないけど、タイミングを再現できないのでよくわからない。
どうも複数のアプリから同時にアクセスするとおかしくなるみたい。
もちろんデータベースはまったく別のもの。

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

>>534
mutexによる排他に加えてtransactionももちろんやってみた。
結果は同じ。

539 :538:2005/08/19(金) 21:47:42 ID:???
ちなみにDLLは3系のものを公式からとってきてやってみた。
1,2両方同じだった。

540 :538:2005/08/19(金) 21:54:54 ID:???
あと気になったのがtryで囲ってやらないとエラーが出たときにアクセス違反でアプリが完全に落ちるね
これは仕様かな?仕様じゃないならそれが原因に関係してるかもね。

541 :NAME IS NULL:2005/08/19(金) 22:23:03 ID:???
>531
検証したいなぁ
コードうpきぼん

542 :NAME IS NULL:2005/08/19(金) 22:35:24 ID:???
再現コードも出さずきちんと問題の検証もできてない段階で、
「使えない」とか「おかしい」とか断定するというのは一体どういう了見なのか。

543 :NAME IS NULL:2005/08/19(金) 22:44:36 ID:???
>>537
じゃあ、MySQL

544 :NAME IS NULL:2005/08/19(金) 23:14:03 ID:???
MSDE……開発「自体」に使えない(試験結果ぶち込むとかBTSのデータぶち込むとか)
MySQL……内部で使うだけならいいんだけど。GPL汚染を避けるために金がかかるとなると
金出してくれる人を説得するのがしんどくて_| ̄|○

545 :NAME IS NULL:2005/08/20(土) 00:36:05 ID:???
「多分」とか「だろう」とか、ソースあるんだから調べろよ。
知ったかする奴に限って、検証能力皆無だから困る。

546 :NAME IS NULL:2005/08/20(土) 02:10:48 ID:???
>>538
>>531
なんだろ?デッドロックとかになっちゃったのかな。
あんまりよくわからないけれど、sqlite3_busy_timeoutとか設定すれば良いのかな?

547 :NAME IS NULL:2005/08/20(土) 02:13:06 ID:???
>>540
もし原因がClient CodeじゃなくてSQLite内だったら、
http://www.sqlite.org/cvstrac/tktnew にてチケット発酵汁。

548 :NAME IS NULL:2005/08/20(土) 02:24:52 ID:???
>>544
MSDEが開発自体に使えないって何でだろ?まぁ開発には1万切るSQLServer2000の
developer版を普通は使いそうな気もするけど。

SQLiteは組み込み用の小型DBだから、排他トランザクションが激しく発生するようなのは、
ちゃんとしたRDBMS使った方が良いんだろうね。

549 :NAME IS NULL:2005/08/20(土) 15:39:32 ID:???
>>538
DLLじゃなくてSQLiteをスタティックリンクしろ。
DLLだと、DLLをビルドした時に指定したランタイムによっては
アプリ本体とコンフリクトするぞ。


550 :NAME IS NULL:2005/08/20(土) 18:50:03 ID:???
コンクリートって何?ぐぐってくるけど教えて。


551 :NAME IS NULL:2005/08/20(土) 21:22:03 ID:???
>>541
すでにその部分だけでも数千行規模になってるのでウプは無理だし、重要な内容なのでセキュ意味でも無理

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

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

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






552 :NAME IS NULL:2005/08/20(土) 21:23:47 ID:???
ちなみにベースクラスがwxWidgetsなんでそれが影響してる可能性もあるけど。

553 :NAME IS NULL:2005/08/20(土) 21:35:55 ID:???
>>552
・ExecではなくPrepareとStepを使え
・スタティックリンクでのアクセス違反ってのは、お前のスキル不足が原因


554 :NAME IS NULL:2005/08/20(土) 22:53:28 ID:???
>>548
馬鹿だからだろ

555 :NAME IS NULL:2005/08/20(土) 23:37:12 ID:???
もし >>551 = >>552 だとしたら「再現コードをわざわざ書くまでもない」という発想が異常。

556 :NAME IS NULL:2005/08/20(土) 23:50:15 ID:???
スタティックリンクでアクセス違反になるものを、
DLLにして動く事に疑問を持たないってのが恐ろしいな。

557 :NAME IS NULL:2005/08/21(日) 00:41:56 ID:???
>>555
なんで?
ほとんどのテストや呼ばれてるAPIの把握は既にあるソースで全部わかる。
wxWidgetsだからどうだってことがあったとしても再現コードの有無には関係ないでしょ。
そっちの可能性がでてきたら再現コードじゃなくネイティブコードとして別に書くし。
可能性の低いものを調べてるほど暇でもない。おそらく関係ないと思う。
wxWidetsはソースから読んでるからね。

>>556
持たないさVC用LIBとDLLがセットで用意されてるんだから。
つっこみどころが的外れ。
ソースはあんまり見てないからわからないけど、TCL使ってたからそこら辺の影響かと思ってね。
VC6で用意されたものを拾ったのだからそれでいいさ。

558 :NAME IS NULL:2005/08/21(日) 00:49:41 ID:???
仮にSQLiteのバグだとして、そんな意味不明の報告されても開発者は困るだろ。
趣味か業務か知らんが、オマイもPG開発やっているのならそれぐらい判らないか?
また、みんながSQLiteのバグなのか、オマイさんの書いたアプリの問題なのか
切り分けようという姿勢を持っているんだから(興味本位かもしれないが)、
ぐだぐだ言う前に再現コード示したらどうだ?

559 :NAME IS NULL:2005/08/21(日) 00:52:52 ID:???
>>558
趣味だよ。
だから時間があったら再現でもなんでもしてやるさ。書き込んで即効提示できるほどの暇はないさ。
別にバグ報告するために書き込んでるわけじゃないさ。
どうも正常に動いてないし、同じ症状の人がいないかなとか思ったりしただけさ。
再現コードがどうしてもほしいならぐだぐだいってないで気長にまってなさい。


560 :NAME IS NULL:2005/08/21(日) 01:02:45 ID:???
なんか支離滅裂な奴だな。まともに取り合って損した。

561 :NAME IS NULL:2005/08/21(日) 01:51:03 ID:???
スレが伸びてると思ったら夏厨が来てたのか

562 :NAME IS NULL:2005/08/21(日) 01:53:02 ID:???
Sqlite2.xには排他ロックなんてなかったと思ったけど3.xにはあるのか?

563 :NAME IS NULL:2005/08/21(日) 01:58:24 ID:???
>>562
http://www.sqlite.org/lockingv3.html


564 :NAME IS NULL:2005/08/21(日) 02:04:53 ID:???
>>562
UNIXならfcntl、WindowsならLockFileEx

565 :NAME IS NULL:2005/08/21(日) 03:55:10 ID:???
>>562
マルチスレッドに対応してるけど、気をつけて使いなさい。
unix,linuxはデフォルトでシングルスレッド構成になっています。
って公式に書いてある。

566 :NAME IS NULL:2005/08/21(日) 11:28:13 ID:???
既にあるソースで全部分かるとか言ってる割に、
スタティックリックのアクセス違反すら解決出来ない辺り、
とりあえず相当レベルが低いという事だけは分かった。

567 :NAME IS NULL:2005/08/21(日) 11:28:53 ID:???
リックってなんだ。リンクな。

568 :NAME IS NULL:2005/08/21(日) 13:51:12 ID:???
>>567
相当レベルが低いなw

569 :NAME IS NULL:2005/08/21(日) 15:35:07 ID:???
そもそも、複数アプリから同時アクセスとかの用途だと
組み込み型DBより、素直に普通のRDBMSを選んだ方がいいんじゃないかと。

>>557
> 持たないさVC用LIBとDLLがセットで用意されてるんだから。
> つっこみどころが的外れ。
これを見て、ああこいつダメだと思った。

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




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

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

お前が自己向上意欲のないカスだって事はよくわかったから、
とりあえず「>>531は私のアプリがバグってるだけでした」
って認めて非難を撤回しろ。


572 :NAME IS NULL:2005/08/21(日) 19:30:17 ID:???
意味がわからん、いじでもアプリのせいにして自分で検証して有無をいわさぬ証拠を提示しようとはしないらしい。
しないっていうか出来ないのかw
そこまでいうならやってみせろよ。
簡単だろ?テストコード書くだけなんだから。それもできないくせに他人の技術にけちつけてるわけじゃないよね?
他人をけなすくらいだから10分もあればできるよね?ね?
アプリのバグと撤回するのはそれやってもらわないとねw
プロなら当たり前だよね?こんなこと。証拠もないのに否定してるなんて(プ


573 :NAME IS NULL:2005/08/21(日) 19:57:17 ID:???
夏厨に縁の無さそうなDB板に夏厨が降臨するとは。
せっかくだからコテハンでも付けてくれよ。

574 :NAME IS NULL:2005/08/21(日) 21:30:36 ID:???
自称天才プログラマのあほたちはほっといて作業に戻りますわ。

575 :NAME IS NULL:2005/08/21(日) 21:55:53 ID:???
あ、そうそうソースいじるにしても、DB変えるにしてもここには報告しないから
まあ、ぜいぜいあると思ってる頭つかって自分で問題拾ってくださいな。

576 :NAME IS NULL:2005/08/21(日) 22:31:40 ID:???
(´-`).。oO(この厨はそもそもここに何しに来たのだろう?)

577 :NAME IS NULL:2005/08/21(日) 23:09:56 ID:???
この阿呆はどのDB使っても一緒だと思った。

578 :NAME IS NULL:2005/08/21(日) 23:34:38 ID:???
原因を特定せずにmutex使って多重ロックで回避しようというのが、典型的ダメ発想…

579 :NAME IS NULL:2005/08/22(月) 00:03:19 ID:???
みんなスネちゃん弄り杉。

580 :NAME IS NULL:2005/08/22(月) 16:10:26 ID:???
↓というわけで、次の話題どうぞー。

581 :NAME IS NULL:2005/08/22(月) 22:32:54 ID:???
3.2.3 age

582 :NAME IS NULL:2005/08/23(火) 16:57:21 ID:???
>>569
VC用libって付いてないよな。
わざわざ lib /DEF:sqlite3.def ってやって作った記憶がある。

583 :NAME IS NULL:2005/08/23(火) 17:01:59 ID:???
ver3初期はVC用ライブラリ構築用のプロジェクト作ってたが、
だんだん面倒になってきた。
unix系ツール使ってる部分の解決が面倒くさい。

584 :NAME IS NULL:2005/08/23(火) 21:34:31 ID:???
>>583
え?拡張子がzipのソースは処理済なので問題無いと思うけど。
普通にVSでプロジェクト作ってすぐにlib作れたし。
http://www.sqlite.org/download.html の、Source Codeの上から4つ目。

585 :NAME 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するように
直したら使えるようになったけど、激しく無駄。


586 :NAME 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の実装見るとそんな事しかやってないので)

587 :NAME 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の改善案を提案するかな。


588 :NAME 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で
渡さないと駄目だね。

589 :NAME IS NULL:2005/08/25(木) 00:28:21 ID:???
3.2.4 age

590 :562:2005/08/25(木) 04:55:19 ID:???
あー、レスくれた人ありがとう
3.xって結構2.xと違うんだな
ずっと2.xでやってて特に問題も無いのであまり勉強してなかったよ

591 :NAME IS NULL:2005/08/27(土) 21:18:31 ID:???
SQLiteのDLL版って何でヘッダファイル置かないんだろうか。
仮宣言をいちいちしなくちゃいけなくてめどい。

592 :NAME IS NULL:2005/08/27(土) 22:10:31 ID:???
src落としてsqlite3.h使うといいとおもうよ

593 :NAME IS NULL:2005/08/28(日) 00:29:31 ID:???
>>591
DLL版なんて飾りなのです。
偉い人にはそれが分からんのですよ


594 :NAME IS NULL:2005/08/28(日) 13:37:00 ID:???
3.2.5 age

595 :NAME IS NULL:2005/08/28(日) 23:24:53 ID:???
結構ハイペースにリリースされてるんだなぁ

596 :NAME IS NULL:2005/08/31(水) 16:40:42 ID:QcMvjbbs
SELECT COUNT(DISTINCT hoge) FROM table;
ってやると、syntax error になるんだけど(3.2.2)
これって仕様? それともオレだけ?
なんかいい方法あったら教えて下さい。


597 :NAME IS NULL:2005/08/31(水) 16:49:01 ID:???
>>596
select count(*) from (select distinct hoge from table);
かな。

598 :NAME IS NULL:2005/08/31(水) 17:11:38 ID:???
超サンクス.


599 :NAME IS NULL:2005/09/03(土) 12:55:07 ID:???
カッコ内にいれた瞬間にそれは福問い合わせに修飾してるんだから
そういう仕様は不便でも正しい面があるね

600 :NAME IS NULL:2005/09/03(土) 12:58:39 ID:???
吹く問い合わせ

601 :NAME IS NULL:2005/09/03(土) 14:52:29 ID:???
福問い合わせって縁起がよさそうだね

602 :NAME IS NULL:2005/09/03(土) 15:53:33 ID:???
福問い合わせでNULLがかえってきたら悲しい。

603 :NAME IS NULL:2005/09/04(日) 12:46:16 ID:???
服縫い合わせ

604 :NAME IS NULL:2005/09/04(日) 12:59:04 ID:???
厨房が沸いてる

605 :NAME IS NULL:2005/09/04(日) 16:03:24 ID:???
河豚食い合わせ

606 :NAME 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


607 :NAME IS NULL:2005/09/04(日) 22:23:47 ID:???
>>606
いや、そのエラーのとおり、正規表現の括弧の対応が取れてないんじゃない?
そのあたりのコードを読み直してみたら?

608 :NAME IS NULL:2005/09/10(土) 00:55:13 ID:???
カリカリチューニングの仕方を教えてください。

609 :名無しさん@そうだ選挙に行こう:2005/09/11(日) 01:31:57 ID:???
ガリガリ君なら上げます

610 :NAME IS NULL:2005/09/14(水) 02:12:55 ID:??? ?
先週本屋でSQLite入門っていう本を見つけた

611 :NAME IS NULL:2005/09/14(水) 02:16:08 ID:???
>>610
これだな http://www.amazon.co.jp/exec/obidos/ASIN/4798109436

612 :NAME IS NULL:2005/09/14(水) 09:35:36 ID:Zl9QgQIJ
レビューキボn


613 :NAME IS NULL:2005/09/14(水) 21:19:36 ID:???
それさきおとといぐらいに買ってきたよ。
PHPだとblogのサンプルが乗ってた。あといろんな言語から使う方法も書いてあった。
とりあえず私はPHPだけで使いたかったので半分ぐらいしか読むとこ無かったです。
あとでほかの言語で使おうとか思ってる人にはお勧めかもしれません。

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

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

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

こんな感じでした。

614 :NAME IS NULL:2005/09/14(水) 22:17:51 ID:???
SQLiteも入門書が出るまでになったか。
PHP5がもっと普及すればSQLiteも普及するんだがな。
肝心のPHP5が・・・

615 :NAME IS NULL:2005/09/14(水) 23:02:26 ID:???
blog程度の入門書って丸で役に立たないな

>>613
PHPは良くわからんが、早い話がwriteLineを必要行数分繰り返してるだけだと思うよ

616 :NAME IS NULL:2005/09/14(水) 23:31:45 ID:???
>>613
PHPのプログラムの書き方の中では余りスタンダードな書き方ではないな。
PHP(ロジック)よりもHTML(見栄え)に重点をおいた書き方だから。

PHP+SQLite本としては「PHP5徹底攻略」を薦める。
ただこの本はPHP"5"本としては個人的には物足りない内容。

617 :NAME 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

618 :NAME IS NULL:2005/09/15(木) 13:51:27 ID:???
>>613
目次見た感じだと、「いろんな言語」の中に、肝心の C/C++ が無い気がするのだが、
激しく片手落ちじゃね?

619 :NAME IS NULL:2005/09/15(木) 16:30:44 ID:???
げげ、C/C++はないですね。でもなでしこはあります。

620 :NAME IS NULL:2005/09/15(木) 18:56:07 ID:???
>>617
XREAには、一部PHP5の導入された鯖がある。
全部じゃないから注意しる。
あとはVPS鯖借りて自分でインストールするとか。

621 :NAME IS NULL:2005/09/17(土) 01:20:08 ID:???
>>618
フリーなデータベースエンジンの入門書って、どれもこれも似たような傾向があって、
載っているのはPHPかPerlで掲示板かBlogを作るだけのサンプルだったりするから、
C/C++の話なんて、まず絶対に出てこない。なぜなら、そこらへんの普通の
CGIの使えるサーバーって、Cコンパイラ使わせてくれないもん。

SQLiteは、アプリケーションに組み込めるというのが面白いところだと思うけど、
残念ながら、入門書にそこまで期待はできんでしょう。

622 :NAME IS NULL:2005/09/17(土) 10:46:34 ID:???
>>611の本ってSQLの基本とかも眞鍋ますか?

623 :NAME IS NULL:2005/09/17(土) 14:13:02 ID:???
>>622
とりあえず、お前が眞鍋かをり好きだということは学べた。

624 :NAME IS NULL:2005/09/17(土) 15:26:30 ID:???
>>622
SQL基本を勉強したいなら、特定のソフト、とくにフリーのデータベースの入門書は
避けたほうがいいよ。

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

本屋さんで、普通に「SQL入門」「SQLハンドブック」「SQL解説」みたいに、そっけない
題名になっている本を立ち読みして、説明の文体が自分にあいそうなもの(これ重要)を
買うか、自分の住んでいる市の図書館のホームページで「SQL」という言葉を含んでいる
題名の本を検索して適当に数冊借りてみるほうがいいと思う。

625 :NAME IS NULL:2005/09/17(土) 16:31:36 ID:???
>>624
サンクス、やっぱSQLの入門本から始めたほうがいいかぁ

626 :NAME 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

627 :NAME 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


628 :NAME IS NULL:2005/09/17(土) 20:56:48 ID:???
>>626
テーブルはあらかじめ作ってあるんだよな?
とりあえず、同じプログラムをローカルのPHP環境で実行してみれ。
それでうまく行くなら、Yahooの問題。

629 :NAME IS NULL:2005/09/18(日) 15:03:14 ID:/TphbGBL
3.2.6 age

630 :NAME IS NULL:2005/09/18(日) 15:21:16 ID:???
お。このスレで話題になった COUNT(DISTINCT) がサポートされたね。

631 :NAME IS NULL:2005/09/18(日) 15:30:33 ID:???
drh は絶対このスレ見てるな。

632 :NAME IS NULL:2005/09/18(日) 20:49:02 ID:???
>>631
んなわきゃねえw

633 :NAME IS NULL:2005/09/19(月) 15:13:05 ID:ZFm7QfVl
>>628
うん、テーブルは作ってある。ローカルでもテスト済み。
ただ、ローカルの環境がWindowsだったのでFreeBSDとバイナリ互換ないのかなとおもって、
データベースを最初から作り直すことにしたんだが、 create table でも同じ現象が発生。
どうやらビージータイムアウトして database is lock が返ってきているみたいなので
sqlite_busy_timeout() で時間を延長してみたがやっぱりNG。

・・・自分でDBもどき作るしかないのかね・・・鬱だ・・・orz.

634 :NAME IS NULL:2005/09/19(月) 20:03:45 ID:qEdHNoTH
>>633

>>472 SQLite3 のロックの挙動で >>464,465 が SQLite 2.8 の例。
>>478 に解説あり。トランザクションを閉じれば回避できそうだけど。


635 :NAME 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!


636 :NAME IS NULL:2005/09/23(金) 15:20:33 ID:???
sqliteはWCS(のみ)で使うのが正しいのだと思う。たぶん。

637 :NAME 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を渡す
→文字化けファイル名のできあがり


638 :NAME IS NULL:2005/09/23(金) 15:39:15 ID:???
>>637
うん。。Win9xは駄目だね。
うちはsqlite使うものはWin9xは対応しない。(要求もあまりないので)

639 :NAME IS NULL:2005/09/23(金) 15:52:40 ID:???
>>637
そこまで調べてるんなら、
パッチ作って送ったらいいんじゃね?

640 :NAME IS NULL:2005/09/23(金) 21:37:00 ID:???
>>635
os_win.c見てみたけど、NTの場合に問答無用でW系のAPI使ってるわけではなくて、
utf8ToUnicode関数でWide文字列に変換してから処理してるから大丈夫じゃない?

非16系の関数が、3.2.5まではMBCSのファイルパスを受け取ってたけど、今度からは
utf8にして渡さないとね。

641 :NAME IS NULL:2005/09/23(金) 23:04:19 ID:???
>>640
>>637

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

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


642 :640: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で通して楽したいってのが
開発者の考えだろうね。(ちょっと動作的に無駄が生じるけど)

643 :642: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は、、別にいいでしょ。。)

644 :642: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変換の
処理を入れると…。

すんまそん。

645 :642: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

だと思う。

646 :NAME IS NULL:2005/09/29(木) 00:37:06 ID:???
copy復活マダー?

647 :NAME IS NULL:2005/09/29(木) 18:55:01 ID:???
3.2.7がでとるな。

648 :NAME IS NULL:2005/10/03(月) 23:52:55 ID:???
mysqlのマルチプルinsertほしいなぁ。

649 :NAME IS NULL:2005/10/04(火) 00:04:43 ID:???
>>648
スピードの問題だけであればトランザクションの中に入れるだけで
100倍くらい速くなったよ。

650 :NAME IS NULL:2005/10/04(火) 00:41:51 ID:???
>>649
うん。そうなんだけど、さらに高速にならないかなぁって。
最近パフォーマンス厨なもんで。

651 :NAME 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 );


652 :NAME IS NULL:2005/10/04(火) 01:59:27 ID:???
>>651のfor文の前後からBEGIN TRANSACTIONと
COMMIT TRANSACTIONがぬけてた。
補完よろしく。


653 :NAME IS NULL:2005/10/04(火) 10:08:33 ID:???
それはどのへんが高速化のポイントなの?

654 :NAME IS NULL:2005/10/04(火) 12:07:39 ID:???
prepareしてる辺りじゃないの。

655 :NAME IS NULL:2005/10/04(火) 13:58:35 ID:???
なるほど。
それならわざわざコードを出さなくてもそう説明してくれた方がわかりやすいね。

656 :NAME 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を基本から学ぶのには適さないみたいだけど、サンプルとして見たらどうなのかな?

657 :NAME IS NULL:2005/10/06(木) 23:09:26 ID:???
>>656
その書評を見る限りでは・・・ だめなんじゃない?

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

「何々SQLサーバーの入門書」と銘打っておきながら、PHPが全面に出ている本は、
結局のところ、「何々SQLサーバー」そのものに関する固有の情報や、他のサーバーに
ない特徴といったものは、ほとんど載ってない場合がほとんどだから。
もちろん、これは一般的な傾向であって、この本がそうだと確認したわけじゃないけど。

658 :NAME IS NULL:2005/10/09(日) 14:45:10 ID:???
SQLiteがTcl/Tkコミュニティから生まれたものだということが無視されて
PHPとPythonばかりフィーチャーされている件について・・・

659 :NAME IS NULL:2005/10/09(日) 16:35:12 ID:???
>>658
SQLite のサイトを見れば、tclとの関連が深いことはすぐわかると思うんだけど。

660 :NAME IS NULL:2005/10/10(月) 01:09:16 ID:???
ごめん知らなかった。

661 :NAME IS NULL:2005/10/10(月) 01:22:17 ID:???
tarball 開いたら Tcl のスクリプトがぎょーさん出てくるがな。

662 :NAME IS NULL:2005/10/10(月) 03:40:52 ID:???
windows用に sqlite3 の zip を落としてくると、中には .exe 一個だけ
しかなかったり・・・

663 :NAME IS NULL:2005/10/10(月) 17:36:57 ID:U3RRRrud
>>662
dllさがしている?それなら別のzip

664 :NAME IS NULL:2005/10/10(月) 19:47:27 ID:???
>>663
>>662>>661 へのレスと思われ。

665 :NAME 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を採用するかどうかで
迷い中です。

詳しい方、あるいは似た状況の方、取るべき指針について御教示下され。。。

666 :NAME IS NULL:2005/10/12(水) 01:04:10 ID:???
>>665
詳しくないけど突っ込んでみる。
10GBでも2.5MBだけどメモリ不足なの?

667 :NAME IS NULL:2005/10/12(水) 01:09:41 ID:???
組み込みDBでGはきついんじゃないかな。
素直にRDBMSにした方がいいと思われ。

668 :665: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ということでよろしいでしょうか・・・?

669 :NAME IS NULL:2005/10/12(水) 03:37:37 ID:???
>>665
知識のないオレだけど、英文の内容を見る限り、別のデータベースエンジンを使うことを
検討すべきだというのは、「a few dozen GB」以上になった場合と書いてある。a few dozen
ってのは「数ダースの」という形容詞だから、「数ギガ」ではなく「数十ギガ」だと思う。

つまり、665さんの見積もり「数ギガ」に対しては、まだ一桁の余裕があるんじゃない?

670 :NAME IS NULL:2005/10/12(水) 07:42:54 ID:RxTmnOMj
SQLiteの同時接続数は、
コンパイル時に10に制限されているとのことですが
これを設定ファイル等で増やす事はできないのでしょうか?
10というのはいかにも少なすぎる気がするのですが…。

671 :NAME IS NULL:2005/10/13(木) 04:37:37 ID:???
同時接続の意味が違うような気がする。

672 :665:2005/10/13(木) 09:42:59 ID:???
>>669
コメントありがとうございます。
言われてみれば確かに「一桁の余裕」ですね。安心感が生まれてきました。
sqlite採用の方向でいってみます。どうもありがとうございました!

673 :NAME IS NULL:2005/10/13(木) 18:19:15 ID:???
>>671
MySQLで言うmax_connectionsのことではないのでしょうか?
max_connectionsはどこで設定できるのですか?

674 :NAME IS NULL:2005/10/13(木) 19:10:36 ID:???
何と何を接続するんだ?

675 :NAME IS NULL:2005/10/13(木) 21:51:16 ID:???
もしかして、もともとコネクションという概念自体がないんですか?
DBなのにtoo many connectionsエラーが出ない?
それはかなりありがたいですね!

676 :671:2005/10/14(金) 00:00:55 ID:???
>>675
えっと・・・ 間違ってたらゴメン。(おかしかったら突っ込んで>有識者の皆さん)

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

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

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

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

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

MySQLのmax_connectionって、サーバーが子プロセスを起動するときの上限の
設定のことだよね? たぶんSQLiteと言葉は似ているけど意味は全然違うと思う。

677 :NAME IS NULL:2005/10/14(金) 00:57:09 ID:???
>>676
たぶん正しいと思うんだけど、複数のアプリケーションが同時にひとつのファ
イルにアクセスできるから「独占的」という表現はあまり正しくなさげ。

ちなみに、書き込みは 2.x だと flock か何かでファイル全体のロックをして
いたけど、 3.x はそのへんもうすこし緩和されているらしい。


678 :NAME IS NULL:2005/10/14(金) 02:45:14 ID:???
まあ憶測であれこれ考える前にまずはドキュメント嫁と。

679 :NAME IS NULL:2005/10/15(土) 12:21:45 ID:???
ドキュメント嫁言いたいだけだろ。

680 :NAME IS NULL:2005/10/19(水) 19:13:28 ID:K3Pdo6yl
ところで、OpenSSIでクラスタ組んで共有ディレクトリにdbファイル作って、
複数CPU同時読み書き高負荷でやったけど、全然問題なかった。
他に検証やったことある椰子がいたら報告くれ。
openMosixでも可
ttp://openssi.org/cgi-bin/view?page=openssi.html


681 :NAME IS NULL:2005/10/21(金) 20:37:20 ID:uTNs7eq1
sqlite3_reset()とsqlite3_clear_bindings()の違いって何?

682 :NAME IS NULL:2005/10/21(金) 22:01:01 ID:aCtEsJXz
>>681
resetは実行結果(column)の消去、clearはパラメータ(bind)の消去


683 :NAME IS NULL:2005/10/21(金) 22:58:46 ID:???
>>682
なるへそーサンクス。

684 :NAME IS NULL:2005/10/28(金) 10:28:42 ID:IedZDhzg
>>678
ソース嫁が正しいとおもふ

685 :NAME IS NULL:2005/10/28(金) 21:47:04 ID:???
sqliteのロゴマークがtcl/tkのロゴマークと同じなのに誰も指摘しない件について

686 :NAME IS NULL:2005/10/30(日) 01:49:45 ID:???
>>685
>>658

687 :NAME IS NULL:2005/10/31(月) 23:25:24 ID:???
よくわかんないけどtcl/tkって何?

688 :NAME IS NULL:2005/10/31(月) 23:27:45 ID:???
GUIツールキット

689 :NAME IS NULL:2005/10/31(月) 23:34:04 ID:???
>>688 それはtkのほう。
tclは言語

690 :NAME IS NULL:2005/11/01(火) 18:03:49 ID:???
ADO.NET Data Provider for SQLite なんだけどさ
ソースコード軽く眺めてたら、Unix系とWindows系で処理が分かれてる。
SQLite.NETのUtil.csで。

これってつまり、monoにもそのまま対応してるってことかな?

691 :NAME IS NULL:2005/11/02(水) 02:50:21 ID:???
よくわかんないけどmonoって何?

692 :NAME IS NULL:2005/11/02(水) 02:51:17 ID:???
オープンソース版 .Net

693 :NAME IS NULL:2005/11/02(水) 08:40:24 ID:???
ReadMe.txtに Version 0.20 からのMono on UNIXサポート追加が書いてあるね。

694 :NAME IS NULL:2005/11/02(水) 09:20:34 ID:???
>>690
てゆうか、monoのクラスライブラリに Mono.Data.Sqliteっていうのがあるぞ

695 :NAME IS NULL:2005/11/02(水) 09:39:52 ID:???
消しゴム


696 :NAME 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ファイルに互換性があるかどうかなんだが・・・。



697 :NAME IS NULL:2005/11/03(木) 08:26:35 ID:???
文字コードに気をつけりゃ出来るよ。

698 :NAME IS NULL:2005/11/03(木) 15:35:13 ID:???
あるよ。
別アーキテクチャだったら、試した事無いから分からんけど。

699 :NAME 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はエンディアンの問題も解決されているらしい。

700 :696:2005/11/03(木) 17:43:09 ID:???
>>697
>>698
>>699
アリガトン。休日なのにスマヌ。
文字コードは大丈夫。

・・・PGが間違えなければね。


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

サクラウェブで借りているFreeBSDのサーバー上で、PerlのSQliteモジュールを
使ったプログラムを動かしてみて、できたデータベースファイルをFTPで
ダウンロードしてWindowsXP上のSQLiteで読んでみたら、何の問題もなかった。

702 :NAME 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

とでるのですが、何が原因でしょうか

703 :NAME IS NULL:2005/11/05(土) 15:39:06 ID:???
PHP板の方がいいと思うけど。
エラーメッセージが "no such table: link in ...略 on line 43" だから
"select * from link" で指定している link という名前のテーブルが存在しないんでしょ。

704 :NAME IS NULL:2005/11/05(土) 15:39:22 ID:???
>>702
だから no such table: link なんじゃないのかね?

705 :NAME IS NULL:2005/11/05(土) 17:25:23 ID:lUG2HX7F
703,704 ありがとう。できました。たすかりました

706 :NAME IS NULL:2005/11/11(金) 13:06:08 ID:v8h/gUt4
gooブログリーダーにPythonとSQLiteのDLLが入ってたage

707 :NAME IS NULL:2005/11/11(金) 22:29:51 ID:???
gooブログリーダーってのに入ってると何がどう変わるの?
PythonのDLLとSQLiteのDLLなの?PythonのSQLiteラッパーなの?
なにがなんなの?

708 :NAME IS NULL:2005/11/12(土) 00:17:58 ID:???
>>707
そこはそんなに突っ込むトコじゃないと思われ。
単なる「『こんなところにも SQLite』ネタ」でしょ。

709 :NAME IS NULL:2005/11/12(土) 03:54:01 ID:???
glucoseだっけかなgooのrssリーダ
話題としては去年のものだ

こんなところにもSqliteっていうのなら最近だと画像アルバム系ソフトとかにも使われてる

710 :NAME IS NULL:2005/11/13(日) 00:08:46 ID:???
>>709
画像そのものをDBに入れてるの?
バイナリ保存って出来たっけ?Base64なら納得だけど。

711 :NAME IS NULL:2005/11/13(日) 00:18:22 ID:???
>>710
普通に考えて画像ファイルのパスとかのメタ情報とかじゃねーの?
>>709 じゃない俺が答えてみる。

SQLite の DB にバイナリを入れるのは問題なくできるよ。

712 :NAME IS NULL:2005/11/13(日) 00:40:04 ID:???
>>711
そうなのか。
昔は数字と文字列との違いがないような処理系だったのに
そこまで変わったんだな。

713 :NAME IS NULL:2005/11/13(日) 01:28:04 ID:???
数字と文字列との違いが無かった古の昔からそうだったわけだけど。

714 :NAME IS NULL:2005/11/13(日) 07:54:54 ID:???
ファイルの拡張子は何にしてる?

715 :NAME IS NULL:2005/11/13(日) 14:17:09 ID:???
>>714
>>486

716 :NAME IS NULL:2005/11/13(日) 15:37:26 ID:???
検索すべきだった、スマソ。


717 :NAME IS NULL:2005/11/14(月) 00:11:25 ID:???
よし、これからは皆liteに統一しろ。

718 :NAME IS NULL:2005/11/14(月) 01:16:53 ID:???
断る

719 :NAME IS NULL:2005/11/18(金) 15:57:41 ID:???
拡張子は .xls にするのが普通だろ。
っていうかExcelでワークシートとして読み込めるの知らなかったのか?


720 :NAME IS NULL:2005/11/18(金) 20:49:10 ID:???
テキストファイルなんだから .txt でいいじゃん

721 :NAME IS NULL:2005/11/19(土) 00:33:38 ID:???
ちょっとまて、 719 と 720 は何の話をしているんだ?


722 :NAME IS NULL:2005/11/19(土) 00:35:37 ID:???
馬鹿話

723 :NAME IS NULL:2005/11/19(土) 11:39:05 ID:PHOWnBt0
hoge.mysql

724 :NAME IS NULL:2005/11/19(土) 23:17:07 ID:???
.hage

725 :NAME IS NULL:2005/11/19(土) 23:49:46 ID:???
いつからカツラだと知っていた!?

726 :NAME IS NULL:2005/11/20(日) 16:52:05 ID:???
>>719
え?ウソだろ!?
でもそうだったらめちゃめちゃ便利じゃん
とか思いながら開いてみた。

・・・つられた。。。



727 :NAME IS NULL:2005/11/20(日) 16:57:38 ID:???


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

だから拡張子.mdbだ。

729 :NAME IS NULL:2005/11/21(月) 20:06:15 ID:???
おもろない。

730 :NAME IS NULL:2005/11/21(月) 21:25:29 ID:???
.jspにしますた

731 :NAME IS NULL:2005/11/21(月) 21:27:02 ID:???
んじゃおれは.aspxで

732 :NAME IS NULL:2005/11/21(月) 21:27:32 ID:???
漏れなんか .exe だど。

733 :NAME IS NULL:2005/11/21(月) 22:24:06 ID:???
youjo.rarにしますた

734 :NAME IS NULL:2005/11/22(火) 13:53:37 ID:???
`_

735 :NAME IS NULL:2005/11/25(金) 11:18:06 ID:oROAHEdA
sqlite 使える レンタルサーバーで安い所しりませんか

736 :NAME IS NULL:2005/11/25(金) 13:02:03 ID:???
・PHP5が使える鯖(PHP専用)
・DBIとDBD-SQLiteが使える鯖(Perl専用)

737 :NAME IS NULL:2005/11/26(土) 18:50:25 ID:???
>>735
まだ試してないけどさくらには、
DBD-SQLite-1.09
が入っている。



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




739 :NAME IS NULL:2005/11/27(日) 14:20:55 ID:???
>>735
サクラインターネットでも使う? 一番安いコースはPHPは使えないけど、
でもsqlite を組み込んだperlのモジュールがある。
あと、Cコンパイラが使えるから、やりたいなら自分でソースをコンパイルする
こともできるはず。

740 :NAME IS NULL:2005/11/27(日) 17:28:58 ID:???
SQLiteManagerって名前のソフトは商用のスタンドアロンのやつとPHPのやつがあるんだけど。

741 :NAME IS NULL:2005/11/27(日) 19:41:58 ID:???
Javaでよけりゃ作ってやろうか?
JDBCDriverがあればだけど。

742 :NAME IS NULL:2005/11/28(月) 03:32:07 ID:???
>>740
PHPのやつです。参考になるアドバイスいただけるとうれしいス。

743 :NAME IS NULL:2005/11/28(月) 16:13:29 ID:???
>>742
他のを使え

744 :NAME IS NULL:2005/11/28(月) 20:41:01 ID:???
Mozilla プロジェクトのカレンダーアプリケーションソフト Sunbird は
0.3 alpha1 から SQLite 組み込みだそうな。

745 :NAME IS NULL:2005/11/29(火) 23:46:17 ID:???
じんわり浸透していくな。
なんか嬉しい。

746 :738:2005/11/29(火) 23:57:17 ID:???
SQLiteManager(PHPのやつ)で新規データベースを作る時、または既存の
データベースをロードする方法、発見しました!!!!
データベースへのパスを参照し
D:\www\myhome\database.db とか表示されたら「\」を「/」にマニュアルで
置き換えます。
D:/www/myhome/database.db こういうふうに
で、指定場所にデータベースファイルを作成したり既存のファイルを
SQLiteManagerにロードしたりできました!!!!
SQLiteManagerつかえるじゃん。やったー!

747 :NAME IS NULL:2005/12/03(土) 23:23:49 ID:???
なんでSQLiteは使いやすいのに普及しないんだろう?
MySQLが使用できないレン鯖でMovableTypeを入れようとする人とかに
結構需要はありそうに思うんだが。
せっかくブログブームでDBに初めて触れる人も出てきたのに
SQLiteはそのブームに乗り遅れた感じがするね。

748 :NAME IS NULL:2005/12/03(土) 23:27:06 ID:???
DBを使う用途ってのが個人だと少ないからな


749 :NAME IS NULL:2005/12/04(日) 00:14:06 ID:???
バージョンアップの頻度が高すぎて安心して使えない。
パイプでSQL流して結果をファイルにリダイレクトする程度ならいいが、
組み込みにはしたくないな。

750 :NAME IS NULL:2005/12/04(日) 00:26:58 ID:???
2系が枯れるのを待てばいいじゃん。

751 :NAME IS NULL:2005/12/04(日) 00:37:09 ID:???
3系が枯れるのを待って
2系は消えるのを待てばいいと思う

752 :NAME IS NULL:2005/12/04(日) 00:45:07 ID:???
3系は開発バージョンだろ。あと数ヶ月したら3.3が出るみたいだし。
なかなか枯れないと思うよ。

753 :NAME IS NULL:2005/12/04(日) 01:16:31 ID:???
MySQLなみに普及しようと思ったら
MySQLなみに世間にもまれなければならない。
いまはまだSQLiteは開発途上で一部のマニアのオモチャになっている段階。

754 :NAME IS NULL:2005/12/04(日) 01:18:06 ID:???
普及するってのがどの程度を指すのかが分からんな。
それなりに採用してるソフトは出てきてるみたいだが。

755 :NAME IS NULL:2005/12/04(日) 01:31:20 ID:???
最近の共用レン鯖ではインスコされてるね。

756 :NAME IS NULL:2005/12/05(月) 19:28:24 ID:???
>>747
あれはMySQLを入れたいんじゃなくて、MTを入れたいだけだし。
MySQLも含めたDBを使おうとはしてないよ。

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

>>754
今の所マカが人柱に成ってるだけだしね。
デスクトップ検索とブラウザのRSSサポートとか。

757 :NAME IS NULL:2005/12/05(月) 20:48:51 ID:???
SQLiteのこの手軽さがたまらん(*´Д`)


758 :NAME IS NULL:2005/12/06(火) 04:51:19 ID:???
>>757
アクセス廚のように始めのうちはいいけど後で困るんだけどね(w
アクセスは1万件で問題が出始めるんだっけか。
sqliteは100万件ぐらいは耐える?

759 :NAME IS NULL:2005/12/06(火) 05:49:54 ID:???
アクセスはっていうより.mdbはっていうなら同意

760 :NAME IS NULL:2005/12/06(火) 06:17:10 ID:???
耐えるってどういう意味?

761 :NAME IS NULL:2005/12/06(火) 09:24:10 ID:???
苦しさ・悲しさなどに屈せず我慢する。こらえる。
他から加えられる力に負けずにもちこたえる。


762 :NAME IS NULL:2005/12/07(水) 12:04:37 ID:???
>>761
こんな厨房レスいらんねん。おかげでパフォーマンスの話題が途切れた。

763 :NAME IS NULL:2005/12/07(水) 13:11:58 ID:???
で、おまいらどのくらいのレコード数処理させてるの?
すでに遅くなる所まで使い込んだ香具師居る?

764 :NAME IS NULL:2005/12/07(水) 13:43:38 ID:???
100万レコード、ファイルサイズで100Mバイトくらいまでは普通に使ってるけど
特に遅くなる様子はないよ。

765 :NAME IS NULL:2005/12/08(木) 01:58:24 ID:???
正規化をちゃんとすれば100万件くらいはいけるんじゃないかなあ

766 :NAME IS NULL:2005/12/08(木) 04:42:54 ID:???
20万件で100MB

数万件程度ならSQLiteもMySQLも速度的にはたいして変わらんが、、、

767 :NAME IS NULL:2005/12/08(木) 14:08:57 ID:???
つまりsqliteに限らず、正規化できてればMySQLと変わらないのかな?
アクセスはエクセルの延長的に使われるので正規化されずに使われそうだけど、sqliteはそうでもないかな?

768 :NAME IS NULL:2005/12/08(木) 22:52:04 ID:???
prepareされてればどのDBでも似たり寄ったりの性能だろ?


769 :NAME IS NULL:2005/12/12(月) 20:04:21 ID:???
教えて君ですんまそ。即答できる人がいたらおしえてください。
SQLite2とSQLite3のデータベースの形式に互換性がないのはわかったけど
libsqlite3(つーかSQLite3のライブラリ)でSQLite2のデータベースを触ることはできるの?

770 :NAME IS NULL:2005/12/12(月) 21:05:16 ID:???
無理

771 :NAME IS NULL:2005/12/12(月) 21:05:52 ID:???
>>769
できない。

772 :NAME IS NULL:2005/12/12(月) 23:34:35 ID:???
なんでそんなことを?
2でexportして3でimportすればええやん。

773 :NAME IS NULL:2005/12/13(火) 18:16:59 ID:???
色々しがらみがあって2のままでないといかんてこともあろうよ。
一々疑問に思うなってばよ。

774 :NAME IS NULL:2005/12/13(火) 19:52:37 ID:???
だったら2のライブラリ使えよ。
大したサイズじゃないんだから、両方入れりゃいいだろ。

775 :NAME IS NULL:2005/12/15(木) 00:46:56 ID:???
しがらみって何だよ?
ずっと2のままで使えばいいじゃん。

776 :NAME IS NULL:2005/12/20(火) 03:36:53 ID:sxnJeXo0
バージョンアップきたあああああああああああああああああ!!!

777 :NAME IS NULL:2005/12/20(火) 23:20:55 ID:???
しょっちゅうあることだしぃ

778 :NAME IS NULL:2005/12/21(水) 10:25:55 ID:???
全体的にバグ出具合はどんな感じ?
やっぱ、あるでしょ、少しぐらいは。

779 :NAME IS NULL:2005/12/21(水) 15:58:44 ID:???
どんな感じってどういう意味?
なんか最近抽象的な聞き方する人が多いな。

780 :NAME IS NULL:2005/12/21(水) 16:44:14 ID:???
時代はエスパーを求めているってことだろw

781 :NAME IS NULL:2005/12/21(水) 19:46:25 ID:???
なんだおまえら?

782 :NAME IS NULL:2005/12/21(水) 21:14:22 ID:???
1ファイルの容量が1MBなんだけど、パフォーマンス的には問題ある?

783 :NAME IS NULL:2005/12/21(水) 21:16:48 ID:???
>>782
全く問題ない。100Mくらいまでは普通に使ってる。

784 :NAME IS NULL:2005/12/22(木) 01:01:27 ID:???
レコード数にも依るかもな。

785 :NAME IS NULL:2005/12/22(木) 02:57:04 ID:???
XOOPSがSQLiteで使えればよいのになぁ。

786 :NAME IS NULL:2005/12/22(木) 10:35:58 ID:???
改造は可能

787 :NAME IS NULL:2005/12/22(木) 15:23:23 ID:???
ファイルサイズ316Mでテーブルが4000以上、レコード数は5万以上のテーブルもあるな。
JavaScriptで使っています。
おいらとしては問題なし、最適化って何ですか。(笑)

788 :NAME IS NULL:2005/12/22(木) 22:46:45 ID:???
5桁程度のレコードなら全RDBMSの中でも最速なんじゃない?
たしかMySQLより速いだろ

789 :NAME IS NULL:2005/12/22(木) 23:03:24 ID:???
手元のDB見たら、一番大きいテーブルで400万レコードほどあった。
特に性能的な問題を感じないで(仕事で)使ってるよ。

790 :NAME IS NULL:2005/12/22(木) 23:14:03 ID:???
XOOPSってPHPでしょ。ソース有るから弄ればいいじゃん。

まあSQL解析不要だからねえ。PreparedStatement状態。


791 :787:2005/12/23(金) 17:39:04 ID:???
LiteX - Automation wrapper for SQLite3 library.
http://republika.pl/roed/litex/

LiteXはCOMなのでJavaScriptからADOみたいに使用できます。
個人で遊ぶにはODBCを使用するより便利ではないかと思っとります。


792 :NAME IS NULL:2006/01/01(日) 15:27:03 ID:???
JDBCからSQLiteって使える?

793 :NAME IS NULL:2006/01/01(日) 18:19:44 ID:???
JNI次第じゃない?

794 :NAME IS NULL:2006/01/01(日) 19:33:50 ID:???
>>792
>>162

795 :NAME IS NULL:2006/01/02(月) 14:59:12 ID:???
>794
補足すると、J2SE5.0以降で使用する場合はAnt使ってリビルドが必要。


796 :NAME IS NULL:2006/01/11(水) 02:39:29 ID:???
おまえら、SQLite3は地雷だってこと、黙ってたな!?

797 :NAME IS NULL:2006/01/11(水) 04:31:27 ID:???
>>796
踏みましたか

798 :NAME IS NULL:2006/01/11(水) 05:11:27 ID:???
えっ?えぇっ?

799 :NAME IS NULL:2006/01/11(水) 14:59:10 ID:???
3.3.0aだね・・・わかるよ・・・

800 :NAME IS NULL:2006/01/11(水) 15:45:45 ID:???
kwsk

801 :NAME IS NULL:2006/01/11(水) 16:23:57 ID:???
だから2系使えって言ったのに。3は開発版の永遠のベータ版だって。
とはいえ、2は非推奨みたいな雰囲気かもしだしてるのが悪いと思う。
3のほうこそ安定するまで非推奨にするべきだ。

802 :NAME IS NULL:2006/01/11(水) 16:47:24 ID:???
具体的にどこが安定してないんだ?

803 :NAME IS NULL:2006/01/11(水) 16:56:12 ID:???
2.8
↓フォーマット変更(互換性がなくて大混乱)
3.0←いまここ
↓フォーマット変更(大混乱)←これからここ
3.3

804 :NAME IS NULL:2006/01/11(水) 17:41:45 ID:???
>>802
801の脳が

805 :NAME IS NULL:2006/01/11(水) 18:23:35 ID:???
>>804
お前の目はフシアナ

806 :NAME IS NULL:2006/01/11(水) 21:21:12 ID:???
とにかく、SQLite3は地雷。

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

洋書を手に入れるしかないのか!!


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



808 :NAME IS NULL:2006/01/11(水) 21:33:24 ID:???
3.2.x使ってるけど、俺が使ってる範囲ではへっちゃらだ。
駄目な条件も書かずに地雷とか言ってる奴は自分の危険回避能力を疑ったほうがいい。

809 :NAME IS NULL:2006/01/11(水) 21:39:13 ID:???
漢字。


810 :NAME IS NULL:2006/01/11(水) 21:40:53 ID:???
>>809
またWindows 98/MEとかいう古代の遺物の話か。

811 :NAME IS NULL:2006/01/11(水) 22:19:48 ID:???
>>809
ドキュメントも見ずにダメとか言うのはどうよ。
Unicodeで出し入れするか、BLOB型使いなはれ。
http://www.sqlite.org/datatype3.html

812 :NAME IS NULL:2006/01/12(木) 01:15:33 ID:???
>>808
>俺が使ってる範囲では

問題はそこじゃないんだが・・・。まあどういう範囲か知らないが、
他人にファイルを渡したり貰ったり、関連のツールを使ったり
その辺の互換性が混乱することになるだろう・・・。
まあ調査能力の乏しい君にもいずれ現実が教えてくれるだろう・・・

813 :NAME IS NULL:2006/01/12(木) 01:40:51 ID:???
ここまで引っ張っておいて何が問題なのか書かないのか。
で、トラッカーにも載ってなくて、報告する気もなし?

814 :NAME IS NULL:2006/01/12(木) 02:16:38 ID:???
>>808

正確なバージョンかきなよ。xじゃ、どれがへっちゃらなのかわかんねーよ。

815 :NAME IS NULL:2006/01/12(木) 02:19:14 ID:???
ADO.NET 2.0 Provider for SQLite
http://sourceforge.net/projects/sqlite-dotnet2

存在に今気付いた。なんでわざわざ別プロジェクトにしたんだろ?

816 :NAME IS NULL:2006/01/12(木) 02:23:32 ID:???
>>811
お、REAL型を別扱いしてくれるようになったんだ。移行してみようかな。

817 :NAME IS NULL:2006/01/12(木) 03:33:29 ID:???
バージョン3.3.0のためのファイル形式は、2進の値の、より効率的なコード化を提供するためにわずかに変化しました。
SQLite3.3.0はSQLite3のどんな先のバージョンでも作成されたレガシーデータベースを読み書きするでしょう。
しかし、バージョン3.3.0作成されたデータベースは、SQLiteの以前のバージョンで読み込み可能であるか、書き込み可能にならないでしょう。
それが必要であるそれらのまれなケースのためのコンパイル時により古いファイル形式を指定することができます。

818 :NAME IS NULL:2006/01/12(木) 03:35:51 ID:???
ドキュメントも読まずにα版入れた馬鹿が嘆くスレ

819 :NAME IS NULL:2006/01/12(木) 03:37:32 ID:???
>>803
そんなことで混乱するのは素人だけ
いや素人のほうが慎重か?

820 :NAME IS NULL:2006/01/12(木) 04:10:22 ID:???
C#でSQLite使うのにDllImportして苦労してたのに…orz

821 :NAME IS NULL:2006/01/12(木) 05:54:09 ID:???
>>819
慎重でも検討もしないけど、素人は古いバージョンから上げてくことが少ないので
データ形式の下位互換性は余り問題にならない。ただ機能的な互換性は問題にはなる。
アプリケーションが対応してようがしてまいが、"一番新しい"のを導入しようとするから。

822 :NAME IS NULL:2006/01/12(木) 09:55:23 ID:???
ソースをコンパイルしたとき、あー、これはやば目だねって、わかるもんだ。


823 :NAME IS NULL:2006/01/12(木) 12:50:39 ID:???
どうせ自分の能力不足で使えなかった腹いせをやってるだけだろう。

824 :NAME IS NULL:2006/01/12(木) 16:30:13 ID:???
盲目的な信者ばっかだな・・・。

825 :NAME IS NULL:2006/01/12(木) 16:34:15 ID:???
ちゃんと使えてるからな。「地雷」とか言う奴は曖昧なことしか書かないし。

826 :NAME IS NULL:2006/01/12(木) 16:34:17 ID:???
>>822
このスレでコンパイルしてテストまで通せたやつは一人だけだろう。

827 :NAME IS NULL:2006/01/12(木) 16:37:47 ID:???
>>826
そんなわきゃない。

828 :NAME IS NULL:2006/01/12(木) 16:42:32 ID:???
>>827
おまえだけ

829 :NAME IS NULL:2006/01/12(木) 17:52:08 ID:???
>>824
遂にラベリング厨キタ━━━(゚∀゚)━━━!!!

830 :NAME IS NULL:2006/01/12(木) 19:05:27 ID:???
>>829
ラベリング厨とラベリングするのはやめてください

831 :NAME IS NULL:2006/01/12(木) 20:22:46 ID:???
EUC-JPでつっこんでも問題ないですか?

832 :NAME IS NULL:2006/01/12(木) 21:54:28 ID:???
>>831
基本的にはUnicodeにするべし

833 :NAME IS NULL:2006/01/12(木) 22:41:51 ID:???
>>832

理由は? UnicodeってUTF-8でもいいのかよ?


834 :NAME IS NULL:2006/01/12(木) 22:43:11 ID:???
>>833
API見れ

835 :NAME 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

もちろん君の使うフロントエンドがコード変換をやってるならこの限りではない。

836 :831:2006/01/13(金) 04:23:07 ID:???
>>835を読んでみましたが、
SQLite2まではUTF-8、SQLite3からは16BE, 16LEも可で合っていますか?

837 :NAME IS NULL:2006/01/13(金) 11:33:09 ID:???
フロントエンドを使わずに SQLiteを使ってるやつはいるか?


838 :NAME IS NULL:2006/01/13(金) 13:57:07 ID:???
ラッパー自作して自作ソフトでSQLite使ってる人は珍しくない

839 :NAME IS NULL:2006/01/13(金) 14:29:24 ID:???
>>838
そんなめんどっちいことするのは少数派

840 :NAME IS NULL:2006/01/13(金) 14:33:10 ID:???
>>838-839

自分の価値観押しつけ合うのはやめような

841 :NAME IS NULL:2006/01/13(金) 21:52:20 ID:???
既存のコンポーネントあっても自作する人はいるもんだ

842 :NAME IS NULL:2006/01/13(金) 22:32:11 ID:???
パイプでSQL流して結果をファイルに落として自力パースでもいいんでない。
PerlやRubyならDBIとか使うのが手っ取り早いけど。

843 :NAME IS NULL:2006/01/13(金) 22:41:56 ID:???
なんかそれぞれ微妙に論点ズレてねー?
「フロントエンド」「SQLite」の辺りを俺定義で使ってる奴が混ざってる予感。

844 :NAME IS NULL:2006/01/14(土) 01:05:35 ID:???
SQLite 3.1.3がMac OS Xの超目玉機能のSpotlightの心臓部だから
SQLite3が地雷だと言うならSpotlightが不安定だと証明しなきゃな。

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

それができずにグダグダ言ってるアプリ作者は単なるザコ。
消えろ。


845 :NAME IS NULL:2006/01/14(土) 01:26:30 ID:???
Appleの製品は人類を不幸に陥れるために作られている

846 :NAME 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 の問題くさい。

847 :NAME IS NULL:2006/01/14(土) 01:50:55 ID:???
>>846
3.2.8使って、同等のCアプリを自分で書いて試してみた?


848 :NAME IS NULL:2006/01/14(土) 01:56:44 ID:???
>>844

もともとマックは地雷。

849 :NAME IS NULL:2006/01/14(土) 01:58:33 ID:???
>>848
つまんね


850 :NAME IS NULL:2006/01/14(土) 01:59:34 ID:???
>>844
>あと、一般的にDBのファイルって他人と交換しないだろ。

これはわからない。どういう風に使われているのかは、アプリ次第だし
ユーザーの挙動は想像するだけ無駄。

851 :NAME IS NULL:2006/01/14(土) 02:08:16 ID:???
>>850
ユーザーの挙動の話じゃなくて、アプリ作者のポリシーの話。

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

特に、SQLiteは組み込み用の軽量DBMSってのが売りなんだから
DBファイルは基本的にアプリ内部のローカルストレージであって
交換用の標準ファイルフォーマットではない。


852 :NAME IS NULL:2006/01/14(土) 09:29:16 ID:???
AdobeのLightroomもSQLiteつかってるよ。

853 :NAME IS NULL:2006/01/14(土) 09:49:40 ID:???
>>852

そのSQLiteのバージョンは?


854 :NAME 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.

855 :NAME IS NULL:2006/01/14(土) 16:09:56 ID:???
マカ氏ね!

HFSファイルシステム自体が糞。

856 :NAME IS NULL:2006/01/14(土) 16:16:11 ID:???
マカと創価学会員を殺してもいいって法律を作ってほしいよ

857 :NAME IS NULL:2006/01/14(土) 17:06:48 ID:???
>>856
日本の北朝鮮化計画、乙。

858 :NAME IS NULL:2006/01/14(土) 22:52:49 ID:???
>>854

オリジナルコードと協調しているあたり、かなり変更して使ったぜー、って雰囲気をかもし出してる。

859 :NAME IS NULL:2006/01/15(日) 00:25:34 ID:???
>>854
ファイルフォーマットから2、3.0、3.3を見分けろ。バイナリエディタで開けばわかるはずだ。

860 :NAME IS NULL:2006/01/15(日) 05:25:28 ID:???
質問。Cからsqlite3を使っています。
unique indexをつくって、同じIDでinsertするとSQLITE_ERRORが返ってくるが、
これって他のエラーと見分けつくの?エラーコードで。
IDが既にあるならなにもしない的な動きにしたいんだが。

861 :NAME IS NULL:2006/01/15(日) 09:58:07 ID:???
>>860
トリガー書け


862 :854: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系のフォーマットですか。

863 :NAME IS NULL:2006/01/15(日) 11:25:53 ID:???
yes
俺のシステムだとfileコマンドがSQLiteのバージョンまで表示してくれるなぁ。

864 :NAME IS NULL:2006/01/16(月) 18:08:18 ID:???
 ∧||∧
(  ⌒ ヽ  < 2006-Jan-16 - Version 3.3.1 alpha
 ∪ 。ノ  
  ∪∪

865 :NAME IS NULL:2006/01/17(火) 20:09:05 ID:???
げ。3.0と3.3ってファイル互換性無かったのか。
どうりでODBCドライバとかことごとく使えないと…

866 :NAME IS NULL:2006/01/18(水) 05:24:20 ID:jidDFeuu
SQLiteってCSEから扱えますか?

867 :NAME IS NULL:2006/01/18(水) 06:24:25 ID:???
よくしらんがODBC経由なら使えるんじゃね?

868 :NAME 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/


869 :NAME IS NULL:2006/01/19(木) 06:02:48 ID:???
>>868
ありがとう!

870 :NAME IS NULL:2006/01/21(土) 00:04:40 ID:???
CソースからSqlite3のAPIを使ってるんですが、
:memory:でメモリ上に作成したDBを
ファイル化するにはどうやればよいのでしょうか

871 :NAME IS NULL:2006/01/21(土) 03:03:04 ID:???
>>870
http://www.kordelle.de/sqlite/


872 :NAME IS NULL:2006/01/21(土) 05:48:41 ID:???
>>871 thanx!

873 :NAME IS NULL:2006/01/23(月) 09:07:42 ID:???
>>868
日本語フォントで表示できるのはCSEだけなの?

874 :NAME IS NULL:2006/01/24(火) 00:25:37 ID:???
>>874
SQLiteSpyみたいなUnicode対応のソフトなら普通に日本語も表示できるが。
できないのってSQLiteCCみたいな屑ソフトだけだろ。

外人ってUTF-8とASCIIの区別がついてないから、SQLiteのUTF-8文字列を
そのままWin32 APIに渡しちゃうんだよw

875 :NAME IS NULL:2006/01/24(火) 09:37:01 ID:???
7ビットであらわせるASCII部分はUTF-8でも同じだからなあ

876 :NAME IS NULL:2006/01/24(火) 12:12:38 ID:???
APIがデフォルトUTF-8じゃないWin32がゴミ同然なだけ。

877 :NAME IS NULL:2006/01/24(火) 12:20:09 ID:???
Win32は unicode だからな。
当時UTF-8は無かっただろ

878 :NAME IS NULL:2006/01/25(水) 23:31:33 ID:BM5SnTHn
>>874
自分にレスしてね?w
ていうかSQLiteCCは日本人なら日本語版使うだろ
ttp://www.takke.jp/soft/sqliteccj.html

879 :NAME IS NULL:2006/01/26(木) 00:22:29 ID:???
>>878
それってクエリー文字列入力欄は日本語対応してないし。
あと、勝手にクエリー文字列を小文字か大文字に変換してるらしく
文字列比較系のクエリーがまともに使えない。


880 :NAME 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では□で表示されるのですが・・・

881 :NAME IS NULL:2006/01/26(木) 09:35:54 ID:???
>>880
クライアントではどの文字コードで入力したの?

882 :NAME IS NULL:2006/01/26(木) 11:38:19 ID:XuaaA1W8
【レズ画像流失】女子高勤務の女性教諭のPCがWinny(キンタマウイルス)に感染し教え子の女子生徒とのレズプレイ画像が流失
http://aa5.2ch.net/test/read.cgi/nida/1130995497/l50

883 :880:2006/01/26(木) 13:08:29 ID:???
>>881
WindowsXPで普通に入力しました。
文字コードって指定できるのですか?

884 :NAME IS NULL:2006/01/26(木) 23:49:27 ID:???
>>880
SJISでDBに書き込まれて、SQLiteSpyが
「SJISをUTF-8として扱って」文字化けしてるんだろ。

SQLite3.exeって、文字コードの変換とかは何〜んもやらんから。
DOS窓ではSJIS以外では入力はできません。


885 :NAME 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だけです。


886 :NAME IS NULL:2006/01/27(金) 00:07:41 ID:???
ふむ。Cygwin + ck だとどうだろ。

887 :NAME 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を入力、表示できるようにしました。


888 :NAME IS NULL:2006/01/27(金) 15:09:38 ID:???
しかしさぁ。メモリリークがめちゃくちゃあるんだけど、これって大丈夫なのか?
Unix系プログラマってバカだからな、ANSIすらまもらねぇヤツ多いしさ。

これが当たり前なのか? Sqlite3.0系では。

889 :NAME IS NULL:2006/01/27(金) 15:37:24 ID:???
SQLiteは使い手を選ぶんだよ。

890 :NAME IS NULL:2006/01/27(金) 15:50:13 ID:???
「こいつみたいなアホに使われるのダルぅ。無意味にmallocしてやろw」

891 :NAME IS NULL:2006/01/27(金) 17:50:34 ID:???
正直、UNIXでコマンド作るだけの時はメモリリークはキニシナーイ
起動して何か処理して終わればすぐプロセスごと終了だもの。
もちろんデーモンを作る時にはそうはいかないが。

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

クライアントアプリでも、ずっと立ち上がってるようなものには向いてないだろな。

892 :NAME IS NULL:2006/01/27(金) 18:06:44 ID:???
つか>>888が言ってるのは単にフリーしてないメモリがあるって話だろ。
それが一定量であれば問題にしないのがUnix文化だし、実際Unixだろうと
Windowsだろうと問題にはならない。
リークってのは処理を続けていくうちに比例的にどんどんメモリ消費量が増えて
いっていつか続行不能になるってことだが、Sqliteでそういう経験はないな。
一ヶ月くらいの連続運用は平気でやってるけど。

893 :NAME IS NULL:2006/01/27(金) 18:10:25 ID:???
ANSIの通らない処理系が現役だったりするから
いろんな環境に対応させようとするとこうなるのはまあ・・・

894 :NAME IS NULL:2006/01/27(金) 21:45:09 ID:???
SQLiteSpyって見るだけなの?セル上でデータの変更とかできないの?

895 :NAME IS NULL:2006/01/27(金) 21:57:23 ID:???
そうかぁ?
必要じゃない限り、いろんな環境に対応させようなんて考える必要ないはずだけどなぁ。

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

しかし、古典的エンジニアが聞いたら卒倒しそうな文化だな。


896 :NAME IS NULL:2006/01/27(金) 22:15:12 ID:???
>>895
Win16とか旧MacOS時代の人、乙。はやく時代に適応できるといいね。

897 :NAME IS NULL:2006/01/28(土) 02:04:22 ID:???
SQLite3 を組み込んだ UNIX 上の daemon を一年以上メモリリークさせずに動かしてますが何か?

898 :NAME IS NULL:2006/01/28(土) 02:13:39 ID:???
>>897
っつーか、Spotlightなんてまさに
「SQLite3を組み込んだUNIX上のdaemon」だよな。


899 :NAME IS NULL:2006/01/28(土) 02:28:57 ID:???
Solaris 10 の svc は SQLite2 だから関係無いか。

900 :NAME IS NULL:2006/01/28(土) 02:32:52 ID:???
結局>>889-890が真実という事のようですな

901 :NAME IS NULL:2006/01/28(土) 04:38:37 ID:???
>>896
どんな結果でさえ、ソース上、バカなコーディングは遠慮させていただく。


902 :NAME IS NULL:2006/01/28(土) 06:35:55 ID:???
このままマイナーDB企画として埋もれてしまうのかな…

903 :NAME IS NULL:2006/01/28(土) 10:05:35 ID:???
組み込み用のDBとしては、かなりの躍進じゃない?

904 :NAME IS NULL:2006/01/28(土) 16:26:23 ID:???
>>902
人知れず埋め込まれていっています

905 :NAME IS NULL:2006/01/28(土) 17:17:30 ID:???
いまさらBerkeleyDBなんか使いたくないよ

906 :NAME IS NULL:2006/01/29(日) 00:50:58 ID:???
必要じゃない限り、移植の手間がかからないように書くもんじゃないのか?
卒倒しそうなのは、古典的PC系エンジニアですな。

メモリリークって言ったら、
(事実上)プログラムが制御出来なくなったメモリが、発生することだと思ってた。

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

908 :NAME IS NULL:2006/01/29(日) 12:28:37 ID:???
メモリリークの結果、メモリが増え続けるんだろ。
メモリリークとメモリが増え続けることは別の話。

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

カーネルプログラミングの場合だと、制御できないメモリが発生はプログラムのバグで、
OSのバグじゃないんですけど。


909 :NAME IS NULL:2006/01/29(日) 13:35:43 ID:???
メモリリーク:
プログラムがヘボで、一度OSから取得したメモリブロックを
使用終了後もOSに返さないままプログラム側でもポインタも失うこと。

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

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


使用メモリが増え続けること = メモリリーク、ではない。
フリーしてないメモリが増え続けること = メモリリーク、は正しい。
メモリリークの結果、使用メモリが増え続ける、のは正しい。
使用メモリが増え続ける = メモリリーク、とは限らない。

910 :NAME IS NULL:2006/01/29(日) 14:03:21 ID:???
早い話、増え続けるのでなければ全く無害。
偏執的に全てのメモリをfreeしろというのは>>888のような低脳プログラマでも
仕事できるようにするための規律にすぎない。

911 :NAME IS NULL:2006/01/29(日) 14:07:44 ID:???
free()したからといってOSにメモリが返却されるとは限らない(以下例の奴

912 :NAME IS NULL:2006/01/29(日) 14:49:15 ID:???
メモリ3GBつんで半日に1回再起動させてるから問題なし

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


914 :NAME IS NULL:2006/01/29(日) 17:05:39 ID:???
>>913
組み込み系の真面目なプログラマが聞いたら怒るぞ。
おまえが土方仕事しかやってないってことはよくわかったから、もう来なくていいよ。

915 :NAME IS NULL:2006/01/29(日) 19:26:50 ID:???
こんなとこでfjばりのキモい論争は勘弁してくれ。

916 ::2006/01/29(日) 21:20:18 ID:w90V2ZdU
ゴールデンレター)
このスレを見た人はコピペでもいいので30分以内に
7つのスレへ貼り付けてください。
そおすれば14日後、好きな人に告白され、
17日後にはあなたに幸せがおとずれるでしょう


917 :NAME IS NULL:2006/01/29(日) 22:27:04 ID:???
これだから、Unix系はバカなんだよ。

918 :NAME IS NULL:2006/01/29(日) 22:39:20 ID:???
SQLite3 API を正しく使っていればメモリリークするなんて俄かには信じ難いのですが、
一体どんなコードでメモリリークが再現するのか >>888 さん見せていただけませんか?

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

こんなことを言うUnixプログラマはバカなんだよ。


920 :NAME IS NULL:2006/01/29(日) 23:01:05 ID:???
>>919
いやー、君ほどじゃないけど

921 :NAME IS NULL:2006/01/29(日) 23:04:36 ID:???
低脳888氏を弄るのも飽きてきたので別の話題を頼む

922 :NAME IS NULL:2006/01/29(日) 23:17:28 ID:???
>>921

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

おつかれ、910。


923 :NAME IS NULL:2006/01/29(日) 23:18:55 ID:???
>>922
まだ居たのか、低脳。はやくどっか池。

924 :NAME IS NULL:2006/01/29(日) 23:19:52 ID:???
業務アプリにSQLite3を埋め込んで負荷テストやったけど、
メモリリークは報告されなかったよ。

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

>>888がヘボプログラマでFA。


925 :NAME IS NULL:2006/01/29(日) 23:27:36 ID:???
>>924
結局>>888はフリーしてないメモリブロックがあるというデバッガメッセージを
一目見ただけで鬼の首を取ったように騒いだだけなんだろうな。

926 :NAME IS NULL:2006/01/29(日) 23:54:29 ID:???
>>923
910おつかれ。

927 :NAME IS NULL:2006/01/30(月) 00:20:38 ID:???
>>923
能無し雑魚がまだいたの?
お前みたいな下等生物が居ていい板じゃないんだよここは。な?

928 :NAME IS NULL:2006/01/30(月) 20:54:23 ID:???
SQLite3自体にメモリーリークはない、でFA?
それとも命令や使い方によってはあるのかな?

929 :NAME IS NULL:2006/02/01(水) 13:21:42 ID:???
2006-Jan-31 - Version 3.3.3 stable

早い、早すぎるよ。

930 :NAME IS NULL:2006/02/01(水) 13:57:01 ID:???
ホンマにstableでええんか?って思うね。
個人的に3.3.6ぐらいまでは様子見。

931 :NAME IS NULL:2006/02/01(水) 14:09:11 ID:???
2chブラウザJane Doe Style にsqlite.dllが入ってた

932 :NAME IS NULL:2006/02/01(水) 20:38:49 ID:???
3.3.3 stable に対応するODBCドライバはまだないの?
フォーマットが変わったのでSQLSpyもCSEも全滅じゃん。

933 :NAME IS NULL:2006/02/01(水) 20:49:52 ID:???
あちこちで3.3.3に悲鳴が上がってる

934 :NAME IS NULL:2006/02/01(水) 20:53:14 ID:???
>>932
まだ3.3.3使ってないから誤解してるのかもしれんが、ソースからコンパイル&リンク
し直せばいいって問題じゃないの?

935 :NAME IS NULL:2006/02/01(水) 21:42:21 ID:???
sqlite.dll を置き換えれば収まるような問題では無い?

936 :NAME IS NULL:2006/02/01(水) 22:27:00 ID:???
>>803

937 :NAME 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らしい。


938 :NAME IS NULL:2006/02/02(木) 20:14:32 ID:???
3.3.3でpython-sqliteのバグが顕在化してPython関係が全滅状態。

939 :NAME IS NULL:2006/02/02(木) 20:27:34 ID:???
だから地雷だっつっただろー。

940 :NAME IS NULL:2006/02/02(木) 20:46:01 ID:???
>>938 を SQLite3 のバージョンアップのせいにするのはお門違いっつーか。

941 :NAME 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プログラマはバカなんだよ。


942 :NAME IS NULL:2006/02/03(金) 19:51:44 ID:???
>>941
ごめんなさい。こういうとき、どんなレスをすればいいのかわからないの。

943 :NAME IS NULL:2006/02/04(土) 02:28:05 ID:???
>>942
必ず、ファイルは閉じて、メモリは解放する。

944 :NAME 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/     ',

945 :NAME IS NULL:2006/02/10(金) 10:23:03 ID:???
sage

946 :NAME IS NULL:2006/02/10(金) 18:29:26 ID:???
age

947 :NAME IS NULL:2006/02/12(日) 00:09:43 ID:???
2006-Feb-11 - Version 3.3.4

948 :NAME 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

949 :NAME IS NULL:2006/02/13(月) 15:04:40 ID:???
うへえ

950 :NAME IS NULL:2006/02/13(月) 15:51:31 ID:???
おひぃ

951 :NAME IS NULL:2006/02/13(月) 15:56:48 ID:???
あはぁ

952 :NAME IS NULL:2006/02/14(火) 00:38:23 ID:???
らめぇ

953 :NAME IS NULL:2006/02/14(火) 09:16:37 ID:???
あぁぁぁ


954 :NAME IS NULL:2006/02/17(金) 22:09:04 ID:???
sqliteを長時間使っている時点でダメポ。
他のまともなRDB使え。

955 :NAME IS NULL:2006/02/17(金) 23:08:14 ID:???
>>954
うちはへっちゃらですけど・・・

956 :NAME IS NULL:2006/02/19(日) 17:27:22 ID:???
やっぱりSQLiteは使い手を選ぶね。

957 :NAME IS NULL:2006/02/19(日) 21:24:59 ID:???
それが SQLiteの欠点だな。

958 :NAME IS NULL:2006/02/19(日) 21:58:11 ID:???
読解力ないね。

959 :NAME IS NULL:2006/02/19(日) 23:08:52 ID:???
選民思想キモス

960 :NAME IS NULL:2006/02/21(火) 02:14:31 ID:???
まあ普通のRDBならちゃんとセッション管理してくれるけど、sqliteは開きっぱで忘れてリソース喰われまくり。

961 :NAME IS NULL:2006/02/21(火) 02:24:03 ID:???
> sqliteは開きっぱで忘れて

自分のミスを SQLite のせいにするかね。

962 :NAME IS NULL:2006/02/21(火) 02:27:22 ID:???
>>960
お。低脳君久々の登場ですね。

963 :NAME IS NULL:2006/02/21(火) 11:41:56 ID:???
       │
       J >>960
  ∩_∩    ∩_∩
 (・(ェ)・ )   ( ・(ェ)・)

964 :NAME IS NULL:2006/02/21(火) 19:02:57 ID:???
開いたら閉じるという「簡単なこと」がなぜ出来ないのかねぇ。

965 :NAME IS NULL:2006/02/21(火) 19:23:02 ID:???
>>964
>>960 によると、「普通のRDB」なら閉じなくても開きっぱにならないんだそうですよ。

966 :NAME IS NULL:2006/02/21(火) 21:51:49 ID:???
セッションタイムアウトで強制的に閉じられる。

967 :NAME IS NULL:2006/02/21(火) 21:56:44 ID:???
ライトなものを使いこなす能力のない人は普通のRDBでも使ってりゃいいじゃん。

968 :NAME IS NULL:2006/02/21(火) 22:04:27 ID:???
なにしろ名前がSQLiteだからね

969 :NAME IS NULL:2006/02/21(火) 22:27:46 ID:???
人の作った物にケチつけて自分が偉くなったような気分になってんじゃねーカス

970 :NAME IS NULL:2006/02/22(水) 02:00:04 ID:???
>>966は、Webブラウザなんかを作るときも、セッションタイムアウトまで
開きっぱにするらしい。

ひどい公害プログラマだなw

971 :NAME IS NULL:2006/02/22(水) 02:22:33 ID:???
>>970
もう少しおもしろいこと書けよ

972 :NAME IS NULL:2006/02/22(水) 02:33:03 ID:???
面白いプログラムは書けないくせに、人のことばかり言うんだな >> 971


973 :NAME IS NULL:2006/02/22(水) 09:29:39 ID:???
ふとんがふっとんだ

974 :NAME IS NULL:2006/02/22(水) 12:57:55 ID:???
わらちゃった(つД`)

975 :NAME IS NULL:2006/02/22(水) 16:06:15 ID:???
7000個のりんごがあります。今3000個追加しました。全部で何個になったでしょうか?

976 :NAME IS NULL:2006/02/22(水) 16:14:48 ID:???
データベースがロックされてて読めません

977 :NAME IS NULL:2006/02/22(水) 20:39:31 ID:???
ロールバックされたので7000個のままですた。

978 :NAME IS NULL:2006/02/22(水) 21:36:16 ID:???
正解は
おまんこ。

979 :NAME IS NULL:2006/02/22(水) 22:18:42 ID:???
何だこのカオスは

980 :NAME IS NULL:2006/02/23(木) 03:13:52 ID:???
>>975
はいはい一まんこ一まんこ。

981 :NAME IS NULL:2006/02/24(金) 16:00:36 ID:+IIz7SDv
age

982 :NAME IS NULL:2006/02/24(金) 17:15:45 ID:???
もうだめかもしれんね。


983 :NAME 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 てなんなんだよー

984 :NAME IS NULL:2006/02/24(金) 20:13:38 ID:???
httpdそれぞれがDB掴んで動く訳ないじゃん(w

985 :NAME IS NULL:2006/02/25(土) 00:19:34 ID:???
また開いたら閉じるができない香具師か

986 :NAME IS NULL:2006/02/25(土) 07:40:37 ID:???
複数動いて握りっぱなしなら動かなくても納得するんだけど、
apache起動して一発めでもダメなもん?

987 :NAME IS NULL:2006/02/25(土) 08:07:43 ID:???
開発環境と鯖のSQLiteのバージョンが合ってないとか。
DBのファイルが壊れているとか。

988 :NAME IS NULL:2006/02/25(土) 09:35:47 ID:???
次スレ
http://pc8.2ch.net/test/read.cgi/db/1140827718/

989 :NAME IS NULL:2006/02/25(土) 10:45:06 ID:???
起動した瞬間にDB握ってる。mod_perlロードしてるでしょ。

990 :NAME IS NULL:2006/02/25(土) 16:00:49 ID:RhNDLCTJ
なんだかんだでSQLiteへ乗り換えてる香具師もいるっぽい
http://www.outdex.net/diary/archives/2006/01/sqlite.shtml

991 :NAME IS NULL:2006/02/25(土) 16:27:12 ID:???
ああ BerkeleyDB からの乗り換えか。そりゃ乗り換えたくもなる罠。

992 :NAME IS NULL:2006/02/25(土) 16:59:26 ID:???
>>987
全く同じ環境でmod_perlを有効にしてないときはちゃんと動くのよね。
mod_perlありだと単純に select 10 とかやっても答えが返ってこない。
>>989
確かにmod_perlだけど、どうやったら起動時にDB握るの?
connectするまでは握るDBすら決まってないんだから。

993 :NAME IS NULL:2006/02/25(土) 20:18:27 ID:???
Apache::DBI->connect_on_init

994 :NAME IS NULL:2006/02/25(土) 20:33:31 ID:???
>>992
リクエスト毎に disconnect してもダメなん?

995 :NAME IS NULL:2006/02/26(日) 08:20:02 ID:???
>>994
ダメなん。ていうか一番最初のクエリからしておかしいので。
ぐーぐる様に聞いても同じような症状で困ってる人は見つかっても
解決したって話が出てこない。
mod_perl外すのは厳しいから、違うDBMSにするかdbm方面に逃げるか
かなぁ。

996 :NAME IS NULL:2006/02/26(日) 20:58:01 ID:???
>>983
ttp://multix.jp/cgi-bin/cdiary2/2003-04-04.dml.html
>mod_perl 環境下でやっちゃダメなものをいくつか。

参考になるかね?

997 :NAME IS NULL:2006/02/26(日) 21:21:05 ID:???
再現コードぷりーず。

次スレで。

998 :NAME IS NULL:2006/02/27(月) 09:17:18 ID:???
次スレ
http://pc8.2ch.net/test/read.cgi/db/1140827718/

999 :NAME IS NULL:2006/02/27(月) 10:25:43 ID:???
もうだめかもしれんね


1000 :NAME IS NULL:2006/02/27(月) 10:26:33 ID:???
やった、初1000。


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

238 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)