トップページ⇒db
1001コメント297KB

sqliteを語るスレ

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@お腹いっぱい。03/06/30 16:01ID:3hdiLYQO
とりあえず立てときますた

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

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

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

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

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

PHPでPEAR DBインターフェイスで使ってます。
コマンドラインからCSVから一括インポートできないのが今面倒。
それくらい自分で作れってわかってはいるけど。
あと、完全なカラム名入りのINSERT文でダンプできないのも面倒。
0016NAME IS NULL03/11/05 13:36ID:???
delphiのラッパーでやろうと思ってるんだけど、、、
0017NAME IS NULL03/11/06 22:49ID:???
こんなツールもありますね。
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
0018NAME IS NULL03/11/15 19:28ID:pb0zFJJB
sqliteのワイド文字対応版ってない?
0019NAME IS NULL03/11/26 09:28ID:hrsdO7GB
.NETユーザーにとても便利。
SQLite用のADO.NETデータプロバイダSQLite.NET登場。
http://sourceforge.net/projects/adodotnetsqlite
まだα版ながら.NET Framework上ですでに動作。
これでODBCドライバもDSN登録もいらなくなった。
0020NAME IS NULL03/11/29 15:59ID: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で接続する。
0021NAME IS NULL03/11/29 21:01ID:???
>>20
情報ありがとう。でも、

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

これが面倒(と感じる人もいるよね)。
0022NAME IS NULL03/12/01 00:51ID:???
PHPで使おうと思ってるんですが、日本語(EUC)は通りますか?
00232003/12/01 09:34ID:O/R85Nmb
ODBCドライバのインストールは一度やっとけばいいやと思うけれども、
データソースネームの登録をデータベースごとにいちいちやるのは
本当にうっとうしい操作で嫌いです。
でも今の所こうするしかないようで・・・いい手あったら教えて下さい。
JScriptやVBScriptなどからSQLiteやJetを使うときは 、
DSNなしでドライバ名とファイル名を直接指定する接続の方を
使っちゃうんですが、この手はどこでも通用するわけではないようで。
0024NAME IS NULL03/12/01 16:34ID:???
API経由で作れるんだから、必要なときにその場でスクリプトから
作ってしまうのはどうか
0025名無しさん@Linuxザウルス03/12/01 19:55ID:fM+FlLdE
コンパクトなので組込用途にも使えそうでつ。
00262303/12/02 09:12ID:UGNuLnLW
>>24
データソースネームの登録をスクリプトからしてしまうということでしょか。
できるかも。方法を調べてみます。
00272303/12/02 10:31ID:/D3psl+q
ありました。DSN登録はスクリプトでもできそうです。
「ファイルDSNを使用して接続する」
http://homepage2.nifty.com/inform/vbdb/filedsn.htm
というVBでのサンプルみつけました。これを応用すればできそうです。
00282303/12/02 11:00ID:/D3psl+q
あれ。APIを使うならこっちでしたか。
「ODBCデータソースの登録・削除 (API) 」
http://homepage2.nifty.com/inform/vbdb/api_dsn.htm
何度も失礼しました。
0029NAME IS NULL03/12/05 14:41ID: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
0030NAME IS NULL03/12/05 22:33ID:???
>>29
何回おきにcommitした?
0031NAME IS NULL03/12/05 22:34ID:???
ああ、INSERTと読み間違えた。
ごめんなさい。
0032NAME IS NULL03/12/06 07:47ID:Y3cvNAdD
データ投入のスピードはどうよ、おねーさん
0033NAME IS NULL03/12/06 21:12ID:???
sqlite_create_function() や sqlite_create_aggregate() って
どんなことに使ってる?
0034NAME IS NULL03/12/07 18:13ID:???
>>29
SQLiteの設定値は?
速度あげるためにチューニングした?
0035NAME IS NULL03/12/07 22:27ID:???
>>34
そんなチューニングがあるのかい?
0036NAME IS NULL03/12/09 01:31ID:???
MySQL使わない?としてSQLiteを使うのだろうか?
PHPにSQLiteが搭載されてもPostgreを使うのではと思う俺。
いやいやMySQLが擦り寄ってくるのでは?と期待する俺。


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

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

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

具体的にどんなことになったの?
0048NAME IS NULL04/01/05 11:44ID:gQ8zMdLQ
NULLの扱いがよくわからん!
00494604/01/06 10:49ID: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で読む指定は何とかできるかもしれないけど、一般的には
もう汎用性がなくなって、用途によっては困ると思います。
0050NAME IS NULL04/01/06 15:45ID:???
>>49
SQLite以前に型チャックちゃんとしようぜ。
Double型に文字列を投入しちゃうようなプログラムはダメだ。
00514604/01/07 09:06ID:UJmgjzrz
>>50
けっきょく、そういうことです。
型のないSQLiteに型チェックなんかないし、
型をつければ、それをスキーマから読んであてにしようとするプログラムは
あるんだから。いっそ型を付けない方が正しい。型はないんだから。
>SQLite以前に型チャックちゃんとしようぜ。
0052NAME IS NULL04/01/07 16:10ID:???
>>51
型はつけなよ。他のDBからテーブルをインポートしたり
エクスポートしたりするときそのまま持ってけるから便利じゃん。
君の場合は使ったADO.NETのラッパー?が型のチェックを
ちゃんとしてないだけじゃろ。
0053NAME IS NULL04/01/07 21:34ID:???
>>49
Date型のカラムに '2004-01-02' という値が紛れ込んでてエラーになったという話ですか
どうしてそんなことに?

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

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

>>53
元はMySQLのデータベースに入れてたデータなんです。
MySQLは Date型の書式に ISO準拠の国際標準書式"yyyy-mm-dd"を採用していて、これ以外ははねられる。
だからこれをSQLiteにそのままインポートしても全部 '2004-01-02'の書式。日付は例でした。
変換してからインポートが正しい? ISO書式じゃだめ?
どうせSQLiteは Date型にすれば日付計算がサポートされるなんてわけないから、
Date型を付けなけりゃうまくいったのに、との後悔だったんだけど・・・
00554604/01/08 14:50ID:wdL+QGFi
>>52
ラッパーの件がありました。たぶん、そこの問題じゃないです。
ADO.NETでも高級な DataSetでの例だったんです。
低級で高速な DataReaderでは、明示しなけりゃDateTime型にデータを投入しませんから、
もともと問題なしです。
00564604/01/08 17:41ID: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は受け付けるけれど」
が誤解の元でした。失礼しました。
0057NAME IS NULL04/01/08 18:37ID:???
まあこれでも読め。

** 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.
0058NAME IS NULL04/01/08 18:43ID:???
ついでにこれも読めや。

/*
** 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;
}
00594604/01/09 10:57ID:vDXjRDTC
>>57 >>58
ずばりサポート、ありがとうございました。
訂正: ラッパーが対応していないも正解でした。
やることが山ほどできました。
0060NAME IS NULL04/02/10 22:26ID:1wsqz1Hs
SQLiteManagerはなかなかいい。

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

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

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

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


0069NAME IS NULL04/02/23 16:56ID:aEcQvCoc
最初は、alter table を使おうとして動かずあせった。
ドキュメント見直したらサポートしてない、とあって、
じゃあどうすりゃいいんだと、またもあせった。
答えは単純なのであった。
0070NAME IS NULL04/02/23 22:12ID:???
このスレには詳しく調べる前に
すぐに文句を言っちゃう人が多いですね・・・。
0071NAME IS NULL04/02/24 01:56ID:???
>>70
2ちゃんねる全体の傾向です。
0072NAME IS NULL04/02/24 09:21ID: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も追加サポート。
0073NAME IS NULL04/02/24 22:53ID:???
ワラッタ
Excel の表みたいだな。
00746204/02/25 18:20ID:UqpphvZs
>72
公式には「バックアップとって,dropして,createして,コピーすれ」って
書いてありますね.パフォーマンスはひどいと思われますが...
http://www.sqlite.org/faq.html#q13
私は a,b,...,z じゃないけど,列に「予約」を加えることにしてます.
0075NAME IS NULL04/02/25 20:23ID:???
パフォーマンスはあまり気にならないのでは
1回だけだし
0076NAME IS NULL04/02/25 20:35ID:???
ちょっとは自動化できるスクリプトかバッチファイルでも作ってみるかな。
0077NAME IS NULL04/02/26 00:12ID:1lxCODMs
PHPと連携して、管理システムを構築した。

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

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

後はプロシージャさえ組めれば・・・・・
0078NAME IS NULL04/02/26 09:25ID:???
サービスとして起動しておく必要がないのに、とても高速で使えるよね。
これだけコンパクトだと、組み込み用途で重宝というのもよくわかる。やったことないけど。
PHP5で知名度が上がれば「SQLite本」出るかな。
0079NAME IS NULL04/02/26 13:29ID:???
>>74
もうすこし効率のいい方法があったような気がしたけど
やりかた忘れた・・・
0080NAME IS NULL04/03/01 01:16ID: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してますね。
0081NAME IS NULL04/03/01 10:02ID:???
>80
この場合は「行を追加」ではなく「列を追加」でしょうね。
行を追加するInsertのサンプルに上がっているけどね。よく見つけたな。
0082NAME IS NULL04/03/01 10:45ID:LObuw1/6
結局、新しいテーブルを作ることは簡単だが、元のデータを移そうと思うと、
同じ名前の別テーブルに、名前の衝突を回避しながら入れ替えることは
ステップを踏まないと出来ないということだな。
0083NAME IS NULL04/03/03 10:09ID:???
(゚Д゚)ハァ?
0084NAME IS NULL04/03/03 11:51ID:???
  | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
  |   ハァハァ禁止!  |
  |________|
      ∧∧.||
    ( ゚д゚)||
    / づΦ
0085NAME IS NULL04/03/03 20:41ID:???
(゚д゚)ハーン?
0086NAME IS NULL04/03/04 17:40ID:3W8zShnU
日本でもフリーなPHPスクリプト配布する人が増えているが
海外に比べるとDB使っている人が非常に少ない。
理由はやはりレンタルサーバが対応している所が少ないからってのがあると思う。
で、それが>>77-78の理由で大ブレイクする予感。
0087NAME IS NULL04/03/04 18:05ID:???
クマー!!(・∀・)
http://www5e.biglobe.ne.jp/~yb_net/clip/img/14872.jpg
00888004/03/05 08:16ID:???
>>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内で自動的にできたらいいなぁとか思って
ソースのぞいてみたけど、カラムの型なんかいちいち調べてたら
時間かかりそうだし・・・
0089NAME IS NULL04/03/05 20:03ID:kZCYuHRE
Sqlite で JDBC接続している人いませんか?
英語のサイトを読みつつ 接続したのですが うまくいきません
JAVAでウィンドウズ2000でやっている人いないかな 
0090NAME IS NULL04/03/05 22:08ID:???
トリビア

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

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

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

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

だな。MySQL、もうイラネ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

あと、今のところ単純なラッパーを越える使い勝手のC++ライブラリが存在しないんですが、
ACCESS VBAのADODB.Recordsetライクな使いやすいアクセスライブラリってどこかに落ちてませんかね?
板違いならスマソ。
0139NAME IS NULL04/05/06 18:29ID: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
かな。
014013804/05/06 19:26ID:kuYQWsdl
>>139
>なんかすごいこと言いますね。
>ロケール文字列をDBに入れるってすげーありえねー。

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

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

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

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

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

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

ソースキボン
プログラム板のスレタイトル眺めて、多国語対応でググってみたが、
いいサイトが見つからない
0151NAME IS NULL04/05/09 15:45ID:???
>>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も似たしくみのはず。
015213904/05/10 08:14ID:Is7LBGNM
>>147
私も最初思ったw
もまえ本当にC++でGUI作ってるのかと。VB極めたあと
MFCでHelloWorldってるだけちゃうんかと。
まー、>>149の言うようにそんなにおかしい事を言ってるわけでは
ないわけで・・・

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

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

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

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

SQLiteのデータ型
第1節 型なし
SQLiteは「型なし」である。これは、そのカラムに宣言されたデータ型に関わらず、どのテーブルのどんなカラムにも君が望むあらゆる種類のデータを蓄積できる、という意味である。(このルールのただ一つの例外は、次の第2節を見よ。)この動作は仕様であってバグではない。
データベースはデータを蓄積し、復元しなければならないものであって、どんな形式のデータが入るかはデータベースには関係のないことである。
他のほとんどのSQLエンジンに見られ、SQL言語の仕様に定められている強い型システムは、間違った仕様である。この間違いはインターフェースの中に現れる実装の一例である。
SQLiteは、こうした間違った仕様の克服を求める。あらゆる種類のデータをあらゆるカラムに蓄えることを君にまかせ、データ型の定義に柔軟さを認めることによって。
0154NAME IS NULL04/05/10 20:37ID: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 使ってて、まだ持ってなかったのかい。
0155NAME IS NULL04/05/12 14:42ID:???
http://www111.sakura.ne.jp/~hanyan/todouhuken/00-chizu/futama-nihon-moe2.jpg
0156NAME IS NULL04/05/18 16:19ID:ZavbGlbD
SQLite コマンドチュートリアル(翻訳版)
ttp://www.net-newbie.com/sqlite/sqlite.html
SQLite SQLリファレンス(翻訳版)
ttp://www.net-newbie.com/sqlite/lang.html
0157NAME IS NULL04/05/19 18:07ID:???
SQLiteをC++で使いたいけど英語が苦手なんで
昨日から少しずつ翻訳してるのですが、
うまく日本語になってないところ・・・というより
意味不明なところが多すぎる _| ̄|○

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

って書いてあるのに、SQLiteDatabaseクラスに関する
記述はどこにあるねん。
0216NAME IS NULL04/09/01 00:09ID: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 の安定版がもうすぐ出そうだし、今手を出すのはためらうな…
0217NAME IS NULL04/09/01 00:14ID:???
ちなみに 3.0 系では「型アリ」になる予感
0218NAME IS NULL04/09/01 00:34ID:???
連書きすまソ
久しぶりに本家のwiki見たら、SQLite使ってるひとのコーナー

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

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

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

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

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

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

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

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

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

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

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

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

と書いてみたけど、勘違いしている可能性大。
0232NAME IS NULL04/09/21 23:36:06ID:???
変なひとは放置の方向で。>all
0233NAME IS NULL04/09/23 14:49:59ID: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にハマる使い方ってもうないの?
0234NAME IS NULL04/09/23 15:02:09ID:???
3.0 安定版(3.0.7)キタ━━━━(゚∀゚)━━━━ッ!!
0235NAME IS NULL04/09/24 10:13:49ID:???
みんな SQLITE_BUSY が返る場合のことを意識してコード書いてる?

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

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

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

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

ご存知でしたら教えてくださいm(_ _)m
0240メモ04/11/16 04:18:59ID:???
>4-5
phpSQLiteAdmin
0241NAME IS NULL04/11/16 11:11:39ID:stpfuOmw
>>239
DataTable.Rows.Count ではどうでしょうか。用が足りませんか。
0242NAME IS NULL04/11/16 12:59:26ID: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 の標準にないからでしょう。
標準の機能を駆使して間に合わせる方が、早そうに思えます。
024323904/11/17 13:06:43ID:???
>>241
>>242
ありがとうございました。
いじってみます。

C#, ADO.NETも平行で勉強しているので混乱気味です。
0244NAME IS NULL04/11/17 14:20:50ID:???
>>240
2種類あるようだな。
俺はsourceforgeのを使ってる。
0245NAME IS NULL04/11/19 00:41:35ID:???
SQLite試してみたけど、これって日本語が文字コードそのままで入っちゃうのね。
ラッパー噛ますか、自分でコンバータ書かないと駄目なのかな。
0246NAME IS NULL04/11/25 22:23:56ID:???
エスキューライト? スクライト?
0247NAME IS NULL04/11/25 23:04:04ID:???
(・∀・)シークァライト!!
0248NAME IS NULL04/11/26 00:59:48ID:???
エスキューエル いて
0249NAME IS NULL04/12/11 04:26:24ID:???
ADO.NET Data Provider for SQLite
パスに日本語が入ってるとあぼーんする…orz
0250NAME IS NULL04/12/13 09:35:12ID:oxhzl4xo
SQLiteについて質問。
1、ストアドプロシージャは使えますか?
2、トランザクションは実装されてますか?
0251NAME IS NULL04/12/13 23:09:16ID:???
とりあえず http://www.sqlite.org/lang.html 検索汁
0252NAME IS NULL04/12/14 14:08:53ID:sBR5K/AY
SQLite(DLL)をDelphiで使うには、どのようにしたらいいのでしょうか。
0253NAME IS NULL04/12/14 14:22:39ID:???
>>252
SQLite Delphi Components
ttp://www.aducom.com/sqlite/
025425204/12/14 14:25:33ID:sBR5K/AY
253>
ありがとうございます。
しかしながら、D6のパーソナルだったり。
データベース関連のユニットないんです。
0255NAME IS NULL04/12/15 02:30:36ID:???
>>250
1. ない
2. されてる
0256NAME IS NULL04/12/15 18:58:27ID:???
>>255
サンクス
0257NAME IS NULL04/12/20 12:30:56ID:U2fIrr/6
ADO.NET Data Provider for SQLite
とりあえず日本語は通るみたいだけど、ファイルのパスどうしてる?
0258NAME IS NULL04/12/20 23:31:34ID:???
>>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使おうかな
0259NAME IS NULL04/12/21 11:14:53ID:???
ソースも配布されてるんだから、デバッグしてみ。
0260NAME IS NULL04/12/21 13:13:02ID:MSZ78en0
>>258
日本語のパスが通らないぞ、という話。
再現できなくてヘンだぞ〜と思っていたら、自分は古いバージョンを使っていた。
SQLite2 のみ対応していた Version 0.18 (July 01, 2004)
までなら日本語パスが使えていた。Version 0.19 と最新 0.20 では確かにダメ。
とりあえず、デバックのヒントということで。
026125804/12/21 21:17:33ID:???
情報ありがとうございます。

わかる範囲でソース追いかけてみます
0262NAME IS NULL04/12/22 09:24:02ID: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 の方は、わざわざそれを使っていることに理由ありなら、
まずい変更ということになるわけで、ソースをまだ追跡してないので、
あてにせずに自分でチェックして下さい。
0263NAME IS NULL04/12/22 14:34:23ID:???
そもそも、ファイルオープン時にファイル名まで
わざわざ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);

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

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

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

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

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

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

非常に感謝した。
0270NAME IS NULL04/12/27 12:27:32ID: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 にも無関係。
0271NAME IS NULL04/12/27 13:25:39ID:???
Defaultはともかく、Shift-JIS決め撃ちはよろしくないな。
Winのコードは、正確にはShift-JISじゃないし。
まぁ、何にしてもUTF-8使おうぜ。
027227004/12/27 14:10:38ID:bP0BeZGo
確かに。これからは UTF-8 を使うのが推奨。
0273NAME IS NULL04/12/30 17:41:45ID:FzyFXvYT
C# で SQLite 使うに
SQLite Query Analyzer (SQLiteQA) は実用にもなるけど、
ソースも参考になりますです。
http://www.monkeyshinez.net/SQLiteQA/
0274NAME IS NULL04/12/30 22:09:30ID:???
unicodeなんて糞
今までどおりeucかsjisでええわ
0275NAME IS NULL04/12/31 19:03:34ID:???
> までどおりeucかsjisでええわ
m9(^Д^)プギャー
こういう奴が、MS932と純Shift-JISの区別もつかずに
DBに文字放りこんでるんだろうな。
0276NAME IS NULL05/01/01 00:20:55ID:???
UTF8 って MS932 の文字も含まれているの?
0277NAME IS NULL05/01/01 04:48:25ID:???
>>275
しつれいだがどういう繋がりが?
0278NAME IS NULL05/01/01 10:34:56ID:???
>>277
文字コードの話が出ると必ずこういうのが沸いてくるのはもう仕方ない。
普通にスルーしとけ。
0279NAME IS NULL05/01/01 11:28:51ID:???
Perl DBD::SQlite で使ってみてるんですが、LIKE 構文でちょっとはまってます。

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

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

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

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

$_ = '%_\\';
print "$_ => ";
$_ =~ s/([%_\\])/\\\1/sg;
$_ = "%$_%";
print "$_\n";
0282NAME IS NULL05/01/02 10:39:43ID:???
これからSQL勉強するのにお勧めの本ってある?
028327905/01/03 04:28:16ID:???
>>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件もマッチしません。
0284NAME IS NULL05/01/04 21:46:21ID:???
> "SELECT * FROM files WHERE namer LIKE '
これはOKなのか?
入力ミスかどうか知らんけど。
028528305/01/06 01:24:06ID:???
>>284
すいません、そこは貼り付ける時の編集ミスです
0286NAME IS NULL05/01/06 21:28:40ID:hqOqZvbU
APACHE2 + PHP5 + PDO + SQLite3 使っていますが何か?
0287名無しさん@Linuxザウルス05/01/06 22:31:57ID:???
>283
sqlite単体でもそういう結果返ってくるね
PHPはどう処理してるんだろうと思ってソース覗いてみたけど
俺にはさっぱりだったよw
0288NAME IS NULL05/01/07 13:07:13ID:???
何か、と言われても
そっれがどうした僕ドラえもんって感じだ。
0289NAME IS NULL05/01/07 22:23:15ID:???
>>286
どこで、が重要。ローカルなら普通すぎ。
0290NAME IS NULL05/01/09 15:37:51ID:???
PHPでSQLite使いたいのですが、
mbstring.internal_encodingがEUC-JPの状態で
UTF-8しか対応していないという噂のSQLiteに日本語をそのままつっこんで
SELECT * FROM table WHERE hoge LIKE '%あ%' とかもふつうに使えるようなのですが、

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

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

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

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

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

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

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

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

列追加はちょっといいかな?
0315NAME IS NULL2005/03/28(月) 10:21:23ID:???
うん。かなり嬉しい。
0316NAME IS NULL2005/03/31(木) 21:11:39ID:S6NJNymo
3.2.1 age
0317NAME IS NULL皇紀2665/04/01(金) 11:57:56ID:WCU4nkIR
SQLiteはいつになったらストアドプロシージャに対応しますか?
0318NAME IS NULL皇紀2665/04/01(金) 12:18:15ID:???
>>317
えーっと、sqliteでそれが出来る意味ってあるの?
0319NAME IS NULL皇紀2665/04/01(金) 12:39:04ID:???
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.

コメントとコマンドってずいぶん違うな
0320NAME IS NULL皇紀2665/04/01(金) 15:27:20ID:???
>>318
速度的な面というより他のDBとの互換性の問題で
必要性があるんだが。
0321NAME IS NULL皇紀2665/04/01(金) 15:37:38ID:???
>>320
詳しく!
0322NAME IS NULL2005/04/02(土) 13:57:56ID:???
DB”MS”ではないsqliteにはいらない機能だろ。
っていうかどうやってつかうん??
だいたい、ストアドなんてDBMS間でも互換性低いし。
0323NAME IS NULL2005/04/02(土) 15:53:45ID:???
例えばDBが変更になる可能性がある場合に
SQLの標準ではない関数はストアドファンクションにして
抽象化してしまうとかってやらない?
0324NAME IS NULL2005/04/02(土) 18:48:27ID:???
>>323
お前はやったことあるのか?
0325NAME IS NULL2005/04/02(土) 22:03:04ID:???
create_function()があればそれでいい気が駿河
0326NAME IS NULL2005/04/03(日) 00:05:25ID:???
>>325
何それ?
0327NAME IS NULL2005/04/03(日) 00:19:33ID:???
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は知らん。
他の言語も知らん。
0328NAME IS NULL2005/04/03(日) 00:59:25ID:???
>>325
激しく同意。
>>327
Cインターフェースに同名のがある。他言語のやつはこれのwrapperだな。
0329NAME IS NULL2005/04/06(水) 19:33:56ID:nkLoBP4Q
PHP5+PDO_SQLite+SQLite3使っている人いるか?

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

0330NAME IS NULL2005/04/07(木) 09:04:06ID:???
commit したか?
0331NAME IS NULL2005/04/08(金) 15:38:37ID:+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の「ほげほげ」が返ってこないんだ?
0332NAME IS NULL2005/04/08(金) 18:03:26ID:???
そのSQLをUTF-8で保存して実行してみた。

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

多分、文字コードの問題かと思われる。
0333NAME IS NULL2005/04/10(日) 12:19:44ID:???
なるほど。UTF-8 だと
1|ほげ
2|ほげほげ
が返りますねえ。
Ver.2.8.15 の SQLite.exe なら、Shift-JIS でも UTF-8 でも、
「ほげほげ」も返ったよ。
SQLite3.exe で Shift-JIS のときだけ、違うのか。
0334NAME IS NULL2005/04/10(日) 22:21:48ID:???
つかSQLITE_UTF8とSQLITE_ISO8859どっちでコンパイルしたんだ
03353332005/04/11(月) 10:40:34ID:???
これは、全部 Precompiled Binaries For Windows
の配布バージョンでの結果。どっちなんでしょー。
0336NAME IS NULL2005/04/11(月) 10:49:36ID:???
自分でコンパイルした方がいいかもしれんな。
0337NAME IS NULL2005/04/11(月) 20:12:31ID:???
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の時は無かったよなぁ。
0338NAME IS NULL2005/04/15(金) 12:13:49ID:???
SQLiteってなんて読むの?
0339NAME IS NULL2005/04/15(金) 12:20:32ID:???
しーけらいと
0340NAME IS NULL2005/04/15(金) 12:41:05ID:???
すくりて
0341NAME IS NULL2005/04/15(金) 13:18:32ID:???
俺はえすきゅーらいとって読んでるけど正しいのかどうかは知らん
0342NAME IS NULL2005/04/15(金) 13:40:07ID:???
俺もえすきゅーらいと
0343NAME IS NULL2005/04/15(金) 15:33:54ID:???
PostgreSQL はポスグレ
SQLite はエスキュレ
MySQL はマイスキュレ
0344NAME IS NULL2005/04/15(金) 19:53:21ID:???
俺もえすきゅーらいとだけど正しいかどうか分からんよなぁ。
0345NAME IS NULL2005/04/17(日) 05:04:22ID:Jx/K/CRQ
sqliteって速いらしいけど実際どうよ?
http://pcweb.mycom.co.jp/special/2004/php5/006.html
ここの速度比較だとMySQLの方がほとんどの項目で若干速いらしいが。
データ型を宣言しなくても良いっていうのもどういう事なのか良く分からん。
内部的に、型が決まってる方がソートの時に役立つと思うんだがなぁ。
インデックスの出来も気になる。
全文インデックスはあるの?
0346NAME IS NULL2005/04/17(日) 11:48:00ID:???
型が決まってないってのは、そういう余分な判定処理を省いてるって事。
コンパクトな組み込みDBであるってのがSQLiteの売りなので、
本格的なRDBMS並の機能を使いたいなら、DBの選択が間違っているよ。
0347NAME IS NULL2005/04/17(日) 22:58:06ID:???
>345
そこの「お詫びと訂正」読んだ?
0348NAME IS NULL2005/04/18(月) 10:00:20ID:???
まあ、きっちりスレ読めばわかるように、(とりあえず、>>100 からあたりを読む)
SQLite でまとまった数のインサートするには、トランザクションを使わないと遅い。
使えばかなり速い、と覚えておかないと比較を間違うぞ、ということで。
0349NAME IS NULL2005/04/18(月) 10:11:46ID:???
SQLiteQA >>273 が、SQLite3 対応などのアップデートしたね。
0350NAME IS NULL2005/04/18(月) 10:22:03ID:???
Berkeley DBやNDBMが
SQLによる操作が可能になったもの、という解釈でいいの?
0351NAME IS NULL2005/04/18(月) 12:24:04ID:???
BerkeleyはLDAP構築した時によく潰れたから、二度と使うまいと思った。
NDBMはシラネ。
0352NAME IS NULL2005/04/18(月) 15:12:50ID:???
>>350
まあそんなとこ。
0353NAME IS NULL2005/04/19(火) 22:15:10ID:kUry0XBZ
SQLite3をインストールしたらコマンドラインのコマンドが
sqliteではなくsqlite3になってしまったのですが、
従来のSQLiteとSQLite3って別物なの?
0354NAME IS NULL2005/04/20(水) 11:07:06ID:???
>>353
SQLite と SQLite3 はデータベースファイルに互換性がないので、
ダンプしないといけないよ。あと、>>333 のような違いもあるか。
使い勝手はさほど変わんないけどね。

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

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

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

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

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

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

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

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

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

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

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

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

かなりバグも出尽くしてきたし、そろそろ移行を勧める。
0382NAME IS NULL2005/05/09(月) 11:31:33ID:???
現在RubyでSQLite使ってるんだけど
プログラム中でテーブルが作れないんだけど なにかわかりますか?
db = SQLite3::Database.open ( "database_name" )
db.transaction
db.execute( "create talbe t (id integer)" )
db.commit
db.close
03833822005/05/09(月) 11:33:41ID:???
db.execute( "create table t (id integer)" )
訂正
03843822005/05/09(月) 11:55:34ID:???
すいません 作成できましたorz
0385NAME IS NULL2005/05/09(月) 11:55:56ID:???
>>382
うちではそれでちゃんと作れてるけど?
何かエラーとか出てないの?ファイルやディレクトリのパーミッションは?
0386NAME IS NULL2005/05/09(月) 11:56:45ID:???
orz
0387NAME IS NULL2005/05/09(月) 22:15:03ID:???
イ�`
03882?2005/05/09(月) 23:52:42ID:???
もしかして プログラム上からは、DROP TABLE出来ない仕様とか?
0389NAME IS NULL2005/05/10(火) 00:53:14ID:???
いや、普通にできるだろ・・・
0390NAME IS NULL2005/05/12(木) 15:15:43ID:MipvxbrD
データベースについて質問
下のプログラムを一度に複数実行したとき
テーブルロックを起こします ロックを回避する方法はありますか?
それとも、私がデータベースそのものを勉強しなした方が良いんでしょうか・・・
〜
d = オープン
begin
d.transaction
d.excute("insert into テーブル(a,b) values("a","b")
d.commit
rescue
d.rollback
ensure
d.close
end
〜
0391NAME IS NULL2005/05/13(金) 01:48:50ID:Gb3T45gj
こんな便利なアプリはPerlくらいLinuxの標準になれればいいのにね。
0392NAME IS NULL2005/05/13(金) 01:51:46ID:???
>>391
SQLiteって、アプリの位置づけなのか・・・?
どちらかと言えばライブラリだと思うが・・・。
0393NAME IS NULL2005/05/13(金) 02:42:57ID:???
Perl もアプリじゃないと思うが・・・。
0394NAME IS NULL2005/05/13(金) 10:15:38ID:???
みんなアプリ
0395NAME IS NULL2005/05/13(金) 12:44:55ID:???
「プログラム」とか「ソフトウェア」って言えばいいのに「アプリ」なんて言うから。
0396NAME IS NULL2005/05/13(金) 13:27:02ID:???
細かいことを言うと、
アプリケーションとソフトウェアはほぼ同義。
プログラムはコードそのものを指すことが多い。
0397NAME IS NULL2005/05/13(金) 14:18:36ID:???
まあ俺定義なんだがな。
0398NAME IS NULL2005/05/13(金) 15:21:48ID:???
適用業務プログラム
0399NAME IS NULL2005/05/13(金) 21:04:47ID:???
業務アプリケーションは、業務適用業務プログラム
IBM 出身のおっさんは絶対にアプリケーションって言葉を使わなかったな

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



                                                   ション



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

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

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

王子様 ◆6XD48Lv1aI
こいつまだ生きてたんだな。
0415NAME IS NULL2005/05/22(日) 13:04:19ID:cF+W78bF
SQLiteってまさに俺の理想のDBなんだよなぁ。
ありがとうSQLiteの作者の人!
0416NAME IS NULL2005/05/22(日) 21:07:31ID:???
SQLiteがサポートしているSQLの一覧ってどこかにありませんか?
0417NAME IS NULL2005/05/22(日) 21:51:06ID:???
普通にあるよ。
0418NAME IS NULL2005/05/22(日) 22:46:43ID:???
公式サイトにあるよ
0419ながも○みずか2005/05/22(日) 23:32:20ID:???
ここにあるよ
0420NAME IS NULL2005/05/23(月) 07:38:24ID:???
それはどこにでもあり、どこにもない。
0421NAME IS NULL2005/05/23(月) 20:13:50ID:???
SQLiteのSELECT文で
SELECT hoge, 0 AS zero
FROM t_hoge;
みたいにやったらエラーになるんだけど、
AS演算子って使えないのかね?
0422NAME IS NULL2005/05/23(月) 20:47:01ID:???
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>

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

普及のためにも和訳できる人はがんがって。
0428NAME IS NULL2005/07/08(金) 15:21:25ID:BmV8B6lB
ログデータを突っ込もうと思うんだけど、sqliteってローテートっぽい事は出来ないですよね?
mysqlならmergeテーブルを使えば良いんだけど。
0429NAME IS NULL2005/07/08(金) 16:01:15ID:???
>>428
viewでいいんぢゃね?
0430NAME IS NULL2005/07/08(金) 17:09:08ID: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するとすごく重いです。
何か間違えていますか?
0431NAME IS NULL2005/07/08(金) 18:16:55ID:???
インデックス張ってないというオチはないよね?
04324292005/07/08(金) 18:46:47ID:???
>>430
うん。そのつもりで書いた。重複するレコードも含めて取り出したいのなら
UNION ALLでつないだほうがいいかもしれんが。

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

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

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

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

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

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

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

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

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

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

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

>>464 のは SQLite 2 の話ではない?
0473NAME IS NULL2005/07/20(水) 12:24:12ID:???
SQLiteでPostgreSQLのnow()に該当するものってありますか?
nowって文字列が入っちゃうんですが。。。
0474NAME IS NULL2005/07/20(水) 12:39:46ID:???
now()は知らんが、sqlite3だとCURRENT_TIMESTAMPが実装されてなかったっけ。
0475NAME IS NULL2005/07/20(水) 14:32:58ID:???
CURRENT_TIMESTAMPのほかにCURRENT_DATE,CURRENT_TIMEもあるね。
http://www.sqlite.org/lang_keywords.html より。
0476NAME IS NULL2005/07/20(水) 14:48:24ID:???
>>474-475
ありがとん。
PEAR::DBを使ってるんだけど、この当たりを自動で吸収はしてくれないんでしょうかね。
0477NAME IS NULL2005/07/20(水) 15:51:37ID:???
>>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
0478NAME IS NULL2005/07/20(水) 16:01:18ID:???
ついでにちょっと上の方で話題になっているロック関連ネタ。

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

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

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

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

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

.○| ̄|_=3 (SQLite3)
0518NAME IS NULL2005/08/03(水) 00:51:10ID:???
.orz
0519NAME IS NULL2005/08/03(水) 01:04:44ID:???
>>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
0520NAME IS NULL2005/08/03(水) 01:21:55ID:???
何かスレが伸びてるから、新しい展開があったのかと思ってきたら
0521NAME IS NULL2005/08/03(水) 03:56:41ID:???
>>519
よくわかんないから訳して。
0522NAME IS NULL2005/08/03(水) 10:17:04ID:???
>>521
意訳: WinXPだとsdbはAPPFIXに関連づけされてるからやめとけ。
0523NAME IS NULL2005/08/03(水) 10:24:50ID:???
拡張子とか関連付けとか、おまいらまさかWindowsで使ってるんでつか
0524NAME IS NULL2005/08/03(水) 10:50:43ID:???
>>523
Windows「でも」使ってるよ。これからはクロスプラットフォームですよ。w
0525NAME IS NULL2005/08/03(水) 11:02:26ID:???
Winで開発して、Linuxで運用ってパターンが結構多いんじゃないかな。
0526NAME IS NULL2005/08/03(水) 15:38:50ID:???
おれは.cgiにしてる。
ダウンロードされないようにw
0527NAME IS NULL2005/08/03(水) 21:00:52ID:???
>>524
wxWidgetsとかSDLとか使ってんの?
最近はクロスさせるときはJavaばっかだな

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

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

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

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

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

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

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

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

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




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

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

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


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

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

お前が自己向上意欲のないカスだって事はよくわかったから、
とりあえず「>>531は私のアプリがバグってるだけでした」
って認めて非難を撤回しろ。
0572NAME IS NULL2005/08/21(日) 19:30:17ID:???
意味がわからん、いじでもアプリのせいにして自分で検証して有無をいわさぬ証拠を提示しようとはしないらしい。
しないっていうか出来ないのかw
そこまでいうならやってみせろよ。
簡単だろ?テストコード書くだけなんだから。それもできないくせに他人の技術にけちつけてるわけじゃないよね?
他人をけなすくらいだから10分もあればできるよね?ね?
アプリのバグと撤回するのはそれやってもらわないとねw
プロなら当たり前だよね?こんなこと。証拠もないのに否定してるなんて(プ
0573NAME IS NULL2005/08/21(日) 19:57:17ID:???
夏厨に縁の無さそうなDB板に夏厨が降臨するとは。
せっかくだからコテハンでも付けてくれよ。
0574NAME IS NULL2005/08/21(日) 21:30:36ID:???
自称天才プログラマのあほたちはほっといて作業に戻りますわ。
0575NAME IS NULL2005/08/21(日) 21:55:53ID:???
あ、そうそうソースいじるにしても、DB変えるにしてもここには報告しないから
まあ、ぜいぜいあると思ってる頭つかって自分で問題拾ってくださいな。
0576NAME IS NULL2005/08/21(日) 22:31:40ID:???
(´-`).。oO(この厨はそもそもここに何しに来たのだろう?)
0577NAME IS NULL2005/08/21(日) 23:09:56ID:???
この阿呆はどのDB使っても一緒だと思った。
0578NAME IS NULL2005/08/21(日) 23:34:38ID:???
原因を特定せずにmutex使って多重ロックで回避しようというのが、典型的ダメ発想…
0579NAME IS NULL2005/08/22(月) 00:03:19ID:???
みんなスネちゃん弄り杉。
0580NAME IS NULL2005/08/22(月) 16:10:26ID:???
↓というわけで、次の話題どうぞー。
0581NAME IS NULL2005/08/22(月) 22:32:54ID:???
3.2.3 age
0582NAME IS NULL2005/08/23(火) 16:57:21ID:???
>>569
VC用libって付いてないよな。
わざわざ lib /DEF:sqlite3.def ってやって作った記憶がある。
0583NAME IS NULL2005/08/23(火) 17:01:59ID:???
ver3初期はVC用ライブラリ構築用のプロジェクト作ってたが、
だんだん面倒になってきた。
unix系ツール使ってる部分の解決が面倒くさい。
0584NAME IS NULL2005/08/23(火) 21:34:31ID:???
>>583
え?拡張子がzipのソースは処理済なので問題無いと思うけど。
普通にVSでプロジェクト作ってすぐにlib作れたし。
http://www.sqlite.org/download.html の、Source Codeの上から4つ目。
0585NAME IS NULL2005/08/24(水) 02:54:06ID:???
なぜ公式には、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するように
直したら使えるようになったけど、激しく無駄。
0586NAME IS NULL2005/08/24(水) 03:42:06ID:???
>>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の実装見るとそんな事しかやってないので)
0587NAME IS NULL2005/08/24(水) 04:38:28ID:???
>>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の改善案を提案するかな。
0588NAME IS NULL2005/08/24(水) 11:40:09ID:???
>>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で
渡さないと駄目だね。
0589NAME IS NULL2005/08/25(木) 00:28:21ID:???
3.2.4 age
05905622005/08/25(木) 04:55:19ID:???
あー、レスくれた人ありがとう
3.xって結構2.xと違うんだな
ずっと2.xでやってて特に問題も無いのであまり勉強してなかったよ
0591NAME IS NULL2005/08/27(土) 21:18:31ID:???
SQLiteのDLL版って何でヘッダファイル置かないんだろうか。
仮宣言をいちいちしなくちゃいけなくてめどい。
0592NAME IS NULL2005/08/27(土) 22:10:31ID:???
src落としてsqlite3.h使うといいとおもうよ
0593NAME IS NULL2005/08/28(日) 00:29:31ID:???
>>591
DLL版なんて飾りなのです。
偉い人にはそれが分からんのですよ
0594NAME IS NULL2005/08/28(日) 13:37:00ID:???
3.2.5 age
0595NAME IS NULL2005/08/28(日) 23:24:53ID:???
結構ハイペースにリリースされてるんだなぁ
0596NAME IS NULL2005/08/31(水) 16:40:42ID:QcMvjbbs
SELECT COUNT(DISTINCT hoge) FROM table;
ってやると、syntax error になるんだけど(3.2.2)
これって仕様? それともオレだけ?
なんかいい方法あったら教えて下さい。
0597NAME IS NULL2005/08/31(水) 16:49:01ID:???
>>596
select count(*) from (select distinct hoge from table);
かな。
0598NAME IS NULL2005/08/31(水) 17:11:38ID:???
超サンクス.
0599NAME IS NULL2005/09/03(土) 12:55:07ID:???
カッコ内にいれた瞬間にそれは福問い合わせに修飾してるんだから
そういう仕様は不便でも正しい面があるね
0600NAME IS NULL2005/09/03(土) 12:58:39ID:???
吹く問い合わせ
0601NAME IS NULL2005/09/03(土) 14:52:29ID:???
福問い合わせって縁起がよさそうだね
0602NAME IS NULL2005/09/03(土) 15:53:33ID:???
福問い合わせでNULLがかえってきたら悲しい。
0603NAME IS NULL2005/09/04(日) 12:46:16ID:???
服縫い合わせ
0604NAME IS NULL2005/09/04(日) 12:59:04ID:???
厨房が沸いてる
0605NAME IS NULL2005/09/04(日) 16:03:24ID:???
河豚食い合わせ
0606NAME IS NULL2005/09/04(日) 21:58:55ID:???
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
0607NAME IS NULL2005/09/04(日) 22:23:47ID:???
>>606
いや、そのエラーのとおり、正規表現の括弧の対応が取れてないんじゃない?
そのあたりのコードを読み直してみたら?
0608NAME IS NULL2005/09/10(土) 00:55:13ID:???
カリカリチューニングの仕方を教えてください。
0609名無しさん@そうだ選挙に行こう2005/09/11(日) 01:31:57ID:???
ガリガリ君なら上げます
0610NAME IS NULLNGNG
先週本屋でSQLite入門っていう本を見つけた
0611NAME IS NULL2005/09/14(水) 02:16:08ID:???
>>610
これだな http://www.amazon.co.jp/exec/obidos/ASIN/4798109436
0612NAME IS NULL2005/09/14(水) 09:35:36ID:Zl9QgQIJ
レビューキボn
0613NAME IS NULL2005/09/14(水) 21:19:36ID:???
それさきおとといぐらいに買ってきたよ。
PHPだとblogのサンプルが乗ってた。あといろんな言語から使う方法も書いてあった。
とりあえず私はPHPだけで使いたかったので半分ぐらいしか読むとこ無かったです。
あとでほかの言語で使おうとか思ってる人にはお勧めかもしれません。

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

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

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

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

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

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

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

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

本屋さんで、普通に「SQL入門」「SQLハンドブック」「SQL解説」みたいに、そっけない
題名になっている本を立ち読みして、説明の文体が自分にあいそうなもの(これ重要)を
買うか、自分の住んでいる市の図書館のホームページで「SQL」という言葉を含んでいる
題名の本を検索して適当に数冊借りてみるほうがいいと思う。
0625NAME IS NULL2005/09/17(土) 16:31:36ID:???
>>624
サンクス、やっぱSQLの入門本から始めたほうがいいかぁ
0626NAME IS NULL2005/09/17(土) 20:23:42ID: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
0627NAME IS NULL2005/09/17(土) 20:27:49ID: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
0628NAME IS NULL2005/09/17(土) 20:56:48ID:???
>>626
テーブルはあらかじめ作ってあるんだよな?
とりあえず、同じプログラムをローカルのPHP環境で実行してみれ。
それでうまく行くなら、Yahooの問題。
0629NAME IS NULL2005/09/18(日) 15:03:14ID:/TphbGBL
3.2.6 age
0630NAME IS NULL2005/09/18(日) 15:21:16ID:???
お。このスレで話題になった COUNT(DISTINCT) がサポートされたね。
0631NAME IS NULL2005/09/18(日) 15:30:33ID:???
drh は絶対このスレ見てるな。
0632NAME IS NULL2005/09/18(日) 20:49:02ID:???
>>631
んなわきゃねえw
0633NAME IS NULL2005/09/19(月) 15:13:05ID:ZFm7QfVl
>>628
うん、テーブルは作ってある。ローカルでもテスト済み。
ただ、ローカルの環境がWindowsだったのでFreeBSDとバイナリ互換ないのかなとおもって、
データベースを最初から作り直すことにしたんだが、 create table でも同じ現象が発生。
どうやらビージータイムアウトして database is lock が返ってきているみたいなので
sqlite_busy_timeout() で時間を延長してみたがやっぱりNG。

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

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

いいかげん、UTF-8 <> MBCSだってことに気付けYO!
0636NAME IS NULL2005/09/23(金) 15:20:33ID:???
sqliteはWCS(のみ)で使うのが正しいのだと思う。たぶん。
0637NAME IS NULL2005/09/23(金) 15:29:47ID:???
>>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を渡す
→文字化けファイル名のできあがり
0638NAME IS NULL2005/09/23(金) 15:39:15ID:???
>>637
うん。。Win9xは駄目だね。
うちはsqlite使うものはWin9xは対応しない。(要求もあまりないので)
0639NAME IS NULL2005/09/23(金) 15:52:40ID:???
>>637
そこまで調べてるんなら、
パッチ作って送ったらいいんじゃね?
0640NAME IS NULL2005/09/23(金) 21:37:00ID:???
>>635
os_win.c見てみたけど、NTの場合に問答無用でW系のAPI使ってるわけではなくて、
utf8ToUnicode関数でWide文字列に変換してから処理してるから大丈夫じゃない?

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

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

Win9xでは、3.2.6でも結局MBCSで渡さないと動かんけど。
06426402005/09/23(金) 23:36:02ID:???
>>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で通して楽したいってのが
開発者の考えだろうね。(ちょっと動作的に無駄が生じるけど)
06436422005/09/23(金) 23:42:54ID:???
>>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は、、別にいいでしょ。。)
06446422005/09/23(金) 23:50:50ID:???
>>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変換の
処理を入れると…。

すんまそん。
06456422005/09/24(土) 00:08:57ID:???
結局、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

だと思う。
0646NAME IS NULL2005/09/29(木) 00:37:06ID:???
copy復活マダー?
0647NAME IS NULL2005/09/29(木) 18:55:01ID:???
3.2.7がでとるな。
0648NAME IS NULL2005/10/03(月) 23:52:55ID:???
mysqlのマルチプルinsertほしいなぁ。
0649NAME IS NULL2005/10/04(火) 00:04:43ID:???
>>648
スピードの問題だけであればトランザクションの中に入れるだけで
100倍くらい速くなったよ。
0650NAME IS NULL2005/10/04(火) 00:41:51ID:???
>>649
うん。そうなんだけど、さらに高速にならないかなぁって。
最近パフォーマンス厨なもんで。
0651NAME IS NULL2005/10/04(火) 01:56:50ID:???
>>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 );
0652NAME IS NULL2005/10/04(火) 01:59:27ID:???
>>651のfor文の前後からBEGIN TRANSACTIONと
COMMIT TRANSACTIONがぬけてた。
補完よろしく。
0653NAME IS NULL2005/10/04(火) 10:08:33ID:???
それはどのへんが高速化のポイントなの?
0654NAME IS NULL2005/10/04(火) 12:07:39ID:???
prepareしてる辺りじゃないの。
0655NAME IS NULL2005/10/04(火) 13:58:35ID:???
なるほど。
それならわざわざコードを出さなくてもそう説明してくれた方がわかりやすいね。
0656NAME IS NULL2005/10/06(木) 17:41:00ID:BBu9gQvT
ttp://www.amazon.co.jp/exec/obidos/ASIN/4883374297/qid=1128587859/sr=1-2/ref=sr_1_8_2/249-2459413-7912369
これってどうなんだろ。どうもSQLiteを基本から学ぶのには適さないみたいだけど、サンプルとして見たらどうなのかな?
0657NAME IS NULL2005/10/06(木) 23:09:26ID:???
>>656
その書評を見る限りでは・・・ だめなんじゃない?

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

「何々SQLサーバーの入門書」と銘打っておきながら、PHPが全面に出ている本は、
結局のところ、「何々SQLサーバー」そのものに関する固有の情報や、他のサーバーに
ない特徴といったものは、ほとんど載ってない場合がほとんどだから。
もちろん、これは一般的な傾向であって、この本がそうだと確認したわけじゃないけど。
0658NAME IS NULL2005/10/09(日) 14:45:10ID:???
SQLiteがTcl/Tkコミュニティから生まれたものだということが無視されて
PHPとPythonばかりフィーチャーされている件について・・・
0659NAME IS NULL2005/10/09(日) 16:35:12ID:???
>>658
SQLite のサイトを見れば、tclとの関連が深いことはすぐわかると思うんだけど。
0660NAME IS NULL2005/10/10(月) 01:09:16ID:???
ごめん知らなかった。
0661NAME IS NULL2005/10/10(月) 01:22:17ID:???
tarball 開いたら Tcl のスクリプトがぎょーさん出てくるがな。
0662NAME IS NULL2005/10/10(月) 03:40:52ID:???
windows用に sqlite3 の zip を落としてくると、中には .exe 一個だけ
しかなかったり・・・
0663NAME IS NULL2005/10/10(月) 17:36:57ID:U3RRRrud
>>662
dllさがしている?それなら別のzip
0664NAME IS NULL2005/10/10(月) 19:47:27ID:???
>>663
>>662 は >>661 へのレスと思われ。
0665NAME IS NULL2005/10/11(火) 23:32:37ID:???
データベースのサイズに関してです。
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を採用するかどうかで
迷い中です。

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

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

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

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

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

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

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

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

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

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

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

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

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ファイルに互換性があるかどうかなんだが・・・。

0697NAME IS NULL2005/11/03(木) 08:26:35ID:???
文字コードに気をつけりゃ出来るよ。
0698NAME IS NULL2005/11/03(木) 15:35:13ID:???
あるよ。
別アーキテクチャだったら、試した事無いから分からんけど。
0699NAME IS NULL2005/11/03(木) 15:54:30ID:???
(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はエンディアンの問題も解決されているらしい。
07006962005/11/03(木) 17:43:09ID:???
>>697
>>698
>>699
アリガトン。休日なのにスマヌ。
文字コードは大丈夫。

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

サクラウェブで借りているFreeBSDのサーバー上で、PerlのSQliteモジュールを
使ったプログラムを動かしてみて、できたデータベースファイルをFTPで
ダウンロードしてWindowsXP上のSQLiteで読んでみたら、何の問題もなかった。
0702NAME IS NULL2005/11/05(土) 15:28:06ID: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

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

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

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

・・・つられた。。。

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

それができずにグダグダ言ってるアプリ作者は単なるザコ。
消えろ。
0845NAME IS NULL2006/01/14(土) 01:26:30ID:???
Appleの製品は人類を不幸に陥れるために作られている
0846NAME IS NULL2006/01/14(土) 01:30:01ID:???
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 の問題くさい。
0847NAME IS NULL2006/01/14(土) 01:50:55ID:???
>>846
3.2.8使って、同等のCアプリを自分で書いて試してみた?
0848NAME IS NULL2006/01/14(土) 01:56:44ID:???
>>844

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

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

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

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

そのSQLiteのバージョンは?
0854NAME IS NULL2006/01/14(土) 10:39:26ID:???
>>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.
0855NAME IS NULL2006/01/14(土) 16:09:56ID:???
マカ氏ね!

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

オリジナルコードと協調しているあたり、かなり変更して使ったぜー、って雰囲気をかもし出してる。
0859NAME IS NULL2006/01/15(日) 00:25:34ID:???
>>854
ファイルフォーマットから2、3.0、3.3を見分けろ。バイナリエディタで開けばわかるはずだ。
0860NAME IS NULL2006/01/15(日) 05:25:28ID:???
質問。Cからsqlite3を使っています。
unique indexをつくって、同じIDでinsertするとSQLITE_ERRORが返ってくるが、
これって他のエラーと見分けつくの?エラーコードで。
IDが既にあるならなにもしない的な動きにしたいんだが。
0861NAME IS NULL2006/01/15(日) 09:58:07ID:???
>>860
トリガー書け
08628542006/01/15(日) 10:59:41ID:???
>>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系のフォーマットですか。
0863NAME IS NULL2006/01/15(日) 11:25:53ID:???
yes
俺のシステムだとfileコマンドがSQLiteのバージョンまで表示してくれるなぁ。
0864NAME IS NULL2006/01/16(月) 18:08:18ID:???
 ∧||∧
(  ⌒ ヽ  < 2006-Jan-16 - Version 3.3.1 alpha
 ∪ 。ノ  
  ∪∪
0865NAME IS NULL2006/01/17(火) 20:09:05ID:???
げ。3.0と3.3ってファイル互換性無かったのか。
どうりでODBCドライバとかことごとく使えないと…
0866NAME IS NULL2006/01/18(水) 05:24:20ID:jidDFeuu
SQLiteってCSEから扱えますか?
0867NAME IS NULL2006/01/18(水) 06:24:25ID:???
よくしらんがODBC経由なら使えるんじゃね?
0868NAME IS NULL2006/01/18(水) 06:30:27ID:???
>>866
SQLite用のODBCドライバを使えば扱える。
あと、CSEと似たようなソフトならたくさんある。

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

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

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

SQLite3.exeって、文字コードの変換とかは何〜んもやらんから。
DOS窓ではSJIS以外では入力はできません。
0885NAME IS NULL2006/01/26(木) 23:57:18ID:???
>>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だけです。
0886NAME IS NULL2006/01/27(金) 00:07:41ID:???
ふむ。Cygwin + ck だとどうだろ。
0887NAME IS NULL2006/01/27(金) 00:28:58ID:???
>>886
いけるんじゃね?

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

こんなことを言うUnixプログラマはバカなんだよ。
0942NAME IS NULL2006/02/03(金) 19:51:44ID:???
>>941
ごめんなさい。こういうとき、どんなレスをすればいいのかわからないの。
0943NAME IS NULL2006/02/04(土) 02:28:05ID:???
>>942
必ず、ファイルは閉じて、メモリは解放する。
0944NAME IS NULL2006/02/06(月) 10:52:23ID:???
>>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/     ',
0945NAME IS NULL2006/02/10(金) 10:23:03ID:???
sage
0946NAME IS NULL2006/02/10(金) 18:29:26ID:???
age
0947NAME IS NULL2006/02/12(日) 00:09:43ID:???
2006-Feb-11 - Version 3.3.4
0948NAME IS NOT NULL2006/02/13(月) 05:22:25ID:???
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
0949NAME IS NULL2006/02/13(月) 15:04:40ID:???
うへえ
0950NAME IS NULL2006/02/13(月) 15:51:31ID:???
おひぃ
0951NAME IS NULL2006/02/13(月) 15:56:48ID:???
あはぁ
0952NAME IS NULL2006/02/14(火) 00:38:23ID:???
らめぇ
0953NAME IS NULL2006/02/14(火) 09:16:37ID:???
あぁぁぁ
0954NAME IS NULL2006/02/17(金) 22:09:04ID:???
sqliteを長時間使っている時点でダメポ。
他のまともなRDB使え。
0955NAME IS NULL2006/02/17(金) 23:08:14ID:???
>>954
うちはへっちゃらですけど・・・
0956NAME IS NULL2006/02/19(日) 17:27:22ID:???
やっぱりSQLiteは使い手を選ぶね。
0957NAME IS NULL2006/02/19(日) 21:24:59ID:???
それが SQLiteの欠点だな。
0958NAME IS NULL2006/02/19(日) 21:58:11ID:???
読解力ないね。
0959NAME IS NULL2006/02/19(日) 23:08:52ID:???
選民思想キモス
0960NAME IS NULL2006/02/21(火) 02:14:31ID:???
まあ普通のRDBならちゃんとセッション管理してくれるけど、sqliteは開きっぱで忘れてリソース喰われまくり。
0961NAME IS NULL2006/02/21(火) 02:24:03ID:???
> sqliteは開きっぱで忘れて

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

ひどい公害プログラマだなw
0971NAME IS NULL2006/02/22(水) 02:22:33ID:???
>>970
もう少しおもしろいこと書けよ
0972NAME IS NULL2006/02/22(水) 02:33:03ID:???
面白いプログラムは書けないくせに、人のことばかり言うんだな >> 971
0973NAME IS NULL2006/02/22(水) 09:29:39ID:???
ふとんがふっとんだ
0974NAME IS NULL2006/02/22(水) 12:57:55ID:???
わらちゃった(つД`)
0975NAME IS NULL2006/02/22(水) 16:06:15ID:???
7000個のりんごがあります。今3000個追加しました。全部で何個になったでしょうか?
0976NAME IS NULL2006/02/22(水) 16:14:48ID:???
データベースがロックされてて読めません
0977NAME IS NULL2006/02/22(水) 20:39:31ID:???
ロールバックされたので7000個のままですた。
0978NAME IS NULL2006/02/22(水) 21:36:16ID:???
正解は
おまんこ。
0979NAME IS NULL2006/02/22(水) 22:18:42ID:???
何だこのカオスは
0980NAME IS NULL2006/02/23(木) 03:13:52ID:???
>>975
はいはい一まんこ一まんこ。
0981NAME IS NULL2006/02/24(金) 16:00:36ID:+IIz7SDv
age
0982NAME IS NULL2006/02/24(金) 17:15:45ID:???
もうだめかもしれんね。
0983NAME IS NULL2006/02/24(金) 18:22:56ID:???
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 てなんなんだよー
0984NAME IS NULL2006/02/24(金) 20:13:38ID:???
httpdそれぞれがDB掴んで動く訳ないじゃん(w
0985NAME IS NULL2006/02/25(土) 00:19:34ID:???
また開いたら閉じるができない香具師か
0986NAME IS NULL2006/02/25(土) 07:40:37ID:???
複数動いて握りっぱなしなら動かなくても納得するんだけど、
apache起動して一発めでもダメなもん?
0987NAME IS NULL2006/02/25(土) 08:07:43ID:???
開発環境と鯖のSQLiteのバージョンが合ってないとか。
DBのファイルが壊れているとか。
0988NAME IS NULL2006/02/25(土) 09:35:47ID:???
次スレ
http://pc8.2ch.net/test/read.cgi/db/1140827718/
0989NAME IS NULL2006/02/25(土) 10:45:06ID:???
起動した瞬間にDB握ってる。mod_perlロードしてるでしょ。
0990NAME IS NULL2006/02/25(土) 16:00:49ID:RhNDLCTJ
なんだかんだでSQLiteへ乗り換えてる香具師もいるっぽい
http://www.outdex.net/diary/archives/2006/01/sqlite.shtml
0991NAME IS NULL2006/02/25(土) 16:27:12ID:???
ああ BerkeleyDB からの乗り換えか。そりゃ乗り換えたくもなる罠。
0992NAME IS NULL2006/02/25(土) 16:59:26ID:???
>>987
全く同じ環境でmod_perlを有効にしてないときはちゃんと動くのよね。
mod_perlありだと単純に select 10 とかやっても答えが返ってこない。
>>989
確かにmod_perlだけど、どうやったら起動時にDB握るの?
connectするまでは握るDBすら決まってないんだから。
0993NAME IS NULL2006/02/25(土) 20:18:27ID:???
Apache::DBI->connect_on_init
0994NAME IS NULL2006/02/25(土) 20:33:31ID:???
>>992
リクエスト毎に disconnect してもダメなん?
0995NAME IS NULL2006/02/26(日) 08:20:02ID:???
>>994
ダメなん。ていうか一番最初のクエリからしておかしいので。
ぐーぐる様に聞いても同じような症状で困ってる人は見つかっても
解決したって話が出てこない。
mod_perl外すのは厳しいから、違うDBMSにするかdbm方面に逃げるか
かなぁ。
0996NAME IS NULL2006/02/26(日) 20:58:01ID:???
>>983
ttp://multix.jp/cgi-bin/cdiary2/2003-04-04.dml.html
>mod_perl 環境下でやっちゃダメなものをいくつか。

参考になるかね?
0997NAME IS NULL2006/02/26(日) 21:21:05ID:???
再現コードぷりーず。

次スレで。
0998NAME IS NULL2006/02/27(月) 09:17:18ID:???
次スレ
http://pc8.2ch.net/test/read.cgi/db/1140827718/
0999NAME IS NULL2006/02/27(月) 10:25:43ID:???
もうだめかもしれんね
1000NAME IS NULL2006/02/27(月) 10:26:33ID:???
やった、初1000。
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。