sqliteを語るスレ
レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@お腹いっぱい。
03/06/30 16:01ID:3hdiLYQO参考:http://www.sqlite.org
0002名無しさん@お腹いっぱい。
03/06/30 16:02ID:???なに? いつだってそうなのか?まぁ、そうだろうな。一般社会ではお前みたいにキモいヤツは相手にしたくないんだよお前はネットの中でも「おマメ」みたいなもんだからな
引きこもった挙げ句、朝からネットにかじりついてスレが立つのを一日中待ち、すかさず「2」と書き込む。 つまんねえ人生だな
みんなが書き込む掲示板に「2」って書き込んだことで自分も社会に参加してるつもりになってんだろ
それにしてもさぁ、もう少し考えろよなんとか社会復帰しようと一晩中考えて出来たギャグが「2」かよ!!
おまえさぁ、一度外に出て人が話してるところでいきなり「2!」って言ってみろよ!もうダメなんだよ、無理なんだよ、お前には
ネット社会ですらコミュニケーションとれてないじゃんわからないだろうけどさぁ
みんな苦虫を噛み潰すような目でお前の自信作の「2」を見てるんだよそう、もう終わりにしようよ、この先楽しい事なんかないんだよ、きっと。
0003名無しさん@お腹いっぱい。
03/06/30 21:49ID:???0004nobodyさん
03/07/01 18:36ID:KD9GbSVtWindows + Apache + MySQL + phpMyAdmin 環境で
ずっとテストやってたからとりあえずどうしていいかわかんないや。
PEAR DBはまだサポートしてないんですよね?
んでもってphpMyAdminみたいなツールはSQLiteにはあるのかなあ。
まあPHP5デフォルトバンドルになる以上、
今後お付き合いしていくのは間違いないだろうと思われるので期待あげ。
詳しい方解説きぼん。
0005名無しさん@お腹いっぱい。
03/07/12 11:37ID:???ない。全部コマンドラインで頑張るのが漢のロマン。
ツール欲しかったらそれこそMySQLでやればいい、的なものだからねえ…。
0006あぼーん
NGNG0007ぼるじょあ ◆ySd1dMH5Gk
03/08/02 05:11ID:???ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎――――――◎ 山崎渉&ぼるじょあ
0008あぼーん
NGNG0009山崎 渉
03/08/15 22:12ID:???│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0010山崎 渉
03/08/15 22:36ID:???│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0011NAME IS NULL
03/10/19 03:06ID:fcozYorT期待age
0012あぼーん
NGNG0013NAME IS NULL
03/10/23 21:14ID:w0drDQcjスキーマダンプしてもNUT NULL・・・
ていうか誰も使ってないのかよぅ
0014NAME IS NULL
03/10/29 09:35ID:???0015NAME IS NULL
03/10/29 22:13ID:i9iRWIvB少ないからこそ話し合おうやないかと。
とりあえずはオフィシャルのマニュアルでなんとかいける。
PHPでPEAR DBインターフェイスで使ってます。
コマンドラインからCSVから一括インポートできないのが今面倒。
それくらい自分で作れってわかってはいるけど。
あと、完全なカラム名入りのINSERT文でダンプできないのも面倒。
0016NAME IS NULL
03/11/05 13:36ID:???0017NAME IS NULL
03/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 NULL
03/11/15 19:28ID:pb0zFJJB0019NAME IS NULL
03/11/26 09:28ID:hrsdO7GBSQLite用のADO.NETデータプロバイダSQLite.NET登場。
http://sourceforge.net/projects/adodotnetsqlite
まだα版ながら.NET Framework上ですでに動作。
これでODBCドライバもDSN登録もいらなくなった。
0020NAME IS NULL
03/11/29 15:59ID:BZztAbw6ODBCで接続してくれる汎用のものを使えばいいよ。というか、それが普通。
定番は「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 NULL
03/11/29 21:01ID:???情報ありがとう。でも、
> まずはSQLite用のODBCドライバをインストールして
> データソースネームを登録して
これが面倒(と感じる人もいるよね)。
0022NAME IS NULL
03/12/01 00:51ID:???002320
03/12/01 09:34ID:O/R85Nmbデータソースネームの登録をデータベースごとにいちいちやるのは
本当にうっとうしい操作で嫌いです。
でも今の所こうするしかないようで・・・いい手あったら教えて下さい。
JScriptやVBScriptなどからSQLiteやJetを使うときは 、
DSNなしでドライバ名とファイル名を直接指定する接続の方を
使っちゃうんですが、この手はどこでも通用するわけではないようで。
0024NAME IS NULL
03/12/01 16:34ID:???作ってしまうのはどうか
0025名無しさん@Linuxザウルス
03/12/01 19:55ID:fM+FlLdE002623
03/12/02 09:12ID:UGNuLnLWデータソースネームの登録をスクリプトからしてしまうということでしょか。
できるかも。方法を調べてみます。
002723
03/12/02 10:31ID:/D3psl+q「ファイルDSNを使用して接続する」
http://homepage2.nifty.com/inform/vbdb/filedsn.htm
というVBでのサンプルみつけました。これを応用すればできそうです。
002823
03/12/02 11:00ID:/D3psl+q「ODBCデータソースの登録・削除 (API) 」
http://homepage2.nifty.com/inform/vbdb/api_dsn.htm
何度も失礼しました。
0029NAME IS NULL
03/12/05 14:41ID:zpfAzYNDSQLiteと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 NULL
03/12/05 22:33ID:???何回おきにcommitした?
0031NAME IS NULL
03/12/05 22:34ID:???ごめんなさい。
0032NAME IS NULL
03/12/06 07:47ID:Y3cvNAdD0033NAME IS NULL
03/12/06 21:12ID:???どんなことに使ってる?
0034NAME IS NULL
03/12/07 18:13ID:???SQLiteの設定値は?
速度あげるためにチューニングした?
0035NAME IS NULL
03/12/07 22:27ID:???そんなチューニングがあるのかい?
0036NAME IS NULL
03/12/09 01:31ID:???PHPにSQLiteが搭載されてもPostgreを使うのではと思う俺。
いやいやMySQLが擦り寄ってくるのでは?と期待する俺。
正直なところSQLiteはどうだい?
0037いなむらきよし
03/12/09 13:39ID:90H4pzxx0038NAME IS NULL
03/12/09 23:33ID:???データ量が多くなってきたのでデータベースを導入しようと思っていた矢先に
SQLite を見つけました。
ソースコードから全部結合させて SQLite を内包させちゃいます。
(これが組み込みってやつですよね?)
これから追っていくつもりなのでよろしくです。
ちなみに DB は初心者です。
003938
03/12/12 23:07ID:fEBGkoUYシェアウェアとかです。
既存のソフトのデータベースを SQLite のデータベースに変換する
プログラムを書いたんですが、以外と遅いですね。
0040NAME IS NULL
03/12/13 09:27ID:???そゆ書き方をすると「SQLiteって遅いのか」というイメージだけが広がって
「遅いからクソ」とか自分は知りもしないのにけなす奴が増えていく悪寒
004138
03/12/13 20:07ID:???ごめんなさい。私がまさにそういうイメージを植え付けられて試していたフシがあります。
で、TRANSACTION 化(って言うのかな?)すると十分に実用的な速度になりました。
だいたい10万件くらいのデータを変換したんですが、所要時間のほとんどが
SQL 文を作る処理で、SQLite の速度はめちゃ速かったです。
フリーソフトとかに組み込むような用途では SQLite 以外の
選択肢は考えられないように思います。速いし。
0042NAME IS NULL
03/12/14 14:35ID:???そゆ書き方をすると「SQLiteって遅いのか」というイメージだけが広がって
「遅いからクソ」とか自分は知りもしないのにけなす奴が増えていく悪寒
>>41
比較などの詳細をキボンヌ。
004338
03/12/18 01:01ID:???グリッドに日本語を表示できます。グリッドで更新もできます。
クエリー部では日本語を使えません。ごめんなさい。
http://d.hatena.ne.jp/halts/20031217#1071676215
>>42
そのうち。
0044NAME IS NULL
03/12/23 13:03ID:???0045NAME IS NULL
04/01/02 14:56ID:cP+5Z7n4文字セット変更があって日本語が使える。
作者や出所が不明になっているらしいですが、下でダウンロードは可能。
http://members.rogers.com/mbi/software/software_index.htm
0046NAME IS NULL
04/01/02 17:19ID:GTnsxWCQ(1) 無意味だからやらない。 (2) 目印になるからやる。
(3) しないよりした方がいいと言う人がいるからやる。
(4) するとやっかいな結果になるからやらない。
など、考えていますが、どれが適当かはわかりません。
Date型を付けてしまって、後悔したことがあります。
読むときにアプリのDateTime型が例外を出してきたり...
単なる目印のつもりはまずいことがある。ということはメリットは?
Integerも要注意みたい。
0047NAME IS NULL
04/01/02 21:34ID:???> Date型を付けてしまって、後悔したことがあります。
> 読むときにアプリのDateTime型が例外を出してきたり...
具体的にどんなことになったの?
0048NAME IS NULL
04/01/05 11:44ID:gQ8zMdLQ004946
04/01/06 10:49ID:Pt3TSpWuADO.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 NULL
04/01/06 15:45ID:???SQLite以前に型チャックちゃんとしようぜ。
Double型に文字列を投入しちゃうようなプログラムはダメだ。
005146
04/01/07 09:06ID:UJmgjzrzけっきょく、そういうことです。
型のないSQLiteに型チェックなんかないし、
型をつければ、それをスキーマから読んであてにしようとするプログラムは
あるんだから。いっそ型を付けない方が正しい。型はないんだから。
>SQLite以前に型チャックちゃんとしようぜ。
0052NAME IS NULL
04/01/07 16:10ID:???型はつけなよ。他のDBからテーブルをインポートしたり
エクスポートしたりするときそのまま持ってけるから便利じゃん。
君の場合は使ったADO.NETのラッパー?が型のチェックを
ちゃんとしてないだけじゃろ。
0053NAME IS NULL
04/01/07 21:34ID:???Date型のカラムに '2004-01-02' という値が紛れ込んでてエラーになったという話ですか
どうしてそんなことに?
入力の際にそれをはねなかったのが問題だと思う
005446
04/01/08 11:00ID:lOX/MR5Z型はつけない方がむしろ正統と結論にしたのは、
型をつけて利用することの方が裏技に近いものと思った、ということです。
うまく使えば便利かも。
ADOやADO.NETがデータベースに付けられた型を見たあとそれをどう料理するかは、
もっと調べてみる。
>>53
元はMySQLのデータベースに入れてたデータなんです。
MySQLは Date型の書式に ISO準拠の国際標準書式"yyyy-mm-dd"を採用していて、これ以外ははねられる。
だからこれをSQLiteにそのままインポートしても全部 '2004-01-02'の書式。日付は例でした。
変換してからインポートが正しい? ISO書式じゃだめ?
どうせSQLiteは Date型にすれば日付計算がサポートされるなんてわけないから、
Date型を付けなけりゃうまくいったのに、との後悔だったんだけど・・・
005546
04/01/08 14:50ID:wdL+QGFiラッパーの件がありました。たぶん、そこの問題じゃないです。
ADO.NETでも高級な DataSetでの例だったんです。
低級で高速な DataReaderでは、明示しなけりゃDateTime型にデータを投入しませんから、
もともと問題なしです。
005646
04/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 NULL
04/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 NULL
04/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;
}
005946
04/01/09 10:57ID:vDXjRDTCずばりサポート、ありがとうございました。
訂正: ラッパーが対応していないも正解でした。
やることが山ほどできました。
0060NAME IS NULL
04/02/10 22:26ID:1wsqz1Hsしかし、情報が少ないよね〜
もう少しすればいろいろ情報も出てくるんだろうけど・・・
標準の関数が少ないのが辛い。
0061NAME IS NULL
04/02/20 12:01ID:???まあ、俺も使っていないのだが。
タイプレスのDBっていうのは、
アプリ側のやる仕事が増えそうな印象があって(それが本当かどうかはしらんが)、
それでなかなか触手が伸びないのかな?
0062NAME IS NULL
04/02/21 02:04ID:UE2tYF6Fアプリ側の仕事が多くて使いにくいんでしょうが,Windows や Mac ネイティブな
ソフト用の組み込み DB としてはほかに選択肢がないから sqlite が一番だと思ってます.
自分でゴリゴリと DB 操作コードを書かなくていいのは激しく楽です.
JET エンジンとかがほかの選択肢なんでしょうか.
個人的には alter table がないのが厳しい.
あと,sqlite 自身ちょくちょくバージョンアップしてるみたいですが,
どこがどう変わったか公式サイトをみてもわからないのがつらいです.
0063NAME IS NULL
04/02/22 00:53ID:???サイトは殺伐としすぎてますよね。
sqlite 自体に必要な機能を備えさせるのは構わないけど、サイトやらドキュメントは
もっと饒舌であってほしい。
0064NAME IS NULL
04/02/22 13:34ID:84o4/Ew4http://www.hwaci.com/sw/sqlite/changes.html
ちゃんと書いてるだろうがヴォケ。英語嫁。空気嫁。
0065NAME IS NULL
04/02/22 21:58ID:4n+LahDSあ,ほんとだ.こっちみてますた
http://www.sqlite.org/cvstrac/timeline
つーか
http://www.sqlite.org/
からそこに辿れないのが不親切よね(辿れたらスマソ)
0066NAME IS NULL
04/02/23 08:23ID:gJFAyjPDhttp://www.sqlite.org/トップの、"Current Status"の"Change Summary"じゃだめなん?
0067NAME IS NULL
04/02/23 09:16ID:xmVB1NEu0068NAME IS NULL
04/02/23 14:51ID:???表示や入力フォーマットの統一も面倒だし、
並べ換えもねえ。
PHPとかかませばいいんだろうが、sqliteそのものをダイレクトに使ってるからねえ。
0069NAME IS NULL
04/02/23 16:56ID:aEcQvCocドキュメント見直したらサポートしてない、とあって、
じゃあどうすりゃいいんだと、またもあせった。
答えは単純なのであった。
0070NAME IS NULL
04/02/23 22:12ID:???すぐに文句を言っちゃう人が多いですね・・・。
0071NAME IS NULL
04/02/24 01:56ID:???2ちゃんねる全体の傾向です。
0072NAME IS NULL
04/02/24 09:21ID:tHk27BoL>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 NULL
04/02/24 22:53ID:???Excel の表みたいだな。
007462
04/02/25 18:20ID:UqpphvZs公式には「バックアップとって,dropして,createして,コピーすれ」って
書いてありますね.パフォーマンスはひどいと思われますが...
http://www.sqlite.org/faq.html#q13
私は a,b,...,z じゃないけど,列に「予約」を加えることにしてます.
0075NAME IS NULL
04/02/25 20:23ID:???1回だけだし
0076NAME IS NULL
04/02/25 20:35ID:???0077NAME IS NULL
04/02/26 00:12ID:1lxCODMsプロセスが起動しないっていうのがいいよ。
サーバーがないような小規模だと、クライアントで
数MBでもメモリー食うのが辛いから。
PHP5が普及すれば、レンタルサーバーでDBを付ける必要もないから
利用価値は大いにあるだろうね。
後はプロシージャさえ組めれば・・・・・
0078NAME IS NULL
04/02/26 09:25ID:???これだけコンパクトだと、組み込み用途で重宝というのもよくわかる。やったことないけど。
PHP5で知名度が上がれば「SQLite本」出るかな。
0079NAME IS NULL
04/02/26 13:29ID:???もうすこし効率のいい方法があったような気がしたけど
やりかた忘れた・・・
0080NAME IS NULL
04/03/01 01:16ID:v+M0GB6EPHPでMySQLのデータをSQLiteにインポートしたんだけど
INSERTするときにaddslashesでエスケープしても
正しくINSERTできない時があります。
そんなときはsqlite_escape_stringつかいましょう。
alter tableないんですね・・
SQLiteManagerで作ってたから知らなかった。
ttp://www.rakuto.net/study/htdocs/sqlite/manip.html
上記の例だと一旦メモリ上に元テーブルに行を追加した仮テーブルを作って
元テーブルからデータを拾ってきたあとDROP&CREATEしてますね。
0081NAME IS NULL
04/03/01 10:02ID:???この場合は「行を追加」ではなく「列を追加」でしょうね。
行を追加するInsertのサンプルに上がっているけどね。よく見つけたな。
0082NAME IS NULL
04/03/01 10:45ID:LObuw1/6同じ名前の別テーブルに、名前の衝突を回避しながら入れ替えることは
ステップを踏まないと出来ないということだな。
0083NAME IS NULL
04/03/03 10:09ID:???0084NAME IS NULL
04/03/03 11:51ID:???| ハァハァ禁止! |
|________|
∧∧.||
( ゚д゚)||
/ づΦ
0085NAME IS NULL
04/03/03 20:41ID:???0086NAME IS NULL
04/03/04 17:40ID:3W8zShnU海外に比べるとDB使っている人が非常に少ない。
理由はやはりレンタルサーバが対応している所が少ないからってのがあると思う。
で、それが>>77-78の理由で大ブレイクする予感。
0087NAME IS NULL
04/03/04 18:05ID:???http://www5e.biglobe.ne.jp/~yb_net/clip/img/14872.jpg
008880
04/03/05 08:16ID:???すんません・・行と列間違える俺って相当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 NULL
04/03/05 20:03ID:kZCYuHRE英語のサイトを読みつつ 接続したのですが うまくいきません
JAVAでウィンドウズ2000でやっている人いないかな
0090NAME IS NULL
04/03/05 22:08ID:???SQLiteの作者はTclのハッカーである。
0091NAME IS NULL
04/03/05 22:56ID:???何がうまくいかんの?
俺もちょっと前にJDBC接続してみたが、普通に使えたぞ。
日本語以外は。
0092NAME IS NULL
04/03/12 00:40ID:RfCZzlsO15ふ〜ん
0093NAME IS NULL
04/03/15 16:28ID:???擦り寄って来たね♪
0094NAME IS NULL
04/03/17 21:15ID:InsPnmlYそーすきぼんぬ
0095[email protected]
04/03/17 22:15ID:???0096NAME IS NULL
04/03/18 06:01ID:tomkhCwIttp://www.itmedia.co.jp/news/articles/0403/13/news017.html
0097NAME IS NULL
04/03/18 06:31ID:jR84uLHZ009880
04/03/18 08:08ID:???SQLiteがきたからMySQLが戻ってきても・・・
ストアドとかテクニカルな事がしたかったらポスグレ使うし
規模がデカくなったらOracle使うし・・・
SQLiteManagerいつのまにか日本語化されてますね。
自分で日本語化ファイル作ってつかってますた。
0099NAME IS NULL
04/03/18 21:45ID:Us3+nbT1ほんまや。必死だな藁
つーかSQLiteが当て馬になってんのかなあ。
それはちょっと政治的で嫌だなあ。
まあ俺はWebプログラマじゃないからPHP使わないけど・・・
0100NAME IS NULL
04/04/14 10:02ID:+XCDs49Fトランザクション使わずにぐるぐるINSERTしてます。
0101NAME IS NULL
04/04/17 21:04ID:PagAZNLNなんか気の毒だね。
教えてあげた方がいいかもw
0102NAME IS NULL
04/04/17 22:49ID:x7N6mXCW先日教えてあげました.
すでに訂正が入っていますね.SQLite の方が速かったみたいです.
0103NAME IS NULL
04/04/18 03:33ID:???してもデータの数が500万件とかになると、インサートは
遅くなる。多分Bツリーのページ溢れによる再構築か
ディスクアクセスに時間がかかってるのだと思う。
どうすれば速くなるのかまだ実験中。
0104NAME IS NULL
04/04/18 21:41ID:hUv2zobH>ストアドとかテクニカルな事がしたかったらポスグレ使うし
>規模がデカくなったらOracle使うし・・・
だな。MySQL、もうイラネ
>>103
素朴な疑問なんだが500万件をまとめてインサート
するようなことは頻繁に発生するの?
ていうかデータの絶対量が500万件を超えると
1件の挿入でも遅いってこと?
前者ならあんま気にせんでいいような。
0105NAME IS NULL
04/04/18 23:03ID:???毎日500万件のテーブルに4000件程度の挿入をまとめてやるんだが
2000件目くらいから極端に遅くなる。CPUをフルに使ってズバズバやって
欲しいのだが、CPUの使用率も下がってしまう。どこにボトルネックがあるのか
いまいち掴みきれてない。
0106NAME IS NULL
04/04/19 03:40ID:???CPU が下がってるときのディスク I/O は?
0107NAME IS NULL
04/04/19 23:30ID:???どれくらいの頻度でアクセスしてるのかよくわからない。
アクセスランプ壊れてるんだわ。すまん。
トランザクション中のジャーナルファイルの更新が遅い感じ。
最適化のFAQ読んでたらジャーナルファイルをOFFにできる
みたいなんでそれやってみるわ。
0108NAME IS NULL
04/04/19 23:51ID:ZwzacxDLなるほど。
オイラは「500万件という(ある意味小規模とは言いにくい?)
量のアクセスで遅くなるなら、素直にあきらめて別のものを使うのが
SQLiteにとって吉」という意見なのだが…どうかね?
SQLiteはシンプルでコンパクトであり続けて欲しい。
…1000アクセス/1日未満のサイトとか、ちょっとしたアプリで
バークレーDBよりもうちっと構造化されたDBが欲しいという場合に
フリーで使えるメジャーなDBライブラリになって欲しいのよね。
getopt的プログラマの共通言語「ああ、アレね」みたいな。
0109NAME IS NULL
04/04/20 00:21ID:???ん? iostat とかで見れないすか? Windows とかだったらスマソ。
0110NAME IS NULL
04/04/20 16:47ID:???俺はCとTcl/Tkを好んで使うんでSQLiteにはとても
親近感を持ってるんだよ。使いたいんだ。
>>109
うん。Windows。すまん
0111NAME IS NULL
04/04/24 22:57ID:???そか、悪かった。
しかし逆説的に
>毎日500万件のテーブルに4000件程度の挿入をまとめてやるんだが
>2000件目くらいから極端に遅くなる。
未満ならなんら問題ないことを実証したヨカン
ところで先日クロスコンパイルに失敗。
見た感じではさくっといきそうな感じだったんだが_| ̄|○
0112NAME IS NULL
04/04/25 23:30ID:???0113NAME IS NULL
04/04/26 02:26ID:ORUhb82CsqliteInt.h の
# define TEMP_STORE 1
ですね.俺もC/Win 環境で使ってるので続報期待.
ところで ver3 の開発が始まったみたいだね.
今のところ BTree に手が加えられてるみたいだけど詳細は不明.
個人的には圧縮関連ルーチンが取り込まれないかと期待.
0114NAME IS NULL
04/04/26 11:19ID:fJzkQNNxTableを間違って消しちゃったみたいなんですが
DBの中身を見るとテーブル定義もデータも残ってるみたいなんです。
(でもselect * from sqlite_masterしてもでてこない)
これって救出する方法ありますか?
0115NAME IS NULL
04/04/26 18:15ID:gZB0Gfdi調べてもわかんなくって。。。
バカにされても仕方ない話なんですけど、SQLをバッチファイルで流したいんです。
(create DATABASE ・・・ を直に手で打つんじゃなくて、「test.sql」というバッチファイルで実行したい)
Windows環境なんですが、どうやればよいでしょうか?
教えて下さると、とっても嬉しいです。よろしくお願いします。
0116NAME IS NULL
04/04/26 19:15ID:???mysql <test.sql
つーバッチファイルつくりゃすむだろ
0117NAME IS NULL
04/04/27 00:22ID:???0118NAME IS NULL
04/04/27 09:24ID:???0119NAME IS NULL
04/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 NULL
04/04/27 23:52ID:???ちょっと説明すると
SQLiteってのはDB1個が1個のファイルで、サーバデーモンってのは
特に必要ない。
ソースをコンパイルすると出来上がるのは単純には2個のファイル。
ユーザがCでプログラム組んでアクセスできるための.so
(Windowsでは.dll)と、SQLインタプリタの実行ファイル。
まあ、他にもシンボリックリンクとかインクルードファイルもできるけどね。
あと、ファイルを使わずメモリだけで済ますオプションもあるから
PDAには「向いてる」かと。
イメージ的にMS Accessの.mdbの利用方法に近いのかな…
商用利用もOKであるのが決定的に違うところか?
0121NAME IS NULL
04/04/28 10:08ID:zZMnOcUGAccessのmdbは商用利用ダメなんですか。そうですか。
バックアップって.dumpでsqlファイルとしてとってます?
容量が小さいならファイルまるごとコピーでも良いのではないかと
思っておるのですが。
(というか.dumpはバックアップ用なのか?)
0122112
04/04/28 23:29ID:???石の違いを吸収してしまうDBファイル形式。
母艦でOracle等の親DBからデータを切り出したSQLiteのDBファイルを作成。
PDA用のアプリは慣れたSQLを使って作成可能。
os.cを見てみたのですが、PDAは所詮利用者ひとりだけなので移植はそれほど
難しくなさそうな気がするんだけど。もしかしてほとんどそのままコンパイル可能?
PocketPCアプリ作ったことがないんでよくわからないので聞いてみたのですが。
PDAで動作すると商業ベースにも乗って意外とそっち方面でも流行るのでは?
0123NAME IS NULL
04/04/29 00:18ID:???0124120
04/04/29 11:12ID:???0125NAME IS NULL
04/04/29 20:07ID:???たしか
accessのライセンスがないとダメだよ。
0126NAME IS NULL
04/04/29 21:47ID:WDx32sxTdumpはバックアップ用じゃなくて、他のDB、というか
Postgresqlにデータを移すために使うんだよ。
バックアップは君のいうようにDBファイルを圧縮しとけば
いいと思うよ。差分は取れるのかどうかしらない。
0127NAME IS NULL
04/04/30 08:57ID:y7ZGN/fcたぶんライセンスじゃなくて信頼性とかの問題で
商用利用不可なんじゃないかと。
0128NAME IS NULL
04/04/30 21:19ID:VZceiIAfどうかと思うけど・・・。なんかsqlite使った有名アプリない?
PHPとかは無しで。
0129NAME IS NULL
04/04/30 21:36ID:???有名かわからんが、TeamSpeak
http://www.teamspeak.org/
0130NAME IS NULL
04/04/30 23:41ID:???sqliteのperlへの実装ってある?
0131NAME IS NULL
04/05/01 00:11ID:FaMfpc9Zロックってどんなかんじ? なんも考えず select for update
でOK?
0132NAME IS NULL
04/05/01 01:20ID:???http://search.cpan.org/~msergeant/DBD-SQLite/lib/DBD/SQLite.pm
0133NAME IS NULL
04/05/03 08:02ID:???トランザクション開いてアクセスする。
(トランザクション閉じるまで他の人は読み込みも蹴られますた。
SQLite擁護派として何かもう一言フォローしたいところだが
漏れも調査中なんでスンマソ)
0134NAME IS NULL
04/05/03 23:01ID:AtGIA8g90136NAME IS NULL
04/05/04 04:30ID:EWylYRtoだって意味なくね?
実験するのは大いにかまわないけど、なんか必死なのが痛い。
文字通り 軽量 のデータベースなんだからさ。
0137NAME IS NULL
04/05/06 08:18ID:YTLAADWx言い回しは好きじゃないけど内容的には賛成。
SQLiteは好きだし便利だけど、データ量が多いと
その真価は発揮できないと思う。
(処理速度よりもバックアップとかのメンテの面で。)
俺の場合500万件なんていうたくさんのデータを扱う案件は
今後でてこないと思うのでSQLite使いつづけますが。
10万件程度なら全然問題ないし。
0138NAME IS NULL
04/05/06 14:08ID:kuYQWsdlオブジェクト指向によるプログラミングでよく使われるシリアライズと比べて、
1.ランダムアクセスがスマートにできる
2.ファイルの全てをメモリに読み込む必要が無い
3.ある程度の標準機能(ファイルの最適化とか)を持つ
あと、多言語対応に向けたアプリ中のロケール文字列も、
こいつにぶち込んでおけば海外の人が勝手に翻訳してくれるのではないかと期待できるかな。
まあまずは動くところまで作らないとね。
あと、今のところ単純なラッパーを越える使い勝手のC++ライブラリが存在しないんですが、
ACCESS VBAのADODB.Recordsetライクな使いやすいアクセスライブラリってどこかに落ちてませんかね?
板違いならスマソ。
0139NAME IS NULL
04/05/06 18:29ID:YTLAADWxなんかすごいこと言いますね。
ロケール文字列を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
かな。
0140138
04/05/06 19:26ID:kuYQWsdl>なんかすごいこと言いますね。
>ロケール文字列をDBに入れるってすげーありえねー。
これですが、sqliteは文字列の入力チェックをほとんど何もしていないので、
ほとんど「何でも」入ります。
S-JISでもEUCでも区別なく入るようです。
簡単なチェックをしましたが、部分一致などもとりあえず問題無いようです。
なので、アプリ中で用いるWindowsロケールに依存した(要するに各国語)の
文字列リソースを入れる容器としては充分使えそうな気がします。
ライブラリのほうは家に帰って試してみます。ありがとう。
0141NAME IS NULL
04/05/06 21:26ID:S/PbMEEw0142NAME IS NULL
04/05/07 05:27ID:???> ほとんど「何でも」入ります。
>>139 はそういう話を言ってるわけじゃないだろう。
0143NAME IS NULL
04/05/07 09:40ID:uvn4YUcn>>138 が言う「ファイル形式としての応用」への挑戦はありえるんじゃない。
XMLより使いやすい場合があるかも。
0144NAME IS NULL
04/05/08 06:16ID:Gf03gDXuそれはどうでしょう.いきなりファイル形式が変化することもあるんでは?
同様に内部コードが UTF-8 と ANSI の場合でファイル形式変わってしまいませんかね?
(調べてません.すんません)
基本的に非圧縮だし,と思えば亜種で圧縮サポート形式も出てきていて,標準には向かないような.
以上は交換用途としての(.pdfのような)ファイル形式としての話.
アプリのデータ保存用で,ある種独自のファイル形式としてなら,大いに結構.
公式にもその用途を謳っていますしね.でも比較対象はXMLではないと思います.
0145NAME IS NULL
04/05/08 08:01ID:???なぜかというとsqliteのツールが無いとユーザーが
新しく追加できないから。UTF-8のテキスト形式が
シンプルでいいと思う。
初期設定の保存とかは便利でいいと思う。
0146NAME IS NULL
04/05/08 15:04ID:???軽量ってのは、本体のコードのことで
DBのサイズでは無いと思うんだけど
どうなんでしょう
0147NAME IS NULL
04/05/08 16:36ID:???ADODB.Recordset.......
ファイルシステムの代わりに最適........
上記の話題を見た直後の私の第一印象、
「はぁ........もうダメポ」
0148NAME IS NULL
04/05/08 17:56ID:???なんか間違えたこと言った?変なこと言ってたら
訂正するから指摘してくれ。
0149NAME IS NULL
04/05/08 18:38ID:???それほどには奇天烈なことは言ってないと思うがちょっとうなってしまう
部分はある。
ロケール文字列については、
{ 言語, 通し番号 } → 文字列
ができればいいわけだよね。
現状は言語ごとに分かれたファイルから通し番号でとってくる
やり方が主流だと認識してる。
「すでにそのアプリが内部データをSQLiteで持っているので、
ついでに入れてみた」というのりでなら、まぁそれは設計者が
選択したってことでいいかと思うが、
すでに確立した感のある方法(自動生成ツールがあったり、
その解説ドキュメントがあったりして他の開発者が
共通の知識を持っている)をあえて捨てるメリットがあるかは疑問。
新しいやり方にチャレンジする精神は立派。完成させてみて
発見したり実感したりすることもあると思うのでガンガレ
0150NAME IS NULL
04/05/09 14:03ID:6b2QA1ug>すでに確立した感のある方法(自動生成ツールがあったり、
>その解説ドキュメントがあったりして他の開発者が
>共通の知識を持っている)をあえて捨てるメリットがあるかは疑問。
ソースキボン
プログラム板のスレタイトル眺めて、多国語対応でググってみたが、
いいサイトが見つからない
0151NAME IS NULL
04/05/09 15:45ID:???おいらが言ったのは 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も似たしくみのはず。
0152139
04/05/10 08:14ID:Is7LBGNM私も最初思ったw
もまえ本当にC++でGUI作ってるのかと。VB極めたあと
MFCでHelloWorldってるだけちゃうんかと。
まー、>>149の言うようにそんなにおかしい事を言ってるわけでは
ないわけで・・・
まぁ、>>138よ。言いだしっぺなんだからごちゃごちゃ言う前にやってみれ。
ソース晒してくれれば協力するし。
ただ、DBをこういう風に使うのはなんか間違ってると思うが。
リレーション?なにそれ?っていう状況になるわけで。
0153NAME IS NULL
04/05/10 10:20ID:6CmpQPbSそれは、そう思った。
ただ、型なしの仕様が正しいと考える SQLite の面白い所で、
この考えは、リレーションを厳格には考えないという所に行くんじゃないかと
解釈してるけど、どう思う ?
キーさえ、しっかりしていれば、それで出し入れするデータは、
何だってかまわないという事になればリレーションとは違うかな、と。
以下の原文は
http://www.sqlite.org/datatypes.html
SQLiteのデータ型
第1節 型なし
SQLiteは「型なし」である。これは、そのカラムに宣言されたデータ型に関わらず、どのテーブルのどんなカラムにも君が望むあらゆる種類のデータを蓄積できる、という意味である。(このルールのただ一つの例外は、次の第2節を見よ。)この動作は仕様であってバグではない。
データベースはデータを蓄積し、復元しなければならないものであって、どんな形式のデータが入るかはデータベースには関係のないことである。
他のほとんどのSQLエンジンに見られ、SQL言語の仕様に定められている強い型システムは、間違った仕様である。この間違いはインターフェースの中に現れる実装の一例である。
SQLiteは、こうした間違った仕様の克服を求める。あらゆる種類のデータをあらゆるカラムに蓄えることを君にまかせ、データ型の定義に柔軟さを認めることによって。
0154NAME IS NULL
04/05/10 20:37ID:6CmpQPbS思い出した。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 NULL
04/05/12 14:42ID:???0156NAME IS NULL
04/05/18 16:19ID:ZavbGlbDttp://www.net-newbie.com/sqlite/sqlite.html
SQLite SQLリファレンス(翻訳版)
ttp://www.net-newbie.com/sqlite/lang.html
0157NAME IS NULL
04/05/19 18:07ID:???昨日から少しずつ翻訳してるのですが、
うまく日本語になってないところ・・・というより
意味不明なところが多すぎる _| ̄|○
http://tria.s31.xrea.com/sqlite/c_interface.html
0158NAME IS NULL
04/05/20 17:36ID:???やろうとしたらエラーが出たんだけど。
0159NAME IS NULL
04/05/23 11:50ID:???ぐっじょぶ!
0160NAME IS NULL
04/05/25 01:33ID:???SQLite ODBC Driver
http://www.ch-werner.de/sqliteodbc/
0161NAME IS NULL
04/05/25 01:34ID:???SQLite Database Browser
http://sqlitebrowser.sourceforge.net/
0162NAME IS NULL
04/05/25 01:52ID:???同じ所に JDBC ドライバもあるんだけど、誰か使ってる人いないかな。
http://www.ch-werner.de/javasqlite/
それにしても、アプリに組み込みできる、シンプルで、使い勝手が良くて、緩いライセンスの
データベースがあるって素晴らすぃ。
0163NAME IS NULL
04/05/25 08:21ID:???カコイイ!でも文字コードがああああああ
逝ってくる。
0164NAME IS NULL
04/05/25 10:14ID:???ttp://www.kumaryu.net/cgi-bin/diary/?date=20040110
で修正の手掛りが書かれているんだけど
C言語な人解らないかなぁ...
0165NAME IS NULL
04/05/25 10:52ID:???0166NAME IS NULL
04/05/26 08:39ID:???0167NAME IS NULL
04/05/26 10:49ID:OP8x6gI1これで入力すると ?? というデータになるしね。Qtは知らないからなあ...
0168sage
04/05/26 13:14ID:YjzGdGItUnicodeを使ってるドットネットのものは、大丈夫なのが多いみたいだけど、
Javaのもいいか ?
0169163
04/05/26 13:19ID:???最初、自分がINSERTしてるデータがEUCだったので表示されないのかと
思って「逝ってくる」ってパピコしたんだけど
その後UTF-8で入れなおしてもダメ。
私もQtなんて知らないです・・orz
0170NAME IS NULL
04/05/26 20:21ID:+wg1Ei5QSQLite Database Browser のソースをちらっと見ましたが,SQLite 本体が
UTF-8 enable になっていないので UTF-8 は通らないようです.
で,SQLite DB Browser の QT が日本語を通すようになっているか調査した人いますか?
QT を触ったことありませんが QT 自体は日本語処理OKと聞きました.
ちょっといじってみます.
0171NAME IS NULL
04/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 NULL
04/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
0173171
04/05/28 09:03ID:+ZceNJch普通のリソースを使う既存のコードも、1行書き換えるだけ。
あとは SQLiteで
create table Messages ([key], [ja-JP], [en-US], [de-DE], [fr-FR])
なんてして、データを入れておけば、勝手にシステムのカルチャに合わせた文字列を表示する。
プログラムからカルチャを変更するような使い方も簡単だな。
標準クラスを継承するクラスの作り方・使い方のお手本みないなもんだ。
0174163
04/05/28 15:10ID:???http://www.net-newbie.com/sqlite.html
0175NAME IS NULL
04/05/29 13:30ID:???0176NAME IS NULL
04/05/29 15:08ID:???http://www.rakuto.net/study/htdocs/sqlite/
0177NAME IS NULL
04/05/29 15:43ID:???メモ帳、日記、掲示板みたいな、付帯属性のあるプログラムのバックエンドとして使いたい。
0178NAME IS NULL
04/05/29 18:57ID:???おおあり
0179NAME IS NULL
04/05/30 02:20ID:???そうでつか。今作ってるデータ集計用のアプリが完成したら、PIM ソフトを作ってみようと
思っていたので心強いです。どうもありがとう。
日本語の全文検索あたりが難関かなと思ってます(現在ノー・アイデア)。
0180NAME IS NULL
04/05/30 06:23ID:???めんどくさいからlike演算で・・・。
0181170
04/06/01 04:17ID:???オリジナルの Windows 版は Qt の製品版を購入して作ったらしいので,
Qt を持っていない私には開発できないことがわかりました.残念.
>>179
SQLite 自身に手を入れてもいいかもしれませんね.
正規表現パッチとか勝手に作っちゃいます?
0182NAME IS NULL
04/06/01 07:29ID:???日本語は全てUTF8に変換してDBに突っ込む。
突っ込む際は、表示用のオリジナルのテキスト(フィールドA)のほか、
・全角英数記号を半角化
・半角カナを全角化
・ひらがなをカタカナ化
・無駄な空白を取り除く
等の処理を行ったテキストも別フィールドBに突っ込む。
検索の際は同じ処理を行ったUTF8のテキストをフィールドBに対してLIKE演算。
という感じで簡易あいまい検索を実現してま…
0183174
04/06/01 08:21ID:???フリー版での国際化はこれでできそうなのにね。
http://www.asahi-net.or.jp/~hc3j-tkg/qt-i18n/index-j.html
0184170
04/06/01 22:58ID:???私もそのサイト見ましたがだいぶ情報が古いです.Qt-1.41 に対するパッチとかで,
すでに本家では別の方法で国際化"自体"は取り入れられています.
問題は SQLite Database Browser 自身が全く国際化を意識せずに作られている点です.
ちなみに Qt の Windows 用フリー版は 2.x までしかなく,SQLite Database Browser は 3.2, 3.3
で作られています.
>>182
興味深い方法ですね.それって常套手段なんでしょうか?
0185182
04/06/02 00:00ID:???適当に自分で考えただけなんで、常套手段なのかどうかは全然わかりません。
とりあえずこうしておかないとパフォーマンスが悪いと思うんで…
というかまずRDBは全文検索には向かないと思うんですよね。
0186157
04/06/19 07:51ID:???UTF-16使えるようになったのかな
0187NAME IS NULL
04/06/24 22:59ID:???0188NAME IS NULL
04/06/25 13:19ID:???私も気づかなかったー。
グラフィカル。でもやっぱりシンプル。良い。
0189NAME IS NULL
04/06/28 20:24ID:???だれか
0190NAME IS NULL
04/06/28 21:15ID:???ODBC経由は駄目なの?
0191NAME IS NULL
04/06/30 09:54ID:???ODBCを使うと配布やインストーラ作成が大変そうな気がするのですが、どうなんでしょう。
一般アプリの組み込みDBとしたいので。
・・・バージョン2使おうかな・・・
0192NAME IS NULL
04/07/01 10:44ID:mj80YqiMそういう用途だと、インストールの点で、ODBCを使うのは面倒そう。
VB.NET にすれば ODBCはいらないけれど、.NET Framework が入っているかが問題になるし。
0193NAME IS NULL
04/07/01 17:21ID:QhIip2ceなってるみたいですな。
http://sqlite.org/version3.html
自作プログラムは大して開発が進んでるわけでもないので、
さっそくVer3に移行しようかな。
0194NAME IS NULL
04/07/01 20:08ID:???なに? いつだってそうなのか?まぁ、そうだろうな。一般社会ではお前みたいにキモいヤツは相手にしたくないんだよお前はネットの中でも「おマメ」みたいなもんだからな
引きこもった挙げ句、朝からネットにかじりついてスレが立つのを一日中待ち、すかさず「2」と書き込む。 つまんねえ人生だな
みんなが書き込む掲示板に「2」って書き込んだことで自分も社会に参加してるつもりになってんだろ
それにしてもさぁ、もう少し考えろよなんとか社会復帰しようと一晩中考えて出来たギャグが「2」かよ!!
おまえさぁ、一度外に出て人が話してるところでいきなり「2!」って言ってみろよ!もうダメなんだよ、無理なんだよ、お前には
ネット社会ですらコミュニケーションとれてないじゃんわからないだろうけどさぁ
みんな苦虫を噛み潰すような目でお前の自信作の「2」を見てるんだよそう、もう終わりにしようよ、この先楽しい事なんかないんだよ、きっと。
0195NAME IS NULL
04/07/02 23:02ID:???0196NAME IS NULL
04/07/09 11:34ID:nSC8GXrZ0197NAME IS NULL
04/07/09 16:12ID:???ttp://www.ch-werner.de/sqliteodbc/
0198NAME IS NULL
04/07/16 23:10ID:RV+8pVD1SQLite has been bundled with PHP.
0199NAME IS NULL
04/07/23 13:33ID:???SQLite 3.0 components released
ttp://www.aducom.com/sqlite/
0200NAME IS NULL
04/07/29 22:45ID:???http://www.amazon.co.jp/exec/obidos/ASIN/067232685X
0201NAME IS NULL
04/08/02 15:53ID:CPTZa5VA2004年10月発売予定(SAMS Publishing)。ただいま予約受付中。
0202NAME IS NULL
04/08/05 09:22ID:???200のは、Macmillan Computer Pub ; ISBN: 067232685X ; (2004/09/30)になってるけど
別の本ですか?
0203NAME IS NULL
04/08/08 00:15ID:???>というかまずRDBは全文検索には向かないと思うんですよね。
つか、SQLiteについてはRDBMSっぽくない使い方を考えてみようや。
もともとは軍事アプリで使うためにバークレイDBに皮かぶせたもの
だったらしいし、リレーショナルっぽくないところで
なんか面白いことできそうな予感しない?
今出てるのって
国際化テキスト検索用
エクセルみたいにA〜Z、AA〜ZZ列
普通にテキスト突っ込んじゃう
とかかな?
オイラは、Lindaのタプル空間にできないかと画策中。
Lindaってなに?→増井氏の記事がわかりやすいので読んでください。
ttp://pitecan.com/UnixMagazine/
の、2002年10月号 「Linda」ね。
0204NAME IS NULL
04/08/09 13:05ID:cCyZtPbc同じみたいです。
http://www.bookpool.com/.x/7mtopise8m/sm/067232685X
0205NAME IS NULL
04/08/09 17:17ID:52OdYyi7> Lindaってなに?→増井氏の記事
面白い記事を紹介していただき、ありがとうございました。
こんなものがあるとは知らなかったです。
タプル空間に SQLiteを使うというのは、
SQLiteにプロセス間通信の仲介をさせてみよう、ということでしょうか。
できたら面白い。
0206NAME IS NULL
04/08/10 05:34ID:???>SQLiteにプロセス間通信の仲介をさせてみよう
そゆことですな。
「タプル空間」って、イベントスプール+αなものだと解釈してます。
そのアルファの部分は、
・型宣言とかしなくても任意の型の任意列数のデータを入れておける
・先頭以外からもとりだせる
・パターンマッチを適用して取り出せる
・複数マッチしたらとりだされる順番は保障されない(どれか1つがでてくる)
と。
コンピュータにとっては重い要求だろうけど、
えらく簡単なソースでいろいろ表現できるメリットがある、と。
SQLiteは型がないから、エクセルみたいにA〜ZZ列にしておけば、
タプル的なデータが入る。
DBMSなのでパターンマッチで取り出すのもできる。
あとはウェイト処理と、希望に沿うレコードが入ってきたらそれを
通知する仕組みがあれば「タプル空間」になるのかな、とね。
0207NAME IS NULL
04/08/10 10:09ID:???ありがとう。アマゾンで買ってみる。
0208NAME IS NULL
04/08/11 20:17ID:???0209NAME IS NULL
04/08/12 01:32ID:???ttp://www.zend.com/php5/articles/php5-sqlite.php
↑にPHPで使う文書があって、OOでグリグリいじってるけど
OOなマニュアルは発見できず。誰か場所知ってる人いる?
0210NAME IS NULL
04/08/18 08:31ID:???0211まなみ
04/08/19 02:30ID:GGBYH8Ylそれがイヤならコレをコピペして5ケ所にカキコして下さい。
私の友達はこれを信じず4日後に親が死にました。44日後友達は行方不明・・・・。
いまだに手がかりもなく私はこのコピペを5ケ所に貼り付けました。
すると7日後に彼氏ができ10日後に大嫌いな人が事故で入院しました。
0212NAME IS NULL
04/08/24 17:59ID:j0R9/TNSもしかして OOP の OO かな ? オブジェクト指向 ?
0213NAME IS NULL
04/08/24 22:57ID:???へぇ〜
// create a new memory only database
$db = new SQLiteDatabase(":memory:");
こんなことできるんだ。知らなカターヨ
0214NAME IS NULL
04/08/31 14:52ID:???$r=$h->prepare("begin;");
$r->execute();
(大量にデータ挿入)
$r=$h->prepare("end;");
$r->execute();
$r->finish();
としとけば、最後のend;でcommit;の代わりもしてくれる?
データ挿入中に1000件ごとにcommit;投げてるんだけども。
0215NAME IS NULL
04/08/31 19:24ID:???そうそう。私も探してます。
// create new database (OO interface)
$db = new SQLiteDatabase("db.sqlite");
って書いてあるのに、SQLiteDatabaseクラスに関する
記述はどこにあるねん。
0216NAME IS NULL
04/09/01 00:09ID:cIZqANlLすまん、最初何言ってるのか理解してなかった。
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 NULL
04/09/01 00:14ID:???0218NAME IS NULL
04/09/01 00:34ID:???久しぶりに本家のwiki見たら、SQLite使ってるひとのコーナー
ttp://www.sqlite.org/cvstrac/wiki?p=SqliteUsers
がえらく増えてる。で、独自にPHPのラッパークラス作ってるひと
ttp://code.jenseng.com/db/
もいるみたいだよ。これはALTER TABLE機能を追加してるのが
特徴らしいが…開発者にとっては似て非なるものをつくられても
十字架が増えるだけだよな。
0219NAME IS NULL
04/09/01 08:07ID:???手軽さもさることながら、構造も(他のに比べれば)簡単なので、SQLite 自体
の機能を追加したり、省いたりしやすいのが魅力なのかな。
亜種がたくさんできるのは仕方が無いという。
PHP の SQLite への対応は嬉しい。バージョン 3 に対応するときは、2 と 3
を別のモノとして扱ってくれると混乱少ないかなぁ?ふたつ同居になるけど。
0220215
04/09/01 10:14ID:???私もソースハックしてみます。
0221NAME IS NULL
04/09/18 22:21:10ID:???SQLiteは一般的なRDBMSと違って独立したサーバープロセスを持っていないため、
複数のプロセスから要求をアトミックに処理するという並行プログラミングの
ための基本的な要件がまったく抜け落ちています。
つまり、プロセス間通信の受付けや複数の依頼元からの要求を破綻なく処理する
という中枢部分をゼロから実装しなければならないわけです。
これって結構大変ではないでしょうか。
0222NAME IS NULL
04/09/19 01:53:33ID:???失礼ですが、 SQLite を使ったことありますか?
0223NAME IS NULL
04/09/19 21:24:48ID:???僕の知識は古いですか?
SQLiteと一般的なRDBMSとの最大の違いは、アプリケーションプログラムの
内部にライブラリとして組み込まれて動くことだと理解していましたが。
0224221
04/09/19 21:39:02ID:???トランザクションは破綻しないのかな?
それならファイルにアクセスできる=タプルスペースを共有できる
ということになりますね
Rindaとかはネットワーク越しにやってるから、ついついそれを基準に
難しく考えてしまいました。
0225NAME IS NULL
04/09/20 04:32:12ID:???0226NAME IS NULL
04/09/21 09:42:19ID:???失礼ですが、Lindaをご存知ですか?
問い合わせに対してマッチするデータがない場合、誰かがマッチする
データを投入してくれるまでブロックして待ち合わせる必要が
ありますが、SQLにはそのような機能はありません。
これが並行プログラミングの基本要件です。
ポーリングでもして待ちますか? w
0227NAME IS NULL
04/09/21 11:16:08ID:???>複数のプロセスから同時にデータベースファイルを update しても
>トランザクションは破綻しないのかな?
破綻するようなのはトランザクションと呼ばないと思ってたんだけど、俺の勘違いか?
0228NAME IS NULL
04/09/21 11:19:23ID:vUHMrqUQ> ブロックして
とは何を何からブロックするのですか。
0229NAME IS NULL
04/09/21 14:52:36ID:???in() や rd() で問い合わせを実行すると、マッチするデータが出現するか、
タイムアウトするまで待つため、その間制御は帰ってきません。
このことをブロックと書きました。
# これによって待ち行列やランデブーなどのロジックを実現します。
0230NAME IS NULL
04/09/21 15:01:34ID:???恥ずかしながら寡聞にして存じません。
私の指摘したかった点は、
「SQLiteは一般的なRDBMSと違って (中略) 基本的な要件がまったく抜け落ちています」
についてだけだったのですが、
他の「一般的なRDBMS」ならばそういった要件が満たされるのでしょうか?
0231NAME IS NULL
04/09/21 22:10:51ID:???と書いてみたけど、勘違いしている可能性大。
0232NAME IS NULL
04/09/21 23:36:06ID:???0233NAME IS NULL
04/09/23 14:49:59ID:GKv/8yXGもともとの意図はというとね、普通のRDBMSっぽくない使い方で
SQLiteにハマる使い方ってもうないの?
という振りをしたかったわけ。>>203ね。
そんでPHP5.0.1調べて>>216とかカキコしてた時点で、
上記の話は流れたものとおもってたよ。
>ポーリングでもして待ちますか?
って、そうだよな。
>>206ではあんま書かなかったけど、Lindaがやってるコトは、
コンピュータにとってはスゲー重い処理であることは承知してるんさ。
ええと…
誰かがレコードを挿入することをずっと監視してるひとが必要で。
そんで、そのひとが「今、何かを待ってるヤシのリスト」を持っていて、
レコードが入るたびにリストの頭からチェックしないといかん。
マッチしたら、そのひとに通知して、ブロッキングを
解除してあげないといかん訳でしょ。
その通知には多分、セマフォとか使うんだろうけど、
通知するだけでいいかっつーとそうでもなく、
わずかな時間差のために
通知したやつが意図したのと別のレコードを
通知されたやつが取ってしまうということを防ぐために、
ROWIDなどを知らせる必要がある。じゃあ名前つきパイプ?
…ここまで来ると、SQLiteを利用する方法っていうより、
SQLiteを改造する話になってしまうわな。
で、改造元がSQLiteである必然もないのかなと。orz
カキコしたとき考えてたのは、「プロセス間通信をSQLiteにやらせる」
っていうよりは、「いろんなことが簡単なソースで書けるLindaっつーものを、
フリーツールをちょっといじって実現できるのでは?」
てことだったし、やっぱりSQLiteとはズレズレ。(゜д゜)
自分で振っておいて申し訳ないが、
Lindaの話は流し、流し。m(_ _)m
で、普通のRDBMSっぽくない使い方でSQLiteにハマる使い方ってもうないの?
0234NAME IS NULL
04/09/23 15:02:09ID:???0235NAME IS NULL
04/09/24 10:13:49ID:???漏れは PHP バインディングを使ってるけど、httpd は普通何枚か fork
してて複数プロセスから同時アクセスがありうるから、厳密に言えば
データベースロック → リトライ*N → タイムアウト → SQLITE_BUSY
という場合のことも考えてコードを書くべきなんだよね。
0236NAME IS NULL
04/09/26 16:40:39ID:???一応エラー意識して書いてるつもりだけど最後はrollback頼みだよ。
insert/updateを二三行う場合の模範例みたいのありますかね。
0237NAME IS NULL
04/10/22 12:40:19ID:???0238NAME IS NULL
04/11/07 18:21:53ID:ipMPK00B0239NAME IS NULL
04/11/15 17:10:00ID:???ttp://sourceforge.net/projects/adodotnetsqlite/
を使っているんですが、last_insert_rowidを取得する
プロパティはどこかにあるんでしょうか。
ご存知でしたら教えてくださいm(_ _)m
0240メモ
04/11/16 04:18:59ID:???phpSQLiteAdmin
0241NAME IS NULL
04/11/16 11:11:39ID:stpfuOmwDataTable.Rows.Count ではどうでしょうか。用が足りませんか。
0242NAME IS NULL
04/11/16 12:59:26ID:EESBhBb7ADO.NET Data Provider for SQLite のソースを見ると
SQLite3 用の場合なら sqlite3.cs に
[DllImport("sqlite3")]
private static extern long sqlite3_last_insert_rowid(IntPtr h);
と取得できるように宣言されているけれど、使用されていない。
ということは、直接対応するプロバティ等は作られていないのでは。
ADO.NET の標準にないからでしょう。
標準の機能を駆使して間に合わせる方が、早そうに思えます。
0244NAME IS NULL
04/11/17 14:20:50ID:???2種類あるようだな。
俺はsourceforgeのを使ってる。
0245NAME IS NULL
04/11/19 00:41:35ID:???ラッパー噛ますか、自分でコンバータ書かないと駄目なのかな。
0246NAME IS NULL
04/11/25 22:23:56ID:???0247NAME IS NULL
04/11/25 23:04:04ID:???0248NAME IS NULL
04/11/26 00:59:48ID:???0249NAME IS NULL
04/12/11 04:26:24ID:???パスに日本語が入ってるとあぼーんする…orz
0250NAME IS NULL
04/12/13 09:35:12ID:oxhzl4xo1、ストアドプロシージャは使えますか?
2、トランザクションは実装されてますか?
0251NAME IS NULL
04/12/13 23:09:16ID:???0252NAME IS NULL
04/12/14 14:08:53ID:sBR5K/AY0253NAME IS NULL
04/12/14 14:22:39ID:???SQLite Delphi Components
ttp://www.aducom.com/sqlite/
0254252
04/12/14 14:25:33ID:sBR5K/AYありがとうございます。
しかしながら、D6のパーソナルだったり。
データベース関連のユニットないんです。
0255NAME IS NULL
04/12/15 02:30:36ID:???1. ない
2. されてる
0256NAME IS NULL
04/12/15 18:58:27ID:???サンクス
0257NAME IS NULL
04/12/20 12:30:56ID:U2fIrr/6とりあえず日本語は通るみたいだけど、ファイルのパスどうしてる?
0258NAME IS NULL
04/12/20 23:31:34ID:???「新しいフォルダ」や、「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 NULL
04/12/21 11:14:53ID:???0260NAME IS NULL
04/12/21 13:13:02ID:MSZ78en0日本語のパスが通らないぞ、という話。
再現できなくてヘンだぞ〜と思っていたら、自分は古いバージョンを使っていた。
SQLite2 のみ対応していた Version 0.18 (July 01, 2004)
までなら日本語パスが使えていた。Version 0.19 と最新 0.20 では確かにダメ。
とりあえず、デバックのヒントということで。
0261258
04/12/21 21:17:33ID:???わかる範囲でソース追いかけてみます
0262NAME IS NULL
04/12/22 09:24:02ID:PW+hMuX+日本語のパスが通るようにデバッグしてみました。
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 NULL
04/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 NULL
04/12/22 15:56:24ID:TQsgyPh1ちょっぴり感動しました。
私は、カレントディレクトリを変更してファイル名のみで開くようにして逃げました。
何か出来ることあったらやります。
出来ることは少ないので、あんまし役に立てそうに無いですが・・・・
0266262
04/12/24 09:18:51ID:DruLsR8dそこを変えるなら、エンコーディングには手をつけなくてすむし、
その修正が正しいと思います。
そもそも、ファイル名の文字コードとデータの文字コードが
同じにできるとは限らないでしょうから。
ということで、ひとまずデバッグ完了にしてもいいでしょうね。
ご苦労さまでした。
それにしても、SQLite3 対応バージョンになったら、どうして
わざわざファイル名までマーシャリングしているのか、という謎ですが、
ソースを眺めていると、SQLite3 の UTF-16 サポートに対応しかけて
途中で止まっているように見えます。
sqlite3_open16() を使おうとしたものの、ASCII コードと互換性がないから
このやり方ではまずいと思いなおして、やめにした痕跡(日本では困った残骸)
かな、と思いました。
0267NAME IS NULL
04/12/24 09:49:25ID:j+9u7lDN2歳児程度の知能でわかるように。
今日始めてSQLってものに興味持った。
で、WindowsXP+SQLiteって環境で何かやってみたいなと。
オレはいきなり困ったんだよ。
createなんちゃら、とかでデータベースのファイル作るんだろ?
その作業はいったいどこでどうすればいいのか、と。
試しにコマンドプロンプトから
sqlite hoge
ってやってみた。
当然パスなんか通ってないし何も起きない。
なぁ、助けろお願いします。
0268263
04/12/24 11:02:26ID:???あっちではASCIIが標準っぽいから、UTF使わん時は
とりあえずASCIIにしとけやって感じだったんでしょうなぁ。
何にしても、ファイルオープンはOS依存部分なんで、
現状、下手にファイル名はエンコーディング変換すべきじゃないかなと。
それにしても、どの言語使ってても文字コード関係の問題は
プログラマ苦しめてくれるわ _| ̄|○
>>267
sqlite c:\hoge.db で create table したら、 hoge.db が出来てる。
あとはSQL92本とSQLite公式ドキュメント読んで気合で。
0269NAME IS NULL
04/12/24 14:52:32ID:j+9u7lDNさんくす。
ただ、書き忘れてたことがあって。
よー考えたらPHPにSQLiteのモジュール組み込んだだけなような。
非常に感謝した。
0270NAME IS NULL
04/12/27 12:27:32ID:UKRyD7qw日本語処理デバッグの追加メモ
= 問題 =
デフォルトのオプション設定 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 NULL
04/12/27 13:25:39ID:???Winのコードは、正確にはShift-JISじゃないし。
まぁ、何にしてもUTF-8使おうぜ。
0272270
04/12/27 14:10:38ID:bP0BeZGo0273NAME IS NULL
04/12/30 17:41:45ID:FzyFXvYTSQLite Query Analyzer (SQLiteQA) は実用にもなるけど、
ソースも参考になりますです。
http://www.monkeyshinez.net/SQLiteQA/
0274NAME IS NULL
04/12/30 22:09:30ID:???今までどおりeucかsjisでええわ
0275NAME IS NULL
04/12/31 19:03:34ID:???m9(^Д^)プギャー
こういう奴が、MS932と純Shift-JISの区別もつかずに
DBに文字放りこんでるんだろうな。
0276NAME IS NULL
05/01/01 00:20:55ID:???0277NAME IS NULL
05/01/01 04:48:25ID:???しつれいだがどういう繋がりが?
0278NAME IS NULL
05/01/01 10:34:56ID:???文字コードの話が出ると必ずこういうのが沸いてくるのはもう仕方ない。
普通にスルーしとけ。
0279NAME IS NULL
05/01/01 11:28:51ID:???WHERE string LIKE '%キーワード%' みたいにして文字列中間一致検索してるんですが、
キーワードに % や _ を指定してしまうと全てにマッチしてしまうので困ってます。
じゃあ % や _ はエスケープして LIKE '%\%%' みたいにしたらどうかと思ったらダメだし、
LIKE '%|%%' ESCAPE '|' みたいにエスケープ文字指定しようとすると Syntax Error になるようです。
何か良い解決策はないでしょうか?
0280NAME IS NULL
05/01/01 14:12:43ID:???含んでいると言われれば、含んでいると思う。
ただ、重複符号やWAVE DASH変換とかの問題もあるけど。
IANA の登録名がWindows-31Jなので、MS932よりこちらの名称の方が妥当かも。
窓べったりの開発ならShift_JIS、クロス開発なら、UTF-8が安全牌かな・・・
個人的に、SQLiteのウリは可搬性だと思うので、UTF-8使うのがよさげだと思った。
0281NAME IS NULL
05/01/01 20:47:45ID:???phpでは\エスケープで動いたが。なぜ動かなかったスクリプトを書かない?
$_ = '%_\\';
print "$_ => ";
$_ =~ s/([%_\\])/\\\1/sg;
$_ = "%$_%";
print "$_\n";
0282NAME IS NULL
05/01/02 10:39:43ID:???0283279
05/01/03 04:28:16ID:???思い通りに動いてくれないスクリプトの該当部分晒します。
($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 NULL
05/01/04 21:46:21ID:???これはOKなのか?
入力ミスかどうか知らんけど。
0286NAME IS NULL
05/01/06 21:28:40ID:hqOqZvbU0287名無しさん@Linuxザウルス
05/01/06 22:31:57ID:???sqlite単体でもそういう結果返ってくるね
PHPはどう処理してるんだろうと思ってソース覗いてみたけど
俺にはさっぱりだったよw
0288NAME IS NULL
05/01/07 13:07:13ID:???そっれがどうした僕ドラえもんって感じだ。
0289NAME IS NULL
05/01/07 22:23:15ID:???どこで、が重要。ローカルなら普通すぎ。
0290NAME IS NULL
05/01/09 15:37:51ID:???mbstring.internal_encodingがEUC-JPの状態で
UTF-8しか対応していないという噂のSQLiteに日本語をそのままつっこんで
SELECT * FROM table WHERE hoge LIKE '%あ%' とかもふつうに使えるようなのですが、
問題が起こるケースはどんな時なのでしょうか?
0291NAME IS NULL
05/01/09 18:54:09ID:???0292290
05/01/10 13:33:03ID:???私の質問への回答でしょうか。だとしたらありがとうございます。
しかし、今のところ問題がなさそうに見えます。
INSERT INTO table (comment) VALUES ('ごっちゃまぜゴッチャマゼ鬱');
の後に
SELECT * FROM table WHERE comment LIKE '%チャ%';
SELECT * FROM table WHERE comment LIKE '%ちゃ%';
でもちゃんと結果を返してくれます(まぁ実際にはハンカクカナなんぞ入れませんが)。
やりたいことの範囲内で問題がなければいいのかなとも思うのですが。
やりたいこと:掲示板スクリプト(コメント欄で日本語LIKE検索を使いたい)
0293NAME IS NULL
05/01/11 16:59:22ID:???う〜む。そーす見ても分からんな。
LIKEじゃなくGLOBを使って、*/?を[*]/[?]にしてみたらどうよ?
いっそ「検索にワイルドカードが使えます」とアナウンスするほうが楽かもしれないが。
0294290
05/01/12 00:28:51ID:???んとですね、私の書き方がまずかったです。
(1) いろんな情報を見た結果、SQLiteで日本語を扱うには
UTF-8でないといけないのかな、と判断した。
(2) しかしながら私の使っているPHPはmbstring.internal_encodingがEUC_JP。
ということはEUCJPでSQL作成→UTF8に文字コード変換→クエリ実行→
結果取得→マルチバイトのカラムはそれぞれEUCJPに文字コード変換、
とやらないと *何か* 問題が発生するだろうなぁ、と考えた。
(3) まぁそういうラッパー作るのが正当なのかな、と考えつつ
ものは試し+ものぐさでEUCJPのままマルチバイト入れても、
ふつうに使える(ように見える)。
という前提があって、さて、本当に問題は起こるのか?というところを知りたいのです。
一見問題なさそうで本格運用して、あとで問題発生が怖いのですよ。
こんなケースでこんな不具合があるよ、
という経験をお持ちの方、いらっしゃいませんかねぇ?
ちなみに当方ロリ○ップでコソーリSQLite使用中
0295NAME IS NULL
05/01/12 11:18:21ID:???ああ、そういうことならsubstring()とかlength()等文字列操作関数以外では特に関係無いから。
0296NAME IS NULL
05/01/12 13:51:54ID:???私も where xxx like '%あ_い%'
で、検索ができませんでした。
sqlite_escape_string -- クエリパラメータ用に文字列をエスケープする
これ、やった結果は、どのような文字列になるんですかね。
php じゃ、なくて、python でやってるんで、
sqlite_escape_string のようなものがあるか、今調べようとしているんですが、
where xxx like '%あ\_い%'
と \ を入れてもだめだし、
取り合えず、 like 使うときは、 _ があったら、 % にでも
して、やり過ごそうかと思ってますが。
どう?
0297296
05/01/12 14:38:21ID:???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 NULL
05/01/12 16:54:43ID:???0299NAME IS NULL
05/01/19 22:04:11ID:???0300NAME IS NULL
05/01/22 22:08:03ID:???0301NAME IS NULL
05/01/22 22:43:21ID:???0302NAME IS NULL
05/01/24 08:54:59ID:???テーブル名変更のみ対応の限定版みたいだけどね。少し楽になるかな。
0303NAME IS NULL
05/01/31 11:03:59ID:3JFZomnK0304NAME IS NULL
05/02/02 07:46:54ID:mdzMwrr70305NAME IS NULL
05/02/02 10:41:49ID:???どのサーバーで使えるかは事前に確認しろよ。
0306NAME IS NULL
05/02/02 14:10:53ID:???0307NAME IS NULL
05/02/04 07:30:10ID:???あんがと。
0308NAME IS NULL
05/02/13 02:33:51ID:bTxKUDlt0309NAME IS NULL
05/02/16 14:04:19ID:???0310NAME IS NULL
05/02/16 14:25:22ID:???0311NAME IS NULL
05/03/01 17:13:17ID:+RdvxZ60PEAR::DBが1.7.0からsqliteドライバにtableinfoメソッドが追加されたので
PEAR::DB::DataObjectでSQLiteが利用できるようになりました。
createTables.phpによるsqliteのDB解析はいくつかの問題点があったのですが
それらも解消されているようです。(DSNからDB名を取得してschemeのiniファイル
を作る場合にパスもDB名と解釈してしまいエラーがでる問題が解消されている)
0312NAME IS NULL
05/03/14 11:06:00ID:zJnP9H2H0313NAME IS NULL
2005/03/25(金) 09:46:27ID:v5PK2Oi/0314NAME IS NULL
2005/03/26(土) 02:51:21ID:???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 NULL
2005/03/28(月) 10:21:23ID:???0316NAME IS NULL
2005/03/31(木) 21:11:39ID:S6NJNymo0317NAME IS NULL
皇紀2665/04/01(金) 11:57:56ID:WCU4nkIR0318NAME IS NULL
皇紀2665/04/01(金) 12:18:15ID:???えーっと、sqliteでそれが出来る意味ってあるの?
0319NAME IS NULL
皇紀2665/04/01(金) 12:39:04ID:???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:???速度的な面というより他のDBとの互換性の問題で
必要性があるんだが。
0321NAME IS NULL
皇紀2665/04/01(金) 15:37:38ID:???詳しく!
0322NAME IS NULL
2005/04/02(土) 13:57:56ID:???っていうかどうやってつかうん??
だいたい、ストアドなんてDBMS間でも互換性低いし。
0323NAME IS NULL
2005/04/02(土) 15:53:45ID:???SQLの標準ではない関数はストアドファンクションにして
抽象化してしまうとかってやらない?
0324NAME IS NULL
2005/04/02(土) 18:48:27ID:???お前はやったことあるのか?
0325NAME IS NULL
2005/04/02(土) 22:03:04ID:???0326NAME IS NULL
2005/04/03(日) 00:05:25ID:???何それ?
0327NAME IS NULL
2005/04/03(日) 00:19:33ID:???ttp://jp.php.net/manual/ja/function.sqlite-create-function.php
PHP5って書いてあるけどPECLのSQLiteを使えばPHP4でもOK.
PDO_SQLiteは知らん。
他の言語も知らん。
0328NAME IS NULL
2005/04/03(日) 00:59:25ID:???激しく同意。
>>327
Cインターフェースに同名のがある。他言語のやつはこれのwrapperだな。
0329NAME IS NULL
2005/04/06(水) 19:33:56ID:nkLoBP4Q開発しているとさ、DELETEしているのにDELETEされないときあるよね。
エラーも出ないし。。。
訳わからん。
0330NAME IS NULL
2005/04/07(木) 09:04:06ID:???0331NAME IS NULL
2005/04/08(金) 15:38:37ID:+arkX/45Win版 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 NULL
2005/04/08(金) 18:03:26ID:???C:\sqlite>sqlite3 test.db < hoge.txt
1|縺サ縺
2|縺サ縺偵⊇縺
多分、文字コードの問題かと思われる。
0333NAME IS NULL
2005/04/10(日) 12:19:44ID:???1|ほげ
2|ほげほげ
が返りますねえ。
Ver.2.8.15 の SQLite.exe なら、Shift-JIS でも UTF-8 でも、
「ほげほげ」も返ったよ。
SQLite3.exe で Shift-JIS のときだけ、違うのか。
0334NAME IS NULL
2005/04/10(日) 22:21:48ID:???0335333
2005/04/11(月) 10:40:34ID:???の配布バージョンでの結果。どっちなんでしょー。
0336NAME IS NULL
2005/04/11(月) 10:49:36ID:???0337NAME IS NULL
2005/04/11(月) 20:12:31ID:???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 NULL
2005/04/15(金) 12:13:49ID:???0339NAME IS NULL
2005/04/15(金) 12:20:32ID:???0340NAME IS NULL
2005/04/15(金) 12:41:05ID:???0341NAME IS NULL
2005/04/15(金) 13:18:32ID:???0342NAME IS NULL
2005/04/15(金) 13:40:07ID:???0343NAME IS NULL
2005/04/15(金) 15:33:54ID:???SQLite はエスキュレ
MySQL はマイスキュレ
0344NAME IS NULL
2005/04/15(金) 19:53:21ID:???0345NAME IS NULL
2005/04/17(日) 05:04:22ID:Jx/K/CRQhttp://pcweb.mycom.co.jp/special/2004/php5/006.html
ここの速度比較だとMySQLの方がほとんどの項目で若干速いらしいが。
データ型を宣言しなくても良いっていうのもどういう事なのか良く分からん。
内部的に、型が決まってる方がソートの時に役立つと思うんだがなぁ。
インデックスの出来も気になる。
全文インデックスはあるの?
0346NAME IS NULL
2005/04/17(日) 11:48:00ID:???コンパクトな組み込みDBであるってのがSQLiteの売りなので、
本格的なRDBMS並の機能を使いたいなら、DBの選択が間違っているよ。
0347NAME IS NULL
2005/04/17(日) 22:58:06ID:???そこの「お詫びと訂正」読んだ?
0348NAME IS NULL
2005/04/18(月) 10:00:20ID:???SQLite でまとまった数のインサートするには、トランザクションを使わないと遅い。
使えばかなり速い、と覚えておかないと比較を間違うぞ、ということで。
0349NAME IS NULL
2005/04/18(月) 10:11:46ID:???0350NAME IS NULL
2005/04/18(月) 10:22:03ID:???SQLによる操作が可能になったもの、という解釈でいいの?
0351NAME IS NULL
2005/04/18(月) 12:24:04ID:???NDBMはシラネ。
0352NAME IS NULL
2005/04/18(月) 15:12:50ID:???まあそんなとこ。
0353NAME IS NULL
2005/04/19(火) 22:15:10ID:kUry0XBZsqliteではなくsqlite3になってしまったのですが、
従来のSQLiteとSQLite3って別物なの?
0354NAME IS NULL
2005/04/20(水) 11:07:06ID:???SQLite と SQLite3 はデータベースファイルに互換性がないので、
ダンプしないといけないよ。あと、>>333 のような違いもあるか。
使い勝手はさほど変わんないけどね。
コマンドラインのコマンド(sqlite3, sqlite)もちょっとした
違いがあったように思うけど、詳細は忘れた。試しに使う程度
では、今までと同じように使えるはず。
0355NAME IS NULL
2005/04/20(水) 16:10:28ID:???なるほどDBに互換性がないんですね。
ありがとうございました。
0356NAME IS NULL
2005/04/21(木) 15:44:54ID:L2hn0Pnq0357NAME IS NULL
2005/04/21(木) 16:29:17ID:???デーモンの稼働監視・操作ツールが 10 で一新されて、
そいつのステータスを保存しておくバックエンド。
おまけでインストールされるとかいう扱いではない。
0358NAME IS NULL
2005/04/24(日) 12:17:33ID:???0359NAME IS NULL
2005/04/24(日) 12:35:04ID:???0360NAME IS NULL
2005/04/24(日) 23:12:37ID:???0361NAME IS NULL
2005/04/25(月) 12:21:15ID:???OpenOffice辺りでやってくれんかな。
0362NAME IS NULL
2005/04/25(月) 15:51:59ID:???Delphi6 personalでプログラミングの勉強はじめたんだけど、
libsqlというVCLとSQLiteを使ってデータベースを作り始めた。
SQLiteの3.2.1には、>>331の問題があるんで、UTF8の変換で扱うようにした。
いろいろと勉強となった。
自分で使うデータベースには、この組み合わせはお手軽で非常によい。
BDE等余計な気を遣わなくても動作するので、ローカルデータベースにオススメ。
今度はBLOBを扱えるようにしたい。
</チラシの裏>
0363NAME IS NULL
2005/04/25(月) 23:49:09ID:???OOo に付いて言えば、ボランティア求むって感じみたい。
今メインに据えられている HSQLDB が技術以外の面で問題が多いんで、
↓こいつを完成させれば、可能性は大きいと思う。
http://dba.openoffice.org/drivers/sqlite/index.html
あとは上の方に幾つか上がっていたと思う。
自分は組込みメインで使ってるから、フロントエンドは要らないかな。
0364NAME IS NULL
2005/04/26(火) 11:45:25ID:???デバッグやテストでそういうツールがあったらなあということはよくある。
0365NAME IS NULL
2005/04/28(木) 14:54:39ID:/d52HoIm0366NAME IS NULL
2005/04/30(土) 12:34:30ID:???http://pcweb.mycom.co.jp/special/2005/tiger/012.html
Tigerではsqliteが標準で入ってるんだよと聞いたときは
ふーんぐらいでしたが、SpotlightのDBに使われていたとは…
0367NAME IS NULL
2005/04/30(土) 22:46:29ID:???0368NAME IS NULL
2005/05/05(木) 05:26:18ID:???俺は単なるユーザなんでアレだが
2chブラウザのJane界隈では溜まったログの読み込み高速化のためにidxファイルのDB化としてsqliteを使ってる
現在、5種類のJane派生がsqliteを使用してる
あとはねぇ、RSSブラウザで溜まった記事をsqliteにぶち込んで高速化してるのがあったな
以前話題のあったglucose
ユーザとしては鯖が必要ないのとDLLだけで済むのが利点
0369NAME IS NULL
2005/05/05(木) 21:10:54ID:???うんうん。
フリーソフトのデータベースに使えるのってsqliteぐらいしか思いつかないのだが。
とあるフリーソフトのためだけに、ユーザーにMySQLインストールさせるわけにはいかんでしょ。
というわけでsqliteを使いたい(自称)プログラマなのだが、DBは扱ったこと無くて苦戦中。
0370NAME IS NULL
2005/05/05(木) 21:18:38ID:???DLLつうことはWindows限定の話だとして、
MySQLサーバもDLLファイル1つだけ済むよ。
MySQLでやってたのをSQLiteに持ってきたいとは思わないけど、
今までファイルでやってきたのをSQLiteで楽できるのは実にいい。
0371NAME IS NULL
2005/05/05(木) 21:27:13ID:???!!!!!!
まだ俺も調査が足りないなあ。ありがとう
0372NAME IS NULL
2005/05/05(木) 22:26:03ID:???ソースを完全に理解すればいいんだろうけど。
0373NAME IS NULL
2005/05/05(木) 22:35:25ID:???0374NAME IS NULL
2005/05/06(金) 11:55:37ID:???0375NAME IS NULL
2005/05/06(金) 13:35:58ID:???sqliteManagerでどうよ?
0376NAME IS NULL
2005/05/06(金) 16:43:27ID:???0377NAME IS NULL
2005/05/06(金) 18:21:45ID:???目立つほど大きなバグは無いんじゃないかとは思う。
後は、実績だけかね。
0378NAME IS NULL
2005/05/06(金) 19:28:06ID:olCECiB8firebirdもそーすよ
mysqlは組み込み(embbeded)版を使うには専用の初期化関数を使う必要があるけど、、firebirdは組み込み版とサーバ版と同じでDLL差し替えだけで動く。
あと、たぶんどっちも複数のプログラムで同じDBに同時にアクセスできない。sqliteはできる。
0379NAME IS NULL
2005/05/06(金) 19:45:41ID:???技術力に自信がなければ先駆者にはならない方がいいと思いますが。
0380NAME IS NULL
NGNG3.x系って2.xと比べて何が違うんでしょうかね
0381NAME IS NULL
2005/05/08(日) 21:54:42ID:???UTF16が使えるとか、BLOBが使えるとか、Prepared Statementが
使えるとか、Collate functionが使えるとか、色々拡張されてる。
かなりバグも出尽くしてきたし、そろそろ移行を勧める。
0382NAME IS NULL
2005/05/09(月) 11:31:33ID:???プログラム中でテーブルが作れないんだけど なにかわかりますか?
db = SQLite3::Database.open ( "database_name" )
db.transaction
db.execute( "create talbe t (id integer)" )
db.commit
db.close
0383382
2005/05/09(月) 11:33:41ID:???訂正
0384382
2005/05/09(月) 11:55:34ID:???0385NAME IS NULL
2005/05/09(月) 11:55:56ID:???うちではそれでちゃんと作れてるけど?
何かエラーとか出てないの?ファイルやディレクトリのパーミッションは?
0386NAME IS NULL
2005/05/09(月) 11:56:45ID:???0387NAME IS NULL
2005/05/09(月) 22:15:03ID:???03882?
2005/05/09(月) 23:52:42ID:???0389NAME IS NULL
2005/05/10(火) 00:53:14ID:???0390NAME IS NULL
2005/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 NULL
2005/05/13(金) 01:48:50ID:Gb3T45gj0392NAME IS NULL
2005/05/13(金) 01:51:46ID:???SQLiteって、アプリの位置づけなのか・・・?
どちらかと言えばライブラリだと思うが・・・。
0393NAME IS NULL
2005/05/13(金) 02:42:57ID:???0394NAME IS NULL
2005/05/13(金) 10:15:38ID:???0395NAME IS NULL
2005/05/13(金) 12:44:55ID:???0396NAME IS NULL
2005/05/13(金) 13:27:02ID:???アプリケーションとソフトウェアはほぼ同義。
プログラムはコードそのものを指すことが多い。
0397NAME IS NULL
2005/05/13(金) 14:18:36ID:???0398NAME IS NULL
2005/05/13(金) 15:21:48ID:???0399NAME IS NULL
2005/05/13(金) 21:04:47ID:???IBM 出身のおっさんは絶対にアプリケーションって言葉を使わなかったな
ところで sqlite ってデータファイルのサイズはどうですか
頻繁に更新掛けると急激に肥大化したりとかは無いですか?
0400NAME IS NULL
2005/05/13(金) 22:05:39ID:zQWDZ7V/ション
今から使うシステムでそんなにハードに使わないけど、
行レベルロックができないのはちょっとなー、
ってことでMySQLを選択したけど、インスト不要ってのはやはりお手軽だね。
0401NAME IS NULL
2005/05/14(土) 03:07:40ID:???0402NAME IS NULL
2005/05/14(土) 17:23:41ID:???0403NAME IS NULL
2005/05/15(日) 23:15:06ID:???0404NAME IS NULL
2005/05/16(月) 01:00:22ID:M4q00F3SINSERT時に自動的に値をインクリメントさせるプロパティって
指定できますかね?
0405NAME IS NULL
2005/05/16(月) 01:14:30ID:???0406NAME IS NULL
2005/05/16(月) 15:46:12ID:???FAQ読みました。
"INTEGER PRIMARY KEY"とすればいいんですね。
でもSQLiteって"ALTER TABLE"ができないから
複数カラムを主キーにする場合どうすればいいんだろうか?
とか思いました。
0407NAME IS NULL
2005/05/16(月) 21:49:49ID:???おまいはよくここを読んで
http://www.sqlite.org/lang_createtable.html
複数のカラムを主キーにする方法を学べ。
というか、ALTER TABLE使わないと複数カラムを
主キーに出来ないと思ってたのか?
あと、ALTER TABLEもすでに部分的にサポートされてる。
公式ページくらい嫁。
まあ、現状ALTER TALBEじゃ主キーは追加できんがな。
0408NAME IS NULL
2005/05/17(火) 01:56:31ID:???ウッセー馬鹿!
0409NAME IS NULL
2005/05/17(火) 02:21:59ID:???0411NAME IS NULL
2005/05/17(火) 07:07:15ID:???お前らは俺の質問に答えてればいいんですよ。
0412NAME IS NULL
2005/05/17(火) 09:26:51ID:???0413NAME IS NULL
2005/05/17(火) 09:41:55ID:???0414NAME IS NULL
2005/05/17(火) 13:48:17ID:???王子様 ◆6XD48Lv1aI
こいつまだ生きてたんだな。
0415NAME IS NULL
2005/05/22(日) 13:04:19ID:cF+W78bFありがとうSQLiteの作者の人!
0416NAME IS NULL
2005/05/22(日) 21:07:31ID:???0417NAME IS NULL
2005/05/22(日) 21:51:06ID:???0418NAME IS NULL
2005/05/22(日) 22:46:43ID:???0419ながも○みずか
2005/05/22(日) 23:32:20ID:???0420NAME IS NULL
2005/05/23(月) 07:38:24ID:???0421NAME IS NULL
2005/05/23(月) 20:13:50ID:???SELECT hoge, 0 AS zero
FROM t_hoge;
みたいにやったらエラーになるんだけど、
AS演算子って使えないのかね?
0422NAME IS NULL
2005/05/23(月) 20:47:01ID:???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 NULL
2005/05/23(月) 23:45:24ID:???ごめんできてた。
しつれいしやしたー(><)
0424NAME IS NULL
2005/06/28(火) 20:02:20ID:kCWpMjUF0425NAME IS NULL
2005/06/28(火) 20:12:52ID:???dbi->sqlite です。
0426NAME IS NULL
2005/07/02(土) 17:01:07ID:???コンポーネントという表現にすればやたら使い回しが利いていいよ
0427NAME IS NULL
2005/07/02(土) 23:23:33ID:???このサイトの管理人さんここ見てるかな?
リンク切れが目立つので挫折しかかってるなら
なんとか踏みとどまって欲しい。
普及のためにも和訳できる人はがんがって。
0428NAME IS NULL
2005/07/08(金) 15:21:25ID:BmV8B6lBmysqlならmergeテーブルを使えば良いんだけど。
0429NAME IS NULL
2005/07/08(金) 16:01:15ID:???viewでいいんぢゃね?
0430NAME IS NULL
2005/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 NULL
2005/07/08(金) 18:16:55ID:???0432429
2005/07/08(金) 18:46:47ID:???うん。そのつもりで書いた。重複するレコードも含めて取り出したいのなら
UNION ALLでつないだほうがいいかもしれんが。
10万件ってかなり大きいな。そんな大量レコードとは思ってなかった。。。
SQLiteで扱うにはしんどいレコード数かもね。
重いって言っているレベルが判らないけど、同じテーブルを作ってウチの
マシン(Pen4 2.6G、MEM 512M)でやったテストだと、こんな感じ。
我慢できないレベル、というほどでもない。
SELECT COUNT(*) FROM abc → 3秒
SELECT * FROM abc WHERE i = 1 → 3秒(対象レコード数 1)
ただ、実際の話、全レコードを取り出すの?
そんなに大量のレコードを返されても困ると思うんだけど。
0434428
2005/07/08(金) 20:06:24ID:BmV8B6lBこんな感じでインデックスを付けても、やっぱり遅いです。
create index idx_a on a (i);
viewを使わずに直接テーブルをselectすると速いんですけどね。
(viewと比べると、ちょっと遅いという事で、我慢出来ないほどではないです)
>>432
調べて下さってありがとうございます。
テーブルを直接selectすると、すごく速いので、
viewの遅さが気になります。
また、ある程度データが溜って来た時のバックアップが不安ですね。
1DB 1ファイルでDBをまたがってのviewは作れないとなると、
どう運用したら良いか分かりません。
0435NAME IS NULL
2005/07/09(土) 01:43:46ID:???いかに運用するかを考えて金稼いでるんだよね?
とりあえず2chで聞きかじった話をそのまま運用に持っていくなよ。
sqliteは万能じゃないんで、 ある程度の規模になれば
Oracleなんかも選択肢に入れといた方がいいと思う。
ログの頻度はわからないけど、10万件のログを管理する案件ならば、
sqliteで自作するよりOpenViewとかTivoliを買った方が安くすむかもね。
0436428
2005/07/11(月) 09:40:44ID:BGxhRhgAいや、単に大学のサーバのログを取るソフトを夏休みに作ってみようかと。。。
でも、良いのが出来たら、シェアウェアとかにしたいので、MySQL(GPL)は嫌なんです。
Posgreは遅いし。
0437NAME IS NULL
2005/07/11(月) 14:12:00ID:lZIKbO9U0438NAME IS NULL
2005/07/11(月) 14:20:26ID:???0439NAME IS NULL
2005/07/11(月) 15:14:01ID:???ビジネスモデル的な問題の可能性があるだけで
別に排他じゃないから可能。GPLだとソフト自体の価値よりも
ソフトのサポートに価値を持ってこないと、再配布されるだけだからね。
シェアでライセンスしたものだけ、サポートするってのは
GPLで勝手に持ってけ、でもクレクレ質問厨避けはしたい。
そういうシチュエーションには結構使えるので良いよ。
0440NAME IS NULL
2005/07/11(月) 16:01:29ID:???シェアウェア代金は、ソフトウェア代金ぢゃなくて、サポート代金と考えれば
問題ないわけだね。
この場合、「レジストしなければ機能に制限あり」や「レジストしなければ
10日しか使えない」ってのはOKなんかな。。。
どのみちGPLなんで、要求があればソース公開になってしまうから、
制限を掛けるのに意味はないってのは判るんだけど。
まぁライセンスうんぬんは抜きにして、アプリとDBを一緒に配布できる
SQLiteは便利だよね。
個人的には、PHP5のSQLiteモジュールをさっさとをバージョン3系に
して欲しい今日この頃。。。
0441NAME IS NULL
2005/07/11(月) 16:10:09ID:???銭取るのなら、DBをユーザがある程度選べれるように、
複数サポートしてはどうか。
0442NAME IS NULL
2005/07/11(月) 16:20:32ID:???サーバーとは別プロセスのはずだから、GPLの縛りはうけないと思うけど。
0443NAME IS NULL
2005/07/11(月) 17:05:10ID:???0444NAME IS NULL
2005/07/11(月) 18:37:48ID:???PHP 5.1 のPDO_SQLiteは3系列(CVSでは最新版の3.2.2)だよ。
デフォルト有効でコンパイルされる。
SQLiteは2.8.xのままで、これもデフォルトで有効。
0445NAME IS NULL
2005/07/11(月) 23:32:52ID:???0446NAME IS NULL
2005/07/11(月) 23:40:30ID:???0447NAME IS NULL
2005/07/11(月) 23:43:39ID:???SQLite便利です。
みんなもっと低級言語でCGI書こうぜw
0448NAME IS NULL
2005/07/12(火) 00:31:34ID:???Flashでゲームのセーブとかに使ったりするのには便利か
0449NAME IS NULL
2005/07/12(火) 00:32:03ID:???アセンブラでCGI、ハァハァ。
0450NAME IS NULL
2005/07/12(火) 00:41:04ID:???0451NAME IS NULL
2005/07/12(火) 00:46:24ID:???.hはC++でも現役さ
0452NAME IS NULL
2005/07/12(火) 01:26:29ID:???>>448
今ならブログツールあたりかな。
RなDBである必要性というより単に便利だから使われてるんじゃないかと。
0453440
2005/07/12(火) 09:07:13ID:???ありがとうございます。
今後、PDO_SQLiteは、バージョン3、SQLite_xxxは、バージョン2と
住み分けるつもりなんでしょうかねぇ。
PDO_SQLiteって、後々仕様がころころと変わりそうでちょっと不安。
しばらく様子見しておきますです。
0454NAME IS NULL
2005/07/12(火) 22:52:23ID:???そしたらHSP向けDLLで挫折した。
SQLiteDLL自体は糞簡単だった。
・・・HSPってどこが簡単なんだ
0455NAME IS NULL
2005/07/13(水) 10:16:19ID:???0456NAME IS NULL
2005/07/13(水) 12:45:24ID:???勝手に、という意味が判らないけどトランザクションを開始すれば
ロックしてくれる。
ロックの種類はデータベース単位(レコードでもなくテーブルでもなく)の
排他ロックしかないけど。
SQLiteの適用範囲を考えると十分だと思う。
0457NAME IS NULL
2005/07/13(水) 20:20:47ID:???0458NAME IS NULL
2005/07/13(水) 20:57:10ID:???DBを使用する側からすると利点はない。
ロックの範囲が広いほど同時実効性能は低下するから。
同時に多数のレコードをレコードロックする場合はテーブルロックや
ページロックの方が処理が軽い場合があるかもしれないけど。
んで、データベース単位でのロック「しか」できないSQLiteのスレで
何でそんなことを聞くんだい?
0459NAME IS NULL
2005/07/13(水) 21:00:59ID:???ごまん。なんかロックネタがあたからつい。
0460NAME IS NULL
2005/07/14(木) 10:11:02ID:???サンクス
readするだけでも他からreadできなくなるのね
0461NAME IS NULL
2005/07/14(木) 13:17:40ID:???んなこたあない。
0463NAME IS NULL
2005/07/15(金) 17:18:52ID:???つまりreadするとき他でもreadできて
writeするときは他はreadできなくなる普通のロックですね
0464NAME IS NULL
2005/07/15(金) 18:29:57ID:???なんのこっちゃ。試せばすぐ判るだろうに。。。
1. プロセスAがトランザクション開始。この時点でテーブル全体が排他ロック。
2. プロセスBが SELECT。ロックされているので待たされる。
3. プロセスAがトランザクション終了
4, プロセスBの SELECT成功
0465464
2005/07/15(金) 18:32:05ID:???1. プロセスAがトランザクション開始。この時点でテーブル全体が排他ロック。
↓
1. プロセスAがトランザクション開始。この時点でデータベース全体が排他ロック。
0467NAME IS NULL
2005/07/15(金) 21:14:00ID:???ただの煽りだったらチラシの裏にでも書いとけ
>>464の動作はタイムアウトが設定されている時の動作と思われ
タイムアウトが設定されていなければ2は即エラーになる
sqliteのコマンドラインユーティリティ、API、各言語のラッパー
ライブラリでタイムアウトは設定できる
0468NAME IS NULL
2005/07/15(金) 22:24:22ID:???0469NAME IS NULL
2005/07/16(土) 05:15:26ID:???0470NAME IS NULL
2005/07/16(土) 11:04:05ID:???0471NAME IS NULL
2005/07/17(日) 13:29:38ID:???PHP5がもうちょっと普及してくれればデフォルトでSQLiteライブラリが
付いてくるので配布が容易になるのにね。
0472461
2005/07/19(火) 11:41:32ID:???手元で試したけど、こうなるよ。
1. プロセスAがトランザクション開始。
2. プロセスBが SELECT。成功。 (A の変更は反映されず)
3. プロセスAがトランザクション終了
4. プロセスBが SELECT。成功。 (A の変更は反映されている)
>>464 のは SQLite 2 の話ではない?
0473NAME IS NULL
2005/07/20(水) 12:24:12ID:???nowって文字列が入っちゃうんですが。。。
0474NAME IS NULL
2005/07/20(水) 12:39:46ID:???0475NAME IS NULL
2005/07/20(水) 14:32:58ID:???http://www.sqlite.org/lang_keywords.html より。
0476NAME IS NULL
2005/07/20(水) 14:48:24ID:???ありがとん。
PEAR::DBを使ってるんだけど、この当たりを自動で吸収はしてくれないんでしょうかね。
0477NAME IS NULL
2005/07/20(水) 15:51:37ID:???% 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 NULL
2005/07/20(水) 16:01:18ID:???http://www.sqlite.org/lang_transaction.html
http://www.sqlite.org/lockingv3.html
読んでおくと幸せになれるかも。
0479NAME IS NULL
2005/07/20(水) 16:51:31ID:???日本語訳はありませんか?
0480NAME IS NULL
2005/07/20(水) 19:10:47ID:???たぶん、誰も訳してない or 公開してない。さほど難しい文章でもないので、ちょっと
自分でやってみることをお薦め。
0481NAME IS NULL
2005/07/20(水) 22:24:34ID:???ストアドプロシージャ不要ですか?
0482NAME IS NULL
2005/07/21(木) 01:31:35ID:???何かが違う
0483NAME IS NULL
2005/07/21(木) 06:34:07ID:???0484NAME IS NULL
2005/07/21(木) 16:32:01ID:???多分通貨が違うんだろう
0485NAME IS NULL
2005/07/23(土) 12:53:57ID:???0486NAME IS NULL
2005/07/27(水) 19:24:48ID:???.db?.sqlite?
0487NAME IS NULL
2005/07/27(水) 21:39:02ID:???0488NAME IS NULL
2005/07/27(水) 22:42:56ID:???0489NAME IS NULL
2005/07/27(水) 22:46:35ID:???0490NAME IS NULL
2005/07/27(水) 23:01:01ID:???0491NAME IS NULL
2005/07/28(木) 08:19:18ID:???0492NAME IS NULL
2005/07/28(木) 15:13:11ID:???0493NAME IS NULL
2005/07/28(木) 15:26:29ID:???0494NAME IS NULL
2005/07/28(木) 15:44:59ID:???0495NAME IS NULL
2005/07/28(木) 16:09:02ID:???0496NAME IS NULL
2005/07/29(金) 02:15:37ID:???0497NAME IS NULL
2005/07/29(金) 02:58:45ID:???ボーランドに乗っ取られる前って何て社名でしたっけ?
0498NAME IS NULL
2005/07/29(金) 03:21:46ID:???あしゅとん帝都
0500497
2005/07/29(金) 04:09:19ID:???× SilverFox
○ Quick Silver
0501NAME IS NULL
2005/08/02(火) 00:00:43ID:???.sdbはまずいんじゃなかったけ。
0502NAME IS NULL
2005/08/02(火) 00:41:39ID:???拡張子なんて人間のためだけにあるんだぞ。
0503NAME IS NULL
2005/08/02(火) 01:51:39ID:???何か他のアプリで使われてるってんじゃないの?
(見たことないけど)
0504NAME IS NULL
2005/08/02(火) 04:51:22ID:???v1.00 (2005.07.31)
About 画面に SQLite2, SQLite3 のライブラリバージョンを表示するように修正.
MSVCP71.DLL を不要にした.
SQLite3 のライブラリを v3.2.2 に変更.
新規に DB ファイルを作れない不具合を修正.
新規作成時に SQLite2 と SQLite3 を選択できるようにした.
0505NAME IS NULL
2005/08/02(火) 22:59:20ID:???0506NAME IS NULL
2005/08/02(火) 23:00:53ID:???0507NAME IS NULL
2005/08/02(火) 23:02:12ID:???0508NAME IS NULL
2005/08/02(火) 23:13:44ID:???多分そういう問題じゃない。
0509NAME IS NULL
2005/08/02(火) 23:15:49ID:???0510NAME IS NULL
2005/08/02(火) 23:29:08ID:???0511NAME IS NULL
2005/08/02(火) 23:32:45ID:???0512NAME IS NULL
2005/08/02(火) 23:41:08ID:???そんな拡張子に関連付けしたくないなw
0513NAME IS NULL
2005/08/03(水) 00:02:14ID:???0514NAME IS NULL
2005/08/03(水) 00:13:56ID:???Windowsじゃ":"は使えないよ…
0515NAME IS NULL
2005/08/03(水) 00:35:35ID:???0516NAME IS NULL
2005/08/03(水) 00:42:15ID:???0517NAME IS NULL
2005/08/03(水) 00:50:53ID:???.○| ̄|_=3 (SQLite3)
0518NAME IS NULL
2005/08/03(水) 00:51:10ID:???0519NAME IS NULL
2005/08/03(水) 01:04:44ID:???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 NULL
2005/08/03(水) 01:21:55ID:???0521NAME IS NULL
2005/08/03(水) 03:56:41ID:???よくわかんないから訳して。
0522NAME IS NULL
2005/08/03(水) 10:17:04ID:???意訳: WinXPだとsdbはAPPFIXに関連づけされてるからやめとけ。
0523NAME IS NULL
2005/08/03(水) 10:24:50ID:???0524NAME IS NULL
2005/08/03(水) 10:50:43ID:???Windows「でも」使ってるよ。これからはクロスプラットフォームですよ。w
0525NAME IS NULL
2005/08/03(水) 11:02:26ID:???0526NAME IS NULL
2005/08/03(水) 15:38:50ID:???ダウンロードされないようにw
0527NAME IS NULL
2005/08/03(水) 21:00:52ID:???wxWidgetsとかSDLとか使ってんの?
最近はクロスさせるときはJavaばっかだな
>>526
wつけるまでも無く昔からある小技だよ。
0528NAME IS NULL
2005/08/04(木) 00:19:59ID:???クライアントアプリで使ってるの?
0529NAME IS NULL
2005/08/04(木) 22:47:12ID:???HypersonicSQLならクライアントで使ってるよ
JDBCが強力でぬるま湯状態な気がしないでもない
SQLiteはCGIと一緒に使ってみたいな
mod_pythonと連携出来たら鬼な気がする
0530NAME IS NULL
2005/08/09(火) 00:58:40ID:D+KA1pWN0531NAME IS NULL
2005/08/14(日) 16:58:53ID:???タイミングによってsqliteが完全停止するんだが。
ちなみにVCね。
使えないなこれ。
0532NAME IS NULL
2005/08/14(日) 17:57:54ID:???0533NAME IS NULL
2005/08/16(火) 03:42:12ID:???お前のコードがバグってるだけだろ。
アホがコードも晒さずにイキがってんじゃねーよ、カスが
0534NAME IS NULL
2005/08/16(火) 22:05:02ID:???0535NAME IS NULL
2005/08/19(金) 02:45:55ID:???utf-8以外のencodingに対応した関数群の実装も提供されて欲しいなぁ。。
0536NAME IS NULL
2005/08/19(金) 02:48:05ID:???> PerlでDBD::SQLite使おうと思ってるけど、バイナリって格納できる?
DBD::SQLiteはよく知らないけど、ver3だとBLOB型として格納出来るよ。
ver2の場合はBASE64とかでencodeして放り込むんだろうか?
使った事無いから良くわからない。。
0537NAME IS NULL
2005/08/19(金) 02:52:50ID:???MSDEはとても良いと思うんだけれど、インスコ作業が必要だよ。。
その点SQLiteならstatic linkにも出来るので場合によっては良いよ。
0538NAME IS NULL
2005/08/19(金) 21:46:29ID:???バグではないけど、タイミングを再現できないのでよくわからない。
どうも複数のアプリから同時にアクセスするとおかしくなるみたい。
もちろんデータベースはまったく別のもの。
他のタイミングでもなることがあるけど、そこは確実にとまるみたいだね。
多分共有領域の使い方がおかしいんだろう。
とまる構文はdelete from table;ってのが起こり易い
>>534
mutexによる排他に加えてtransactionももちろんやってみた。
結果は同じ。
0539538
2005/08/19(金) 21:47:42ID:???1,2両方同じだった。
0540538
2005/08/19(金) 21:54:54ID:???これは仕様かな?仕様じゃないならそれが原因に関係してるかもね。
0541NAME IS NULL
2005/08/19(金) 22:23:03ID:???検証したいなぁ
コードうpきぼん
0542NAME IS NULL
2005/08/19(金) 22:35:24ID:???「使えない」とか「おかしい」とか断定するというのは一体どういう了見なのか。
0543NAME IS NULL
2005/08/19(金) 22:44:36ID:???じゃあ、MySQL
0544NAME IS NULL
2005/08/19(金) 23:14:03ID:???MySQL……内部で使うだけならいいんだけど。GPL汚染を避けるために金がかかるとなると
金出してくれる人を説得するのがしんどくて_| ̄|○
0545NAME IS NULL
2005/08/20(土) 00:36:05ID:???知ったかする奴に限って、検証能力皆無だから困る。
0546NAME IS NULL
2005/08/20(土) 02:10:48ID:???>>531
なんだろ?デッドロックとかになっちゃったのかな。
あんまりよくわからないけれど、sqlite3_busy_timeoutとか設定すれば良いのかな?
0547NAME IS NULL
2005/08/20(土) 02:13:06ID:???もし原因がClient CodeじゃなくてSQLite内だったら、
http://www.sqlite.org/cvstrac/tktnew にてチケット発酵汁。
0548NAME IS NULL
2005/08/20(土) 02:24:52ID:???MSDEが開発自体に使えないって何でだろ?まぁ開発には1万切るSQLServer2000の
developer版を普通は使いそうな気もするけど。
SQLiteは組み込み用の小型DBだから、排他トランザクションが激しく発生するようなのは、
ちゃんとしたRDBMS使った方が良いんだろうね。
0549NAME IS NULL
2005/08/20(土) 15:39:32ID:???DLLじゃなくてSQLiteをスタティックリンクしろ。
DLLだと、DLLをビルドした時に指定したランタイムによっては
アプリ本体とコンフリクトするぞ。
0550NAME IS NULL
2005/08/20(土) 18:50:03ID:???0551NAME IS NULL
2005/08/20(土) 21:22:03ID:???すでにその部分だけでも数千行規模になってるのでウプは無理だし、重要な内容なのでセキュ意味でも無理
>>542
中身は大きいけど、再現コードをわざわざ書くまでもないくらい単純だからバグだとすぐわかる。
書いた手順で実際にそっちで再現コード書いたほうが早いんじゃない?
詳細は書いてあるし。不明な点があればいってくれ。
>>546
たぶんデッドロックだね。CPU占有がかかってないから。
それも考えていろいろやってみたけど、タイムアウトが作動してる様子はない。
なんでそこまで言い切れるかって言うと
各行でログを出してデバッグしてみたけど,execした時点で停止、以後ログどころかなにも反応しない。
タイムアウト入れてもね。
>>549
スタティックやったときになぜかアクセス違反で根本的に動作しなかったから。
それは特に調査してないけど。
なんとかやってみるよ。
0552NAME IS NULL
2005/08/20(土) 21:23:47ID:???0553NAME IS NULL
2005/08/20(土) 21:35:55ID:???・ExecではなくPrepareとStepを使え
・スタティックリンクでのアクセス違反ってのは、お前のスキル不足が原因
0554NAME IS NULL
2005/08/20(土) 22:53:28ID:???馬鹿だからだろ
0555NAME IS NULL
2005/08/20(土) 23:37:12ID:???0556NAME IS NULL
2005/08/20(土) 23:50:15ID:???DLLにして動く事に疑問を持たないってのが恐ろしいな。
0557NAME IS NULL
2005/08/21(日) 00:41:56ID:???なんで?
ほとんどのテストや呼ばれてるAPIの把握は既にあるソースで全部わかる。
wxWidgetsだからどうだってことがあったとしても再現コードの有無には関係ないでしょ。
そっちの可能性がでてきたら再現コードじゃなくネイティブコードとして別に書くし。
可能性の低いものを調べてるほど暇でもない。おそらく関係ないと思う。
wxWidetsはソースから読んでるからね。
>>556
持たないさVC用LIBとDLLがセットで用意されてるんだから。
つっこみどころが的外れ。
ソースはあんまり見てないからわからないけど、TCL使ってたからそこら辺の影響かと思ってね。
VC6で用意されたものを拾ったのだからそれでいいさ。
0558NAME IS NULL
2005/08/21(日) 00:49:41ID:???趣味か業務か知らんが、オマイもPG開発やっているのならそれぐらい判らないか?
また、みんながSQLiteのバグなのか、オマイさんの書いたアプリの問題なのか
切り分けようという姿勢を持っているんだから(興味本位かもしれないが)、
ぐだぐだ言う前に再現コード示したらどうだ?
0559NAME IS NULL
2005/08/21(日) 00:52:52ID:???趣味だよ。
だから時間があったら再現でもなんでもしてやるさ。書き込んで即効提示できるほどの暇はないさ。
別にバグ報告するために書き込んでるわけじゃないさ。
どうも正常に動いてないし、同じ症状の人がいないかなとか思ったりしただけさ。
再現コードがどうしてもほしいならぐだぐだいってないで気長にまってなさい。
0560NAME IS NULL
2005/08/21(日) 01:02:45ID:???0561NAME IS NULL
2005/08/21(日) 01:51:03ID:???0562NAME IS NULL
2005/08/21(日) 01:53:02ID:???0563NAME IS NULL
2005/08/21(日) 01:58:24ID:???http://www.sqlite.org/lockingv3.html
0564NAME IS NULL
2005/08/21(日) 02:04:53ID:???UNIXならfcntl、WindowsならLockFileEx
0565NAME IS NULL
2005/08/21(日) 03:55:10ID:???マルチスレッドに対応してるけど、気をつけて使いなさい。
unix,linuxはデフォルトでシングルスレッド構成になっています。
って公式に書いてある。
0566NAME IS NULL
2005/08/21(日) 11:28:13ID:???スタティックリックのアクセス違反すら解決出来ない辺り、
とりあえず相当レベルが低いという事だけは分かった。
0567NAME IS NULL
2005/08/21(日) 11:28:53ID:???0568NAME IS NULL
2005/08/21(日) 13:51:12ID:???相当レベルが低いなw
0569NAME IS NULL
2005/08/21(日) 15:35:07ID:???組み込み型DBより、素直に普通のRDBMSを選んだ方がいいんじゃないかと。
>>557
> 持たないさVC用LIBとDLLがセットで用意されてるんだから。
> つっこみどころが的外れ。
これを見て、ああこいつダメだと思った。
0570NAME IS NULL
2005/08/21(日) 17:34:19ID:???そもそもそんな凄腕を自慢したいなら自分で検証してみればいいんじゃない?
要するにwxWidgetsも触ったこともないし、触れない。馬鹿を露呈するから文句だけいってよう。
って発想でしょwその方が馬鹿じゃない?
技術的に最高の存在ではないよそりゃ。作れればいいし、バグだらけでも動けばいいよ。仕事でもないし。
駄目でもけっこう。なんか悪いか?
余計なおせわってことに気づかない、自分最高脳内妄想プログラマさんたちは、少しは自分の人間性の
欠落部分に気づいたほうがいいね。
プログラマなんて罵ってなんぼの商売のやつも多いからまあしょうがないんだろうけどw
そんなんで人生楽しいか?
0571NAME IS NULL
2005/08/21(日) 18:59:55ID:???>>531では根拠も示さずに一方的にSQLiteを罵倒して、
技術的に突っ込まれると「人間性の欠落」かよw
お前が自己向上意欲のないカスだって事はよくわかったから、
とりあえず「>>531は私のアプリがバグってるだけでした」
って認めて非難を撤回しろ。
0572NAME IS NULL
2005/08/21(日) 19:30:17ID:???しないっていうか出来ないのかw
そこまでいうならやってみせろよ。
簡単だろ?テストコード書くだけなんだから。それもできないくせに他人の技術にけちつけてるわけじゃないよね?
他人をけなすくらいだから10分もあればできるよね?ね?
アプリのバグと撤回するのはそれやってもらわないとねw
プロなら当たり前だよね?こんなこと。証拠もないのに否定してるなんて(プ
0573NAME IS NULL
2005/08/21(日) 19:57:17ID:???せっかくだからコテハンでも付けてくれよ。
0574NAME IS NULL
2005/08/21(日) 21:30:36ID:???0575NAME IS NULL
2005/08/21(日) 21:55:53ID:???まあ、ぜいぜいあると思ってる頭つかって自分で問題拾ってくださいな。
0576NAME IS NULL
2005/08/21(日) 22:31:40ID:???0577NAME IS NULL
2005/08/21(日) 23:09:56ID:???0578NAME IS NULL
2005/08/21(日) 23:34:38ID:???0579NAME IS NULL
2005/08/22(月) 00:03:19ID:???0580NAME IS NULL
2005/08/22(月) 16:10:26ID:???0581NAME IS NULL
2005/08/22(月) 22:32:54ID:???0582NAME IS NULL
2005/08/23(火) 16:57:21ID:???VC用libって付いてないよな。
わざわざ lib /DEF:sqlite3.def ってやって作った記憶がある。
0583NAME IS NULL
2005/08/23(火) 17:01:59ID:???だんだん面倒になってきた。
unix系ツール使ってる部分の解決が面倒くさい。
0584NAME IS NULL
2005/08/23(火) 21:34:31ID:???え?拡張子がzipのソースは処理済なので問題無いと思うけど。
普通にVSでプロジェクト作ってすぐにlib作れたし。
http://www.sqlite.org/download.html の、Source Codeの上から4つ目。
0585NAME IS NULL
2005/08/24(水) 02:54:06ID:???置いてないんだろう。
まぁ、ソースからビルドすりゃいいんだけどさ。
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 NULL
2005/08/24(水) 03:42:06ID:???> なぜ公式には、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 NULL
2005/08/24(水) 04:38:28ID:???>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 NULL
2005/08/24(水) 11:40:09ID:???> 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 NULL
2005/08/25(木) 00:28:21ID:???0590562
2005/08/25(木) 04:55:19ID:???3.xって結構2.xと違うんだな
ずっと2.xでやってて特に問題も無いのであまり勉強してなかったよ
0591NAME IS NULL
2005/08/27(土) 21:18:31ID:???仮宣言をいちいちしなくちゃいけなくてめどい。
0592NAME IS NULL
2005/08/27(土) 22:10:31ID:???0593NAME IS NULL
2005/08/28(日) 00:29:31ID:???DLL版なんて飾りなのです。
偉い人にはそれが分からんのですよ
0594NAME IS NULL
2005/08/28(日) 13:37:00ID:???0595NAME IS NULL
2005/08/28(日) 23:24:53ID:???0596NAME IS NULL
2005/08/31(水) 16:40:42ID:QcMvjbbsってやると、syntax error になるんだけど(3.2.2)
これって仕様? それともオレだけ?
なんかいい方法あったら教えて下さい。
0597NAME IS NULL
2005/08/31(水) 16:49:01ID:???select count(*) from (select distinct hoge from table);
かな。
0598NAME IS NULL
2005/08/31(水) 17:11:38ID:???0599NAME IS NULL
2005/09/03(土) 12:55:07ID:???そういう仕様は不便でも正しい面があるね
0600NAME IS NULL
2005/09/03(土) 12:58:39ID:???0601NAME IS NULL
2005/09/03(土) 14:52:29ID:???0602NAME IS NULL
2005/09/03(土) 15:53:33ID:???0603NAME IS NULL
2005/09/04(日) 12:46:16ID:???0604NAME IS NULL
2005/09/04(日) 12:59:04ID:???0605NAME IS NULL
2005/09/04(日) 16:03:24ID:???0606NAME IS NULL
2005/09/04(日) 21:58:55ID:???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 NULL
2005/09/04(日) 22:23:47ID:???いや、そのエラーのとおり、正規表現の括弧の対応が取れてないんじゃない?
そのあたりのコードを読み直してみたら?
0608NAME IS NULL
2005/09/10(土) 00:55:13ID:???0609名無しさん@そうだ選挙に行こう
2005/09/11(日) 01:31:57ID:???0610NAME IS NULL
NGNG0611NAME IS NULL
2005/09/14(水) 02:16:08ID:???これだな http://www.amazon.co.jp/exec/obidos/ASIN/4798109436
0612NAME IS NULL
2005/09/14(水) 09:35:36ID:Zl9QgQIJ0613NAME IS NULL
2005/09/14(水) 21:19:36ID:???PHPだとblogのサンプルが乗ってた。あといろんな言語から使う方法も書いてあった。
とりあえず私はPHPだけで使いたかったので半分ぐらいしか読むとこ無かったです。
あとでほかの言語で使おうとか思ってる人にはお勧めかもしれません。
それとサンプルのコーディングの仕方が特殊?
(というか趣味グラマなんでよくわかってないんですけど)
<?php
function hoge() {
?>
HTML...
...
...
<?php
}
function huga() {
?>
HTML...
...
...
<?php
}
こんな感じでした。
0614NAME IS NULL
2005/09/14(水) 22:17:51ID:???PHP5がもっと普及すればSQLiteも普及するんだがな。
肝心のPHP5が・・・
0615NAME IS NULL
2005/09/14(水) 23:02:26ID:???>>613
PHPは良くわからんが、早い話がwriteLineを必要行数分繰り返してるだけだと思うよ
0616NAME IS NULL
2005/09/14(水) 23:31:45ID:???PHPのプログラムの書き方の中では余りスタンダードな書き方ではないな。
PHP(ロジック)よりもHTML(見栄え)に重点をおいた書き方だから。
PHP+SQLite本としては「PHP5徹底攻略」を薦める。
ただこの本はPHP"5"本としては個人的には物足りない内容。
0617NAME IS NULL
2005/09/15(木) 11:33:29ID:CNPf8LexYahooウェブホスティングのライトプランは使えるようなんだが・・・
http://help.yahoo.co.jp/help/jp/webhosting/light/manage/manage-23.html
0618NAME IS NULL
2005/09/15(木) 13:51:27ID:???目次見た感じだと、「いろんな言語」の中に、肝心の C/C++ が無い気がするのだが、
激しく片手落ちじゃね?
0619NAME IS NULL
2005/09/15(木) 16:30:44ID:???0620NAME IS NULL
2005/09/15(木) 18:56:07ID:???XREAには、一部PHP5の導入された鯖がある。
全部じゃないから注意しる。
あとはVPS鯖借りて自分でインストールするとか。
0621NAME IS NULL
2005/09/17(土) 01:20:08ID:???フリーなデータベースエンジンの入門書って、どれもこれも似たような傾向があって、
載っているのはPHPかPerlで掲示板かBlogを作るだけのサンプルだったりするから、
C/C++の話なんて、まず絶対に出てこない。なぜなら、そこらへんの普通の
CGIの使えるサーバーって、Cコンパイラ使わせてくれないもん。
SQLiteは、アプリケーションに組み込めるというのが面白いところだと思うけど、
残念ながら、入門書にそこまで期待はできんでしょう。
0622NAME IS NULL
2005/09/17(土) 10:46:34ID:???0623NAME IS NULL
2005/09/17(土) 14:13:02ID:???とりあえず、お前が眞鍋かをり好きだということは学べた。
0624NAME IS NULL
2005/09/17(土) 15:26:30ID:???SQL基本を勉強したいなら、特定のソフト、とくにフリーのデータベースの入門書は
避けたほうがいいよ。
フリーのデータベースが悪いという意味では絶対ないんだけど、残念ながら、
その手の解説本は、かなり多くの場合、ソフトのインストール方法と、PHPやPerlなどから
呼び出して使う場合の応用例ばっかりにページをさいていることが多くて、SQLそのもの
やデータベースの基本についての説明は、ほとんどないか、あっても杜撰な場合が多い。
本屋さんで、普通に「SQL入門」「SQLハンドブック」「SQL解説」みたいに、そっけない
題名になっている本を立ち読みして、説明の文体が自分にあいそうなもの(これ重要)を
買うか、自分の住んでいる市の図書館のホームページで「SQL」という言葉を含んでいる
題名の本を検索して適当に数冊借りてみるほうがいいと思う。
0625NAME IS NULL
2005/09/17(土) 16:31:36ID:???サンクス、やっぱSQLの入門本から始めたほうがいいかぁ
0626NAME IS NULL
2005/09/17(土) 20:23:42ID:ZRoePNYbサンクス、やっぱり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 NULL
2005/09/17(土) 20:27:49ID:ZRoePNYbまた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 NULL
2005/09/17(土) 20:56:48ID:???テーブルはあらかじめ作ってあるんだよな?
とりあえず、同じプログラムをローカルのPHP環境で実行してみれ。
それでうまく行くなら、Yahooの問題。
0629NAME IS NULL
2005/09/18(日) 15:03:14ID:/TphbGBL0630NAME IS NULL
2005/09/18(日) 15:21:16ID:???0631NAME IS NULL
2005/09/18(日) 15:30:33ID:???0632NAME IS NULL
2005/09/18(日) 20:49:02ID:???んなわきゃねえw
0633NAME IS NULL
2005/09/19(月) 15:13:05ID:ZFm7QfVlうん、テーブルは作ってある。ローカルでもテスト済み。
ただ、ローカルの環境がWindowsだったのでFreeBSDとバイナリ互換ないのかなとおもって、
データベースを最初から作り直すことにしたんだが、 create table でも同じ現象が発生。
どうやらビージータイムアウトして database is lock が返ってきているみたいなので
sqlite_busy_timeout() で時間を延長してみたがやっぱりNG。
・・・自分でDBもどき作るしかないのかね・・・鬱だ・・・orz.
0634NAME IS NULL
2005/09/19(月) 20:03:45ID:qEdHNoTH>>472 SQLite3 のロックの挙動で >>464,465 が SQLite 2.8 の例。
>>478 に解説あり。トランザクションを閉じれば回避できそうだけど。
0635NAME IS NULL
2005/09/23(金) 15:11:56ID:???NTでは問答無用でUnicode系のWin32 APIを使うだけみたいだ。
UTF-8文字列をMBCS系のAPIに渡したり、MBCS文字列を
UTF-8として処理するのは変わらず。
いいかげん、UTF-8 <> MBCSだってことに気付けYO!
0636NAME IS NULL
2005/09/23(金) 15:20:33ID:???0637NAME IS NULL
2005/09/23(金) 15:29:47ID:???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 NULL
2005/09/23(金) 15:39:15ID:???うん。。Win9xは駄目だね。
うちはsqlite使うものはWin9xは対応しない。(要求もあまりないので)
0639NAME IS NULL
2005/09/23(金) 15:52:40ID:???そこまで調べてるんなら、
パッチ作って送ったらいいんじゃね?
0640NAME IS NULL
2005/09/23(金) 21:37:00ID:???os_win.c見てみたけど、NTの場合に問答無用でW系のAPI使ってるわけではなくて、
utf8ToUnicode関数でWide文字列に変換してから処理してるから大丈夫じゃない?
非16系の関数が、3.2.5まではMBCSのファイルパスを受け取ってたけど、今度からは
utf8にして渡さないとね。
0641NAME IS NULL
2005/09/23(金) 23:04:19ID:???>>637
あと、本来はsqlite3_openは「UTF-8のファイルパスを受け取る」
と規定されてるので、MBCSじゃないと動かなかった今までは
実装が間違っていたということ。
Win9xでは、3.2.6でも結局MBCSで渡さないと動かんけど。
0642640
2005/09/23(金) 23:36:02ID:???(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で通して楽したいってのが
開発者の考えだろうね。(ちょっと動作的に無駄が生じるけど)
0643642
2005/09/23(金) 23:42:54ID:???>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は、、別にいいでしょ。。)
0644642
2005/09/23(金) 23:50:50ID:???>
> 9xでの挙動
> sqlite3_open16(UTF-16)→内部でUTF-8に変換
> →os_win.cでCreateFileAにUTF-8を渡す
> →文字化けファイル名のできあがり
>
って、これが駄目なのか。。
Win9xで使う時にはMBCSでsqlite3_open呼ぶとかは…汚いか。。
ちゃんとWin9xでも動かしたい人は、os_win.cの中でUTF-8->MBCS変換の
処理を入れると…。
すんまそん。
0645642
2005/09/24(土) 00:08:57ID:???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 NULL
2005/09/29(木) 00:37:06ID:???0647NAME IS NULL
2005/09/29(木) 18:55:01ID:???0648NAME IS NULL
2005/10/03(月) 23:52:55ID:???0649NAME IS NULL
2005/10/04(火) 00:04:43ID:???スピードの問題だけであればトランザクションの中に入れるだけで
100倍くらい速くなったよ。
0650NAME IS NULL
2005/10/04(火) 00:41:51ID:???うん。そうなんだけど、さらに高速にならないかなぁって。
最近パフォーマンス厨なもんで。
0651NAME IS NULL
2005/10/04(火) 01:56:50ID:???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 NULL
2005/10/04(火) 01:59:27ID:???COMMIT TRANSACTIONがぬけてた。
補完よろしく。
0653NAME IS NULL
2005/10/04(火) 10:08:33ID:???0654NAME IS NULL
2005/10/04(火) 12:07:39ID:???0655NAME IS NULL
2005/10/04(火) 13:58:35ID:???それならわざわざコードを出さなくてもそう説明してくれた方がわかりやすいね。
0656NAME IS NULL
2005/10/06(木) 17:41:00ID:BBu9gQvTこれってどうなんだろ。どうもSQLiteを基本から学ぶのには適さないみたいだけど、サンプルとして見たらどうなのかな?
0657NAME IS NULL
2005/10/06(木) 23:09:26ID:???その書評を見る限りでは・・・ だめなんじゃない?
率直な話、PHPって書いてある時点で、たいていの本は「ダメ警報発令」だと思う。
「何々SQLサーバーの入門書」と銘打っておきながら、PHPが全面に出ている本は、
結局のところ、「何々SQLサーバー」そのものに関する固有の情報や、他のサーバーに
ない特徴といったものは、ほとんど載ってない場合がほとんどだから。
もちろん、これは一般的な傾向であって、この本がそうだと確認したわけじゃないけど。
0658NAME IS NULL
2005/10/09(日) 14:45:10ID:???PHPとPythonばかりフィーチャーされている件について・・・
0659NAME IS NULL
2005/10/09(日) 16:35:12ID:???SQLite のサイトを見れば、tclとの関連が深いことはすぐわかると思うんだけど。
0660NAME IS NULL
2005/10/10(月) 01:09:16ID:???0661NAME IS NULL
2005/10/10(月) 01:22:17ID:???0662NAME IS NULL
2005/10/10(月) 03:40:52ID:???しかなかったり・・・
0663NAME IS NULL
2005/10/10(月) 17:36:57ID:U3RRRruddllさがしている?それなら別のzip
0664NAME IS NULL
2005/10/10(月) 19:47:27ID:???>>662 は >>661 へのレスと思われ。
0665NAME IS NULL
2005/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 NULL
2005/10/12(水) 01:04:10ID:???詳しくないけど突っ込んでみる。
10GBでも2.5MBだけどメモリ不足なの?
0667NAME IS NULL
2005/10/12(水) 01:09:41ID:???素直にRDBMSにした方がいいと思われ。
0668665
2005/10/12(水) 03:35:57ID:???うわああああすみません!ごめんなさい!大ボケでした!
ケタ3つ間違えて、10GBで2.5GBと見積ってました
2.5MBのメモリ量なら、全く問題ありませんです・・・
>>667
こちらの方にも申し訳ないです、私めの認識+記述不足でした。
組み込みでなく、リソースがそこそこあるPC上での運用なのであります。
お二方、御迷惑おかけしまして大変申し訳ありませんでした orz _no
「RAM >= 256MB、HDD豊富なPC上で、10GB程度のsqlite DB運用は問題無し」
がFAということでよろしいでしょうか・・・?
0669NAME IS NULL
2005/10/12(水) 03:37:37ID:???知識のないオレだけど、英文の内容を見る限り、別のデータベースエンジンを使うことを
検討すべきだというのは、「a few dozen GB」以上になった場合と書いてある。a few dozen
ってのは「数ダースの」という形容詞だから、「数ギガ」ではなく「数十ギガ」だと思う。
つまり、665さんの見積もり「数ギガ」に対しては、まだ一桁の余裕があるんじゃない?
0670NAME IS NULL
2005/10/12(水) 07:42:54ID:RxTmnOMjコンパイル時に10に制限されているとのことですが
これを設定ファイル等で増やす事はできないのでしょうか?
10というのはいかにも少なすぎる気がするのですが…。
0671NAME IS NULL
2005/10/13(木) 04:37:37ID:???0672665
2005/10/13(木) 09:42:59ID:???コメントありがとうございます。
言われてみれば確かに「一桁の余裕」ですね。安心感が生まれてきました。
sqlite採用の方向でいってみます。どうもありがとうございました!
0673NAME IS NULL
2005/10/13(木) 18:19:15ID:???MySQLで言うmax_connectionsのことではないのでしょうか?
max_connectionsはどこで設定できるのですか?
0674NAME IS NULL
2005/10/13(木) 19:10:36ID:???0675NAME IS NULL
2005/10/13(木) 21:51:16ID:???DBなのにtoo many connectionsエラーが出ない?
それはかなりありがたいですね!
0676671
2005/10/14(金) 00:00:55ID:???えっと・・・ 間違ってたらゴメン。(おかしかったら突っ込んで>有識者の皆さん)
SQLiteって、基本的には、
「パソコンなりサーバーなりのローカルなディスクの上にファイルを作って、
そのファイルの中のいろんなデータをSQLの命令で検索する。」
という仕事をするためのライブラリで、たいていの場合、ひとつの
アプリケーションがひとつのデータベースのファイルを独占的につかう
のではないの?
(ひとつのデータベースファイルの中に、複数のテーブルを持つことは、
当然できる)
デーモンが常駐するわけでもなし、ソケットでクライアントとサーバーで接続すると
いうわけでもなく、アプリケーションのプログラムが自力でファイルを読む。
DB固有のユーザーという概念もない。単純にアプリがファイルを読み書きするときに
OSで設定されているアクセス権にしたがって処理が進む。トランザクションは
ファイル、つまりデータベース全体のロックで実現している。
で、必要なら、いくらでもSQLiteを内蔵しているアプリケーションを立ち上げて
しまえばいいのではないかと・・・
SQLiteでいう「同時接続数」は、通常はひとつのデータベースファイルを使うのに
対し、「必要に応じてもっとたくさんのファイルも使えますよ、その上限はいくつ
までですよ。」という意味の同時に扱うことのできるデータベースの数のことで、
クライアントがサーバーに接続するときの上限の数ではないと思う。
MySQLのmax_connectionって、サーバーが子プロセスを起動するときの上限の
設定のことだよね? たぶんSQLiteと言葉は似ているけど意味は全然違うと思う。
0677NAME IS NULL
2005/10/14(金) 00:57:09ID:???たぶん正しいと思うんだけど、複数のアプリケーションが同時にひとつのファ
イルにアクセスできるから「独占的」という表現はあまり正しくなさげ。
ちなみに、書き込みは 2.x だと flock か何かでファイル全体のロックをして
いたけど、 3.x はそのへんもうすこし緩和されているらしい。
0678NAME IS NULL
2005/10/14(金) 02:45:14ID:???0679NAME IS NULL
2005/10/15(土) 12:21:45ID:???0680NAME IS NULL
2005/10/19(水) 19:13:28ID:K3Pdo6yl複数CPU同時読み書き高負荷でやったけど、全然問題なかった。
他に検証やったことある椰子がいたら報告くれ。
openMosixでも可
ttp://openssi.org/cgi-bin/view?page=openssi.html
0681NAME IS NULL
2005/10/21(金) 20:37:20ID:uTNs7eq10682NAME IS NULL
2005/10/21(金) 22:01:01ID:aCtEsJXzresetは実行結果(column)の消去、clearはパラメータ(bind)の消去
0683NAME IS NULL
2005/10/21(金) 22:58:46ID:???なるへそーサンクス。
0684NAME IS NULL
2005/10/28(金) 10:28:42ID:IedZDhzgソース嫁が正しいとおもふ
0685NAME IS NULL
2005/10/28(金) 21:47:04ID:???0686NAME IS NULL
2005/10/30(日) 01:49:45ID:???>>658
0687NAME IS NULL
2005/10/31(月) 23:25:24ID:???0688NAME IS NULL
2005/10/31(月) 23:27:45ID:???0689NAME IS NULL
2005/10/31(月) 23:34:04ID:???tclは言語
0690NAME IS NULL
2005/11/01(火) 18:03:49ID:???ソースコード軽く眺めてたら、Unix系とWindows系で処理が分かれてる。
SQLite.NETのUtil.csで。
これってつまり、monoにもそのまま対応してるってことかな?
0691NAME IS NULL
2005/11/02(水) 02:50:21ID:???0692NAME IS NULL
2005/11/02(水) 02:51:17ID:???0693NAME IS NULL
2005/11/02(水) 08:40:24ID:???0694NAME IS NULL
2005/11/02(水) 09:20:34ID:???てゆうか、monoのクラスライブラリに Mono.Data.Sqliteっていうのがあるぞ
0695NAME IS NULL
2005/11/02(水) 09:39:52ID:???0696NAME IS NULL
2005/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 NULL
2005/11/03(木) 08:26:35ID:???0698NAME IS NULL
2005/11/03(木) 15:35:13ID:???別アーキテクチャだったら、試した事無いから分からんけど。
0699NAME IS NULL
2005/11/03(木) 15:54:30ID:???You need to upgrade your SQLite library to version 2.6.3 or later.
<< http://www.sqlite.org/faq.html
なので、最近のSQLiteはエンディアンの問題も解決されているらしい。
0701NAME IS NULL
2005/11/04(金) 06:15:36ID:???すでにレスついているけど、ファイルは互換性あるね。とってもうれしい。
サクラウェブで借りているFreeBSDのサーバー上で、PerlのSQliteモジュールを
使ったプログラムを動かしてみて、できたデータベースファイルをFTPで
ダウンロードしてWindowsXP上のSQLiteで読んでみたら、何の問題もなかった。
0702NAME IS NULL
2005/11/05(土) 15:28:06ID:lUG2HX7F37 $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 NULL
2005/11/05(土) 15:39:06ID:???エラーメッセージが "no such table: link in ...略 on line 43" だから
"select * from link" で指定している link という名前のテーブルが存在しないんでしょ。
0704NAME IS NULL
2005/11/05(土) 15:39:22ID:???だから no such table: link なんじゃないのかね?
0705NAME IS NULL
2005/11/05(土) 17:25:23ID:lUG2HX7F0706NAME IS NULL
2005/11/11(金) 13:06:08ID:v8h/gUt40707NAME IS NULL
2005/11/11(金) 22:29:51ID:???PythonのDLLとSQLiteのDLLなの?PythonのSQLiteラッパーなの?
なにがなんなの?
0708NAME IS NULL
2005/11/12(土) 00:17:58ID:???そこはそんなに突っ込むトコじゃないと思われ。
単なる「『こんなところにも SQLite』ネタ」でしょ。
0709NAME IS NULL
2005/11/12(土) 03:54:01ID:???話題としては去年のものだ
こんなところにもSqliteっていうのなら最近だと画像アルバム系ソフトとかにも使われてる
0710NAME IS NULL
2005/11/13(日) 00:08:46ID:???画像そのものをDBに入れてるの?
バイナリ保存って出来たっけ?Base64なら納得だけど。
0711NAME IS NULL
2005/11/13(日) 00:18:22ID:???普通に考えて画像ファイルのパスとかのメタ情報とかじゃねーの?
と >>709 じゃない俺が答えてみる。
SQLite の DB にバイナリを入れるのは問題なくできるよ。
0712NAME IS NULL
2005/11/13(日) 00:40:04ID:???そうなのか。
昔は数字と文字列との違いがないような処理系だったのに
そこまで変わったんだな。
0713NAME IS NULL
2005/11/13(日) 01:28:04ID:???0714NAME IS NULL
2005/11/13(日) 07:54:54ID:???0715NAME IS NULL
2005/11/13(日) 14:17:09ID:???>>486
0716NAME IS NULL
2005/11/13(日) 15:37:26ID:???0717NAME IS NULL
2005/11/14(月) 00:11:25ID:???0718NAME IS NULL
2005/11/14(月) 01:16:53ID:???0719NAME IS NULL
2005/11/18(金) 15:57:41ID:???っていうかExcelでワークシートとして読み込めるの知らなかったのか?
0720NAME IS NULL
2005/11/18(金) 20:49:10ID:???0721NAME IS NULL
2005/11/19(土) 00:33:38ID:???0722NAME IS NULL
2005/11/19(土) 00:35:37ID:???0723NAME IS NULL
2005/11/19(土) 11:39:05ID:PHOWnBt00724NAME IS NULL
2005/11/19(土) 23:17:07ID:???0725NAME IS NULL
2005/11/19(土) 23:49:46ID:???0726NAME IS NULL
2005/11/20(日) 16:52:05ID:???え?ウソだろ!?
でもそうだったらめちゃめちゃ便利じゃん
とか思いながら開いてみた。
・・・つられた。。。
0727NAME IS NULL
2005/11/20(日) 16:57:38ID:???0728NAME IS NULL
2005/11/21(月) 17:52:25ID:???だから拡張子.mdbだ。
0729NAME IS NULL
2005/11/21(月) 20:06:15ID:???0730NAME IS NULL
2005/11/21(月) 21:25:29ID:???0731NAME IS NULL
2005/11/21(月) 21:27:02ID:???0732NAME IS NULL
2005/11/21(月) 21:27:32ID:???0733NAME IS NULL
2005/11/21(月) 22:24:06ID:???0734NAME IS NULL
2005/11/22(火) 13:53:37ID:???0735NAME IS NULL
2005/11/25(金) 11:18:06ID:oROAHEdA0736NAME IS NULL
2005/11/25(金) 13:02:03ID:???・DBIとDBD-SQLiteが使える鯖(Perl専用)
0737NAME IS NULL
2005/11/26(土) 18:50:25ID:???まだ試してないけどさくらには、
DBD-SQLite-1.09
が入っている。
0738NAME IS NULL
2005/11/26(土) 19:46:34ID:stpPP/khパスとファイル名がつながった名前でできる。なんか変。。。。
とりあえず、フィールドが16ある約2000行のCSVファイル(文字コードEUC)を
インポートしてみたらDBファイルの出来上がり。
ファイルをリネーム、移動して、ネットで拾ったHTMLテーブルに表示する
PHPスクリプトをコピペして使ったら、あっけなく動作・・・・
データベースなんて触ったこともないド素人なのに、あら簡単。
で、少し感動。
でも、SQLiteManagerって既存のDBファイルを開けないのかぇ?よくわからん。
これじゃデータの管理できないじゃん。
で、ただ今、挫折中 orz
0739NAME IS NULL
2005/11/27(日) 14:20:55ID:???サクラインターネットでも使う? 一番安いコースはPHPは使えないけど、
でもsqlite を組み込んだperlのモジュールがある。
あと、Cコンパイラが使えるから、やりたいなら自分でソースをコンパイルする
こともできるはず。
0740NAME IS NULL
2005/11/27(日) 17:28:58ID:???0741NAME IS NULL
2005/11/27(日) 19:41:58ID:???JDBCDriverがあればだけど。
0742NAME IS NULL
2005/11/28(月) 03:32:07ID:???PHPのやつです。参考になるアドバイスいただけるとうれしいス。
0743NAME IS NULL
2005/11/28(月) 16:13:29ID:???他のを使え
0744NAME IS NULL
2005/11/28(月) 20:41:01ID:???0.3 alpha1 から SQLite 組み込みだそうな。
0745NAME IS NULL
2005/11/29(火) 23:46:17ID:???なんか嬉しい。
0746738
2005/11/29(火) 23:57:17ID:???データベースをロードする方法、発見しました!!!!
データベースへのパスを参照し
D:\www\myhome\database.db とか表示されたら「\」を「/」にマニュアルで
置き換えます。
D:/www/myhome/database.db こういうふうに
で、指定場所にデータベースファイルを作成したり既存のファイルを
SQLiteManagerにロードしたりできました!!!!
SQLiteManagerつかえるじゃん。やったー!
0747NAME IS NULL
2005/12/03(土) 23:23:49ID:???MySQLが使用できないレン鯖でMovableTypeを入れようとする人とかに
結構需要はありそうに思うんだが。
せっかくブログブームでDBに初めて触れる人も出てきたのに
SQLiteはそのブームに乗り遅れた感じがするね。
0748NAME IS NULL
2005/12/03(土) 23:27:06ID:???0749NAME IS NULL
2005/12/04(日) 00:14:06ID:???パイプでSQL流して結果をファイルにリダイレクトする程度ならいいが、
組み込みにはしたくないな。
0750NAME IS NULL
2005/12/04(日) 00:26:58ID:???0751NAME IS NULL
2005/12/04(日) 00:37:09ID:???2系は消えるのを待てばいいと思う
0752NAME IS NULL
2005/12/04(日) 00:45:07ID:???なかなか枯れないと思うよ。
0753NAME IS NULL
2005/12/04(日) 01:16:31ID:???MySQLなみに世間にもまれなければならない。
いまはまだSQLiteは開発途上で一部のマニアのオモチャになっている段階。
0754NAME IS NULL
2005/12/04(日) 01:18:06ID:???それなりに採用してるソフトは出てきてるみたいだが。
0755NAME IS NULL
2005/12/04(日) 01:31:20ID:???0756NAME IS NULL
2005/12/05(月) 19:28:24ID:???あれはMySQLを入れたいんじゃなくて、MTを入れたいだけだし。
MySQLも含めたDBを使おうとはしてないよ。
>>748
データベースの概念が難しいからね。
アクセスさえも使えずに、エクセルでセルを操作する程度が一般人の思考。
>>754
今の所マカが人柱に成ってるだけだしね。
デスクトップ検索とブラウザのRSSサポートとか。
0757NAME IS NULL
2005/12/05(月) 20:48:51ID:???0758NAME IS NULL
2005/12/06(火) 04:51:19ID:???アクセス廚のように始めのうちはいいけど後で困るんだけどね(w
アクセスは1万件で問題が出始めるんだっけか。
sqliteは100万件ぐらいは耐える?
0759NAME IS NULL
2005/12/06(火) 05:49:54ID:???0760NAME IS NULL
2005/12/06(火) 06:17:10ID:???0761NAME IS NULL
2005/12/06(火) 09:24:10ID:???他から加えられる力に負けずにもちこたえる。
0762NAME IS NULL
2005/12/07(水) 12:04:37ID:???こんな厨房レスいらんねん。おかげでパフォーマンスの話題が途切れた。
0763NAME IS NULL
2005/12/07(水) 13:11:58ID:???すでに遅くなる所まで使い込んだ香具師居る?
0764NAME IS NULL
2005/12/07(水) 13:43:38ID:???特に遅くなる様子はないよ。
0765NAME IS NULL
2005/12/08(木) 01:58:24ID:???0766NAME IS NULL
2005/12/08(木) 04:42:54ID:???数万件程度ならSQLiteもMySQLも速度的にはたいして変わらんが、、、
0767NAME IS NULL
2005/12/08(木) 14:08:57ID:???アクセスはエクセルの延長的に使われるので正規化されずに使われそうだけど、sqliteはそうでもないかな?
0768NAME IS NULL
2005/12/08(木) 22:52:04ID:???0769NAME IS NULL
2005/12/12(月) 20:04:21ID:???SQLite2とSQLite3のデータベースの形式に互換性がないのはわかったけど
libsqlite3(つーかSQLite3のライブラリ)でSQLite2のデータベースを触ることはできるの?
0770NAME IS NULL
2005/12/12(月) 21:05:16ID:???0771NAME IS NULL
2005/12/12(月) 21:05:52ID:???できない。
0772NAME IS NULL
2005/12/12(月) 23:34:35ID:???2でexportして3でimportすればええやん。
0773NAME IS NULL
2005/12/13(火) 18:16:59ID:???一々疑問に思うなってばよ。
0774NAME IS NULL
2005/12/13(火) 19:52:37ID:???大したサイズじゃないんだから、両方入れりゃいいだろ。
0775NAME IS NULL
2005/12/15(木) 00:46:56ID:???ずっと2のままで使えばいいじゃん。
0776NAME IS NULL
2005/12/20(火) 03:36:53ID:sxnJeXo00777NAME IS NULL
2005/12/20(火) 23:20:55ID:???0778NAME IS NULL
2005/12/21(水) 10:25:55ID:???やっぱ、あるでしょ、少しぐらいは。
0779NAME IS NULL
2005/12/21(水) 15:58:44ID:???なんか最近抽象的な聞き方する人が多いな。
0780NAME IS NULL
2005/12/21(水) 16:44:14ID:???0781NAME IS NULL
2005/12/21(水) 19:46:25ID:???0782NAME IS NULL
2005/12/21(水) 21:14:22ID:???0783NAME IS NULL
2005/12/21(水) 21:16:48ID:???全く問題ない。100Mくらいまでは普通に使ってる。
0784NAME IS NULL
2005/12/22(木) 01:01:27ID:???0785NAME IS NULL
2005/12/22(木) 02:57:04ID:???0786NAME IS NULL
2005/12/22(木) 10:35:58ID:???0787NAME IS NULL
2005/12/22(木) 15:23:23ID:???JavaScriptで使っています。
おいらとしては問題なし、最適化って何ですか。(笑)
0788NAME IS NULL
2005/12/22(木) 22:46:45ID:???たしかMySQLより速いだろ
0789NAME IS NULL
2005/12/22(木) 23:03:24ID:???特に性能的な問題を感じないで(仕事で)使ってるよ。
0790NAME IS NULL
2005/12/22(木) 23:14:03ID:???まあSQL解析不要だからねえ。PreparedStatement状態。
0791787
2005/12/23(金) 17:39:04ID:???http://republika.pl/roed/litex/
LiteXはCOMなのでJavaScriptからADOみたいに使用できます。
個人で遊ぶにはODBCを使用するより便利ではないかと思っとります。
0792NAME IS NULL
2006/01/01(日) 15:27:03ID:???0793NAME IS NULL
2006/01/01(日) 18:19:44ID:???0794NAME IS NULL
2006/01/01(日) 19:33:50ID:???>>162
0795NAME IS NULL
2006/01/02(月) 14:59:12ID:???補足すると、J2SE5.0以降で使用する場合はAnt使ってリビルドが必要。
0796NAME IS NULL
2006/01/11(水) 02:39:29ID:???0797NAME IS NULL
2006/01/11(水) 04:31:27ID:???踏みましたか
0798NAME IS NULL
2006/01/11(水) 05:11:27ID:???0799NAME IS NULL
2006/01/11(水) 14:59:10ID:???0800NAME IS NULL
2006/01/11(水) 15:45:45ID:???0801NAME IS NULL
2006/01/11(水) 16:23:57ID:???とはいえ、2は非推奨みたいな雰囲気かもしだしてるのが悪いと思う。
3のほうこそ安定するまで非推奨にするべきだ。
0802NAME IS NULL
2006/01/11(水) 16:47:24ID:???0803NAME IS NULL
2006/01/11(水) 16:56:12ID:???↓フォーマット変更(互換性がなくて大混乱)
3.0←いまここ
↓フォーマット変更(大混乱)←これからここ
3.3
0804NAME IS NULL
2006/01/11(水) 17:41:45ID:???801の脳が
0805NAME IS NULL
2006/01/11(水) 18:23:35ID:???お前の目はフシアナ
0806NAME IS NULL
2006/01/11(水) 21:21:12ID:???それから、
>SQLite入門 すぐに使える軽快・軽量データベース・エンジン
この本を参考にすると、恐ろしい目に…。これ、全然、技術書じゃないね。
洋書を手に入れるしかないのか!!
0807NAME IS NULL
2006/01/11(水) 21:32:49ID:???データフォーマットが 3.3.0 で切り替わったってだけ?
0808NAME IS NULL
2006/01/11(水) 21:33:24ID:???駄目な条件も書かずに地雷とか言ってる奴は自分の危険回避能力を疑ったほうがいい。
0809NAME IS NULL
2006/01/11(水) 21:39:13ID:???0810NAME IS NULL
2006/01/11(水) 21:40:53ID:???またWindows 98/MEとかいう古代の遺物の話か。
0811NAME IS NULL
2006/01/11(水) 22:19:48ID:???ドキュメントも見ずにダメとか言うのはどうよ。
Unicodeで出し入れするか、BLOB型使いなはれ。
http://www.sqlite.org/datatype3.html
0812NAME IS NULL
2006/01/12(木) 01:15:33ID:???>俺が使ってる範囲では
問題はそこじゃないんだが・・・。まあどういう範囲か知らないが、
他人にファイルを渡したり貰ったり、関連のツールを使ったり
その辺の互換性が混乱することになるだろう・・・。
まあ調査能力の乏しい君にもいずれ現実が教えてくれるだろう・・・
0813NAME IS NULL
2006/01/12(木) 01:40:51ID:???で、トラッカーにも載ってなくて、報告する気もなし?
0814NAME IS NULL
2006/01/12(木) 02:16:38ID:???正確なバージョンかきなよ。xじゃ、どれがへっちゃらなのかわかんねーよ。
0815NAME IS NULL
2006/01/12(木) 02:19:14ID:???http://sourceforge.net/projects/sqlite-dotnet2
存在に今気付いた。なんでわざわざ別プロジェクトにしたんだろ?
0816NAME IS NULL
2006/01/12(木) 02:23:32ID:???お、REAL型を別扱いしてくれるようになったんだ。移行してみようかな。
0817NAME IS NULL
2006/01/12(木) 03:33:29ID:???SQLite3.3.0はSQLite3のどんな先のバージョンでも作成されたレガシーデータベースを読み書きするでしょう。
しかし、バージョン3.3.0作成されたデータベースは、SQLiteの以前のバージョンで読み込み可能であるか、書き込み可能にならないでしょう。
それが必要であるそれらのまれなケースのためのコンパイル時により古いファイル形式を指定することができます。
0818NAME IS NULL
2006/01/12(木) 03:35:51ID:???0819NAME IS NULL
2006/01/12(木) 03:37:32ID:???そんなことで混乱するのは素人だけ
いや素人のほうが慎重か?
0820NAME IS NULL
2006/01/12(木) 04:10:22ID:???0821NAME IS NULL
2006/01/12(木) 05:54:09ID:???慎重でも検討もしないけど、素人は古いバージョンから上げてくことが少ないので
データ形式の下位互換性は余り問題にならない。ただ機能的な互換性は問題にはなる。
アプリケーションが対応してようがしてまいが、"一番新しい"のを導入しようとするから。
0822NAME IS NULL
2006/01/12(木) 09:55:23ID:???0823NAME IS NULL
2006/01/12(木) 12:50:39ID:???0824NAME IS NULL
2006/01/12(木) 16:30:13ID:???0825NAME IS NULL
2006/01/12(木) 16:34:15ID:???0826NAME IS NULL
2006/01/12(木) 16:34:17ID:???このスレでコンパイルしてテストまで通せたやつは一人だけだろう。
0827NAME IS NULL
2006/01/12(木) 16:37:47ID:???そんなわきゃない。
0828NAME IS NULL
2006/01/12(木) 16:42:32ID:???おまえだけ
0829NAME IS NULL
2006/01/12(木) 17:52:08ID:???遂にラベリング厨キタ━━━(゚∀゚)━━━!!!
0830NAME IS NULL
2006/01/12(木) 19:05:27ID:???ラベリング厨とラベリングするのはやめてください
0831NAME IS NULL
2006/01/12(木) 20:22:46ID:???0832NAME IS NULL
2006/01/12(木) 21:54:28ID:???基本的にはUnicodeにするべし
0833NAME IS NULL
2006/01/12(木) 22:41:51ID:???理由は? UnicodeってUTF-8でもいいのかよ?
0834NAME IS NULL
2006/01/12(木) 22:43:11ID:???API見れ
0835NAME IS NULL
2006/01/12(木) 22:47:29ID:???API的には8bit stringはUTF-8、16bit stringはUTF-16を想定している。
http://www.sqlite.org/capi3.html
もちろん君の使うフロントエンドがコード変換をやってるならこの限りではない。
0837NAME IS NULL
2006/01/13(金) 11:33:09ID:???0838NAME IS NULL
2006/01/13(金) 13:57:07ID:???0839NAME IS NULL
2006/01/13(金) 14:29:24ID:???そんなめんどっちいことするのは少数派
0840NAME IS NULL
2006/01/13(金) 14:33:10ID:???自分の価値観押しつけ合うのはやめような
0841NAME IS NULL
2006/01/13(金) 21:52:20ID:???0842NAME IS NULL
2006/01/13(金) 22:32:11ID:???PerlやRubyならDBIとか使うのが手っ取り早いけど。
0843NAME IS NULL
2006/01/13(金) 22:41:56ID:???「フロントエンド」「SQLite」の辺りを俺定義で使ってる奴が混ざってる予感。
0844NAME IS NULL
2006/01/14(土) 01:05:35ID:???SQLite3が地雷だと言うならSpotlightが不安定だと証明しなきゃな。
あと、一般的にDBのファイルって他人と交換しないだろ。
普通のアプリなら、内部で使ってるDBとは別に、データを
エクスポート/インポートするためのファイル形式を自分で定義する。
XMLとかでな。
それができずにグダグダ言ってるアプリ作者は単なるザコ。
消えろ。
0845NAME IS NULL
2006/01/14(土) 01:26:30ID:???0846NAME IS NULL
2006/01/14(土) 01:30:01ID:???アルファ版は地雷原を歩いてもらうためのもんでしょ?
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 NULL
2006/01/14(土) 01:50:55ID:???3.2.8使って、同等のCアプリを自分で書いて試してみた?
0848NAME IS NULL
2006/01/14(土) 01:56:44ID:???もともとマックは地雷。
0849NAME IS NULL
2006/01/14(土) 01:58:33ID:???つまんね
0850NAME IS NULL
2006/01/14(土) 01:59:34ID:???>あと、一般的にDBのファイルって他人と交換しないだろ。
これはわからない。どういう風に使われているのかは、アプリ次第だし
ユーザーの挙動は想像するだけ無駄。
0851NAME IS NULL
2006/01/14(土) 02:08:16ID:???ユーザーの挙動の話じゃなくて、アプリ作者のポリシーの話。
互換性がそんなに大事なら、データをエクスポート/インポートする
ファイル形式は、自分で定義するのが普通だが。
特に、SQLiteは組み込み用の軽量DBMSってのが売りなんだから
DBファイルは基本的にアプリ内部のローカルストレージであって
交換用の標準ファイルフォーマットではない。
0852NAME IS NULL
2006/01/14(土) 09:29:16ID:???0853NAME IS NULL
2006/01/14(土) 09:49:40ID:???そのSQLiteのバージョンは?
0854NAME IS NULL
2006/01/14(土) 10:39:26ID:???すまん。アプリケーション埋め込みでわからないの。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 NULL
2006/01/14(土) 16:09:56ID:???HFSファイルシステム自体が糞。
0856NAME IS NULL
2006/01/14(土) 16:16:11ID:???0857NAME IS NULL
2006/01/14(土) 17:06:48ID:???日本の北朝鮮化計画、乙。
0858NAME IS NULL
2006/01/14(土) 22:52:49ID:???オリジナルコードと協調しているあたり、かなり変更して使ったぜー、って雰囲気をかもし出してる。
0859NAME IS NULL
2006/01/15(日) 00:25:34ID:???ファイルフォーマットから2、3.0、3.3を見分けろ。バイナリエディタで開けばわかるはずだ。
0860NAME IS NULL
2006/01/15(日) 05:25:28ID:???unique indexをつくって、同じIDでinsertするとSQLITE_ERRORが返ってくるが、
これって他のエラーと見分けつくの?エラーコードで。
IDが既にあるならなにもしない的な動きにしたいんだが。
0861NAME IS NULL
2006/01/15(日) 09:58:07ID:???トリガー書け
0862854
2006/01/15(日) 10:59:41ID:???ありがとうございます。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 NULL
2006/01/15(日) 11:25:53ID:???俺のシステムだとfileコマンドがSQLiteのバージョンまで表示してくれるなぁ。
0864NAME IS NULL
2006/01/16(月) 18:08:18ID:???( ⌒ ヽ < 2006-Jan-16 - Version 3.3.1 alpha
∪ 。ノ
∪∪
0865NAME IS NULL
2006/01/17(火) 20:09:05ID:???どうりでODBCドライバとかことごとく使えないと…
0866NAME IS NULL
2006/01/18(水) 05:24:20ID:jidDFeuu0867NAME IS NULL
2006/01/18(水) 06:24:25ID:???0868NAME IS NULL
2006/01/18(水) 06:30:27ID:???SQLite用のODBCドライバを使えば扱える。
あと、CSEと似たようなソフトならたくさんある。
http://www.yunqa.de/delphi/sqlitespy/
http://www.dbtools.com.br/EN/index.php
http://www.sharpplus.com/
0869NAME IS NULL
2006/01/19(木) 06:02:48ID:???ありがとう!
0870NAME IS NULL
2006/01/21(土) 00:04:40ID:???:memory:でメモリ上に作成したDBを
ファイル化するにはどうやればよいのでしょうか
0871NAME IS NULL
2006/01/21(土) 03:03:04ID:???http://www.kordelle.de/sqlite/
0872NAME IS NULL
2006/01/21(土) 05:48:41ID:???0873NAME IS NULL
2006/01/23(月) 09:07:42ID:???日本語フォントで表示できるのはCSEだけなの?
0874NAME IS NULL
2006/01/24(火) 00:25:37ID:???SQLiteSpyみたいなUnicode対応のソフトなら普通に日本語も表示できるが。
できないのってSQLiteCCみたいな屑ソフトだけだろ。
外人ってUTF-8とASCIIの区別がついてないから、SQLiteのUTF-8文字列を
そのままWin32 APIに渡しちゃうんだよw
0875NAME IS NULL
2006/01/24(火) 09:37:01ID:???0876NAME IS NULL
2006/01/24(火) 12:12:38ID:???0877NAME IS NULL
2006/01/24(火) 12:20:09ID:???当時UTF-8は無かっただろ
0878NAME IS NULL
2006/01/25(水) 23:31:33ID:BM5SnTHn自分にレスしてね?w
ていうかSQLiteCCは日本人なら日本語版使うだろ
ttp://www.takke.jp/soft/sqliteccj.html
0879NAME IS NULL
2006/01/26(木) 00:22:29ID:???それってクエリー文字列入力欄は日本語対応してないし。
あと、勝手にクエリー文字列を小文字か大文字に変換してるらしく
文字列比較系のクエリーがまともに使えない。
0880NAME IS NULL
2006/01/26(木) 09:00:20ID:3MzXjqdF>SQLiteSpyみたいなUnicode対応のソフトなら普通に日本語も表示できるが。
初心者ですみませんが教えてください。SQLite3.EXEで普通に
CREATE TABLE FOO (A INTEGER, B TEXT);
とかして作ったテーブルのコードはなんですか?
SQLite3.EXEでは漢字が表示されるのにSQLiteSpyでは□で表示されるのですが・・・
0881NAME IS NULL
2006/01/26(木) 09:35:54ID:???クライアントではどの文字コードで入力したの?
0882NAME IS NULL
2006/01/26(木) 11:38:19ID:XuaaA1W8http://aa5.2ch.net/test/read.cgi/nida/1130995497/l50
0884NAME IS NULL
2006/01/26(木) 23:49:27ID:???SJISでDBに書き込まれて、SQLiteSpyが
「SJISをUTF-8として扱って」文字化けしてるんだろ。
SQLite3.exeって、文字コードの変換とかは何〜んもやらんから。
DOS窓ではSJIS以外では入力はできません。
0885NAME IS NULL
2006/01/26(木) 23:57:18ID:???正しく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 NULL
2006/01/27(金) 00:07:41ID:???0887NAME IS NULL
2006/01/27(金) 00:28:58ID:???いけるんじゃね?
http://www.geocities.jp/cygwin_ck/history.html
> 2004/04/05 -
> ver0.8.5リリース
> UTF-8を入力、表示できるようにしました。
0888NAME IS NULL
2006/01/27(金) 15:09:38ID:???Unix系プログラマってバカだからな、ANSIすらまもらねぇヤツ多いしさ。
これが当たり前なのか? Sqlite3.0系では。
0889NAME IS NULL
2006/01/27(金) 15:37:24ID:???0890NAME IS NULL
2006/01/27(金) 15:50:13ID:???0891NAME IS NULL
2006/01/27(金) 17:50:34ID:???起動して何か処理して終わればすぐプロセスごと終了だもの。
もちろんデーモンを作る時にはそうはいかないが。
SQLiteはそういうちょっとしたツール向けだろ。
常時起動している(メモリリークが問題になる)サーバで使うものじゃない。
アクセスがあるごとにプロセスをつくり、そこでSQLiteを利用、
終わればプロセス毎開放するような使い方ならともかく。
クライアントアプリでも、ずっと立ち上がってるようなものには向いてないだろな。
0892NAME IS NULL
2006/01/27(金) 18:06:44ID:???それが一定量であれば問題にしないのがUnix文化だし、実際Unixだろうと
Windowsだろうと問題にはならない。
リークってのは処理を続けていくうちに比例的にどんどんメモリ消費量が増えて
いっていつか続行不能になるってことだが、Sqliteでそういう経験はないな。
一ヶ月くらいの連続運用は平気でやってるけど。
0893NAME IS NULL
2006/01/27(金) 18:10:25ID:???いろんな環境に対応させようとするとこうなるのはまあ・・・
0894NAME IS NULL
2006/01/27(金) 21:45:09ID:???0895NAME IS NULL
2006/01/27(金) 21:57:23ID:???必要じゃない限り、いろんな環境に対応させようなんて考える必要ないはずだけどなぁ。
リークっていうのは…て書き出しにしちゃ、誤用っぽい説明だな。
おまえみたいな奴がいるから。Windowsじゃ強引にプロセスのマークをつけて、メモリ解放するように
「途中からOSを仕様変更」したからな。
しかし、古典的エンジニアが聞いたら卒倒しそうな文化だな。
0896NAME IS NULL
2006/01/27(金) 22:15:12ID:???Win16とか旧MacOS時代の人、乙。はやく時代に適応できるといいね。
0897NAME IS NULL
2006/01/28(土) 02:04:22ID:???0898NAME IS NULL
2006/01/28(土) 02:13:39ID:???っつーか、Spotlightなんてまさに
「SQLite3を組み込んだUNIX上のdaemon」だよな。
0899NAME IS NULL
2006/01/28(土) 02:28:57ID:???0900NAME IS NULL
2006/01/28(土) 02:32:52ID:???0901NAME IS NULL
2006/01/28(土) 04:38:37ID:???どんな結果でさえ、ソース上、バカなコーディングは遠慮させていただく。
0902NAME IS NULL
2006/01/28(土) 06:35:55ID:???0903NAME IS NULL
2006/01/28(土) 10:05:35ID:???0904NAME IS NULL
2006/01/28(土) 16:26:23ID:???人知れず埋め込まれていっています
0905NAME IS NULL
2006/01/28(土) 17:17:30ID:???0906NAME IS NULL
2006/01/29(日) 00:50:58ID:???卒倒しそうなのは、古典的PC系エンジニアですな。
メモリリークって言ったら、
(事実上)プログラムが制御出来なくなったメモリが、発生することだと思ってた。
0907NAME IS NULL
2006/01/29(日) 00:59:53ID:???単に使った後のメモリを開放しないのは行儀が悪いだけでリークではない。
メモリがタイトになればページアウトされるだけだから深刻な問題にはならない。
プログラムが制御出来ないメモリが発生するのはOSのバグだろ。
0908NAME IS NULL
2006/01/29(日) 12:28:37ID:???メモリリークとメモリが増え続けることは別の話。
メモリがタイトになれば、ページアウトされてパフォーマンスダウンじゃねーの?
カーネルプログラミングの場合だと、制御できないメモリが発生はプログラムのバグで、
OSのバグじゃないんですけど。
0909NAME IS NULL
2006/01/29(日) 13:35:43ID:???プログラムがヘボで、一度OSから取得したメモリブロックを
使用終了後もOSに返さないままプログラム側でもポインタも失うこと。
OS側から見れば、プログラムから返却されていないから
プロセスが終了するまでそのメモリは割り当てっぱなしになるし、
プログラム側でも既に使ってない空虚なメモリ空間が発生する。
このメモリ空間はプロセスが終了すればOSによって強制的に回収されるため
単発コマンド等では実害として現れにくいが、
長時間稼働し続けるプログラム、特にデーモン等では、
時間が経てば経つほどメモリ保持量が増大し続ける被害が発生する。
使用メモリが増え続けること = メモリリーク、ではない。
フリーしてないメモリが増え続けること = メモリリーク、は正しい。
メモリリークの結果、使用メモリが増え続ける、のは正しい。
使用メモリが増え続ける = メモリリーク、とは限らない。
0910NAME IS NULL
2006/01/29(日) 14:03:21ID:???偏執的に全てのメモリをfreeしろというのは>>888のような低脳プログラマでも
仕事できるようにするための規律にすぎない。
0911NAME IS NULL
2006/01/29(日) 14:07:44ID:???0912NAME IS NULL
2006/01/29(日) 14:49:15ID:???0913NAME IS NULL
2006/01/29(日) 16:42:01ID:???仕事でする規律って…。組み込み系とかの仕事したこと無いんだろ。
低脳なんて言葉が使えるほど経験値高くないぞ、おまえは。
0914NAME IS NULL
2006/01/29(日) 17:05:39ID:???組み込み系の真面目なプログラマが聞いたら怒るぞ。
おまえが土方仕事しかやってないってことはよくわかったから、もう来なくていいよ。
0915NAME IS NULL
2006/01/29(日) 19:26:50ID:???0916豪
2006/01/29(日) 21:20:18ID:w90V2ZdUこのスレを見た人はコピペでもいいので30分以内に
7つのスレへ貼り付けてください。
そおすれば14日後、好きな人に告白され、
17日後にはあなたに幸せがおとずれるでしょう
0917NAME IS NULL
2006/01/29(日) 22:27:04ID:???0918NAME IS NULL
2006/01/29(日) 22:39:20ID:???一体どんなコードでメモリリークが再現するのか >>888 さん見せていただけませんか?
0919NAME IS NULL
2006/01/29(日) 22:56:28ID:???プログラムが制御出来ないメモリが発生するのはOSのバグだろ。
プログラムが制御出来ないメモリが発生するのはSQLite3のバグだろ。
こんなことを言うUnixプログラマはバカなんだよ。
0920NAME IS NULL
2006/01/29(日) 23:01:05ID:???いやー、君ほどじゃないけど
0921NAME IS NULL
2006/01/29(日) 23:04:36ID:???0922NAME IS NULL
2006/01/29(日) 23:17:28ID:???> 913 名前:NAME IS NULL 本日のレス 投稿日:2006/01/29(日) 16:42:01 ???
> >>910
> 仕事でする規律って…。組み込み系とかの仕事したこと無いんだろ。
> 低脳なんて言葉が使えるほど経験値高くないぞ、おまえは。
おつかれ、910。
0923NAME IS NULL
2006/01/29(日) 23:18:55ID:???まだ居たのか、低脳。はやくどっか池。
0924NAME IS NULL
2006/01/29(日) 23:19:52ID:???メモリリークは報告されなかったよ。
(唯一、アプリ終了時のCriticalSectionハンドルの開放忘れ
(SQLite3が内部で使ってる)があったから自分で修正したけどね。)
>>888がヘボプログラマでFA。
0925NAME IS NULL
2006/01/29(日) 23:27:36ID:???結局>>888はフリーしてないメモリブロックがあるというデバッガメッセージを
一目見ただけで鬼の首を取ったように騒いだだけなんだろうな。
0926NAME IS NULL
2006/01/29(日) 23:54:29ID:???910おつかれ。
0927NAME IS NULL
2006/01/30(月) 00:20:38ID:???能無し雑魚がまだいたの?
お前みたいな下等生物が居ていい板じゃないんだよここは。な?
0928NAME IS NULL
2006/01/30(月) 20:54:23ID:???それとも命令や使い方によってはあるのかな?
0929NAME IS NULL
2006/02/01(水) 13:21:42ID:???早い、早すぎるよ。
0930NAME IS NULL
2006/02/01(水) 13:57:01ID:???個人的に3.3.6ぐらいまでは様子見。
0931NAME IS NULL
2006/02/01(水) 14:09:11ID:???0932NAME IS NULL
2006/02/01(水) 20:38:49ID:???フォーマットが変わったのでSQLSpyもCSEも全滅じゃん。
0933NAME IS NULL
2006/02/01(水) 20:49:52ID:???0934NAME IS NULL
2006/02/01(水) 20:53:14ID:???まだ3.3.3使ってないから誤解してるのかもしれんが、ソースからコンパイル&リンク
し直せばいいって問題じゃないの?
0935NAME IS NULL
2006/02/01(水) 21:42:21ID:???0936NAME IS NULL
2006/02/01(水) 22:27:00ID:???0937NAME IS NULL
2006/02/02(木) 13:52:11ID:???SQLite for ADO.NET 2.0 新バージョンktkr
同根のSQLiteのバージョンは3.3.1aらしい。
0938NAME IS NULL
2006/02/02(木) 20:14:32ID:???0939NAME IS NULL
2006/02/02(木) 20:27:34ID:???0940NAME IS NULL
2006/02/02(木) 20:46:01ID:???0941NAME IS NULL
2006/02/03(金) 19:28:51ID:???919 名前:NAME IS NULL 投稿日:2006/01/29(日) 22:56:28 ???
>>918
プログラムが制御出来ないメモリが発生するのはOSのバグだろ。
python-sqliが制御出来ないメモリが発生するのはSQLite3のバグだろ。
こんなことを言うUnixプログラマはバカなんだよ。
0942NAME IS NULL
2006/02/03(金) 19:51:44ID:???ごめんなさい。こういうとき、どんなレスをすればいいのかわからないの。
0943NAME IS NULL
2006/02/04(土) 02:28:05ID:???必ず、ファイルは閉じて、メモリは解放する。
0944NAME IS NULL
2006/02/06(月) 10:52:23ID:???閉じればいいと思うよ
,、‐ ''"  ̄ ``'' ‐- 、
/イハ/レ:::/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 NULL
2006/02/10(金) 10:23:03ID:???0946NAME IS NULL
2006/02/10(金) 18:29:26ID:???0947NAME IS NULL
2006/02/12(日) 00:09:43ID:???0948NAME IS NOT NULL
2006/02/13(月) 05:22:25ID:???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 NULL
2006/02/13(月) 15:04:40ID:???0950NAME IS NULL
2006/02/13(月) 15:51:31ID:???0951NAME IS NULL
2006/02/13(月) 15:56:48ID:???0952NAME IS NULL
2006/02/14(火) 00:38:23ID:???0953NAME IS NULL
2006/02/14(火) 09:16:37ID:???0954NAME IS NULL
2006/02/17(金) 22:09:04ID:???他のまともなRDB使え。
0955NAME IS NULL
2006/02/17(金) 23:08:14ID:???うちはへっちゃらですけど・・・
0956NAME IS NULL
2006/02/19(日) 17:27:22ID:???0957NAME IS NULL
2006/02/19(日) 21:24:59ID:???0958NAME IS NULL
2006/02/19(日) 21:58:11ID:???0959NAME IS NULL
2006/02/19(日) 23:08:52ID:???0960NAME IS NULL
2006/02/21(火) 02:14:31ID:???0961NAME IS NULL
2006/02/21(火) 02:24:03ID:???自分のミスを SQLite のせいにするかね。
0962NAME IS NULL
2006/02/21(火) 02:27:22ID:???お。低脳君久々の登場ですね。
0963NAME IS NULL
2006/02/21(火) 11:41:56ID:???J >>960
∩_∩ ∩_∩
(・(ェ)・ ) ( ・(ェ)・)
0964NAME IS NULL
2006/02/21(火) 19:02:57ID:???0965NAME IS NULL
2006/02/21(火) 19:23:02ID:???>>960 によると、「普通のRDB」なら閉じなくても開きっぱにならないんだそうですよ。
0966NAME IS NULL
2006/02/21(火) 21:51:49ID:???0967NAME IS NULL
2006/02/21(火) 21:56:44ID:???0968NAME IS NULL
2006/02/21(火) 22:04:27ID:???0969NAME IS NULL
2006/02/21(火) 22:27:46ID:???0970NAME IS NULL
2006/02/22(水) 02:00:04ID:???開きっぱにするらしい。
ひどい公害プログラマだなw
0971NAME IS NULL
2006/02/22(水) 02:22:33ID:???もう少しおもしろいこと書けよ
0972NAME IS NULL
2006/02/22(水) 02:33:03ID:???0973NAME IS NULL
2006/02/22(水) 09:29:39ID:???0974NAME IS NULL
2006/02/22(水) 12:57:55ID:???0975NAME IS NULL
2006/02/22(水) 16:06:15ID:???0976NAME IS NULL
2006/02/22(水) 16:14:48ID:???0977NAME IS NULL
2006/02/22(水) 20:39:31ID:???0978NAME IS NULL
2006/02/22(水) 21:36:16ID:???おまんこ。
0979NAME IS NULL
2006/02/22(水) 22:18:42ID:???0980NAME IS NULL
2006/02/23(木) 03:13:52ID:???はいはい一まんこ一まんこ。
0981NAME IS NULL
2006/02/24(金) 16:00:36ID:+IIz7SDv0982NAME IS NULL
2006/02/24(金) 17:15:45ID:???0983NAME IS NULL
2006/02/24(金) 18:22:56ID:???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 NULL
2006/02/24(金) 20:13:38ID:???0985NAME IS NULL
2006/02/25(土) 00:19:34ID:???0986NAME IS NULL
2006/02/25(土) 07:40:37ID:???apache起動して一発めでもダメなもん?
0987NAME IS NULL
2006/02/25(土) 08:07:43ID:???DBのファイルが壊れているとか。
0988NAME IS NULL
2006/02/25(土) 09:35:47ID:???http://pc8.2ch.net/test/read.cgi/db/1140827718/
0989NAME IS NULL
2006/02/25(土) 10:45:06ID:???0990NAME IS NULL
2006/02/25(土) 16:00:49ID:RhNDLCTJhttp://www.outdex.net/diary/archives/2006/01/sqlite.shtml
0991NAME IS NULL
2006/02/25(土) 16:27:12ID:???0992NAME IS NULL
2006/02/25(土) 16:59:26ID:???全く同じ環境でmod_perlを有効にしてないときはちゃんと動くのよね。
mod_perlありだと単純に select 10 とかやっても答えが返ってこない。
>>989
確かにmod_perlだけど、どうやったら起動時にDB握るの?
connectするまでは握るDBすら決まってないんだから。
0993NAME IS NULL
2006/02/25(土) 20:18:27ID:???0994NAME IS NULL
2006/02/25(土) 20:33:31ID:???リクエスト毎に disconnect してもダメなん?
0995NAME IS NULL
2006/02/26(日) 08:20:02ID:???ダメなん。ていうか一番最初のクエリからしておかしいので。
ぐーぐる様に聞いても同じような症状で困ってる人は見つかっても
解決したって話が出てこない。
mod_perl外すのは厳しいから、違うDBMSにするかdbm方面に逃げるか
かなぁ。
0996NAME IS NULL
2006/02/26(日) 20:58:01ID:???ttp://multix.jp/cgi-bin/cdiary2/2003-04-04.dml.html
>mod_perl 環境下でやっちゃダメなものをいくつか。
参考になるかね?
0997NAME IS NULL
2006/02/26(日) 21:21:05ID:???次スレで。
0998NAME IS NULL
2006/02/27(月) 09:17:18ID:???http://pc8.2ch.net/test/read.cgi/db/1140827718/
0999NAME IS NULL
2006/02/27(月) 10:25:43ID:???1000NAME IS NULL
2006/02/27(月) 10:26:33ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。