09/08/14 13:51:26 UlUB4lFJ
サーバの要らない軽量データベース SQLite についてのスレです。
SQLite Home Page
URLリンク(www.sqlite.org)
2:NAME IS NULL
09/08/14 13:52:04
過去スレ
sqliteを語るスレ
スレリンク(db板)
SQLite 2
スレリンク(db板)
SQLite 3
スレリンク(db板)
SQLite 4
スレリンク(db板)
SQLite 5
スレリンク(db板)
SQLite 6
スレリンク(db板)
SQLite 7
スレリンク(db板)
3:NAME IS NULL
09/08/14 13:52:23
ツール等
Management Tools
URLリンク(www.sqlite.org)
【GUIツール】 TkSQLite
URLリンク(reddog.s35.xrea.com)
【ADO.NET 2.0 Provider】 System.Data.SQLite
URLリンク(sqlite.phxsoftware.com)
【ODBC】 SQLite ODBC Driver
URLリンク(www.ch-werner.de)
【JDBC】 SQLiteJDBC
URLリンク(www.zentus.com)
【ADO.NET provider】 System.Data.SQLite
URLリンク(sqlite.phxsoftware.com)
【GUI管理ソフト】 PupSQLite
URLリンク(www5.plala.or.jp)
【Firefox add-on】 SQLite Manager
URLリンク(code.google.com)
URLリンク(addons.mozilla.org)
4:NAME IS NULL
09/08/14 13:52:40
ネタ
OS X ハッキング! SQLiteが広げるこれからのアプリケーション
URLリンク(journal.mycom.co.jp)
SQLite Java Wrapperのコンパイル
URLリンク(syo.cocolog-nifty.com)
SQLiteへの大量のINSERT処理が厳しい (CodeZine編集部ブログ):
URLリンク(blog.codezine.jp)
SQLite性能評価その1
URLリンク(www.sutosoft.com)
Fulltext index on SQLite
URLリンク(www.dodgson.org)
SQLite の全文検索を Python から使ってみる (1)
URLリンク(plaza.rakuten.co.jp)
SQLite Full Text Search with MeCab
URLリンク(reddog.s35.xrea.com)
5:NAME IS NULL
09/08/14 13:53:44
和書
SQLite入門 第2版 (西沢直木 著)
URLリンク(www.amazon.co.jp)
和書で SQLite のみにフォーカスした書籍はこれ一択か。
入門用にはとりあえずこの一冊。
PHP+SQLite実践サンプルブック (豊崎直也 著)
URLリンク(www.amazon.co.jp)
(内容不明。補足よろ)
Pocket詳解 SQL辞典 (堀江美彦 著)
URLリンク(www.amazon.co.jp)
各種 RDBMS 対応の SQL のリファレンス本で、 SQLite にも対応。
が、ざっと見たところ SQLite に関してはあまり緻密に調べられておらず
不正確なところもあるように見受けられる。
基礎から学ぶWebデータベースプログラミング (堀川久 著)
URLリンク(www.amazon.co.jp)
前半は SQL の基礎について、後半は Ruby で Web アプリの作成についての説明。
PostgreSQL, MySQL, SQLite の仕様の違いにも触れられている。
が、 SQLite は SQLite2 ベースなので情報が古いかも。
洋書
The Definitive Guide to Sqlite (Mike Owens 著)
URLリンク(www.amazon.co.jp)
SQLite (Developer's Library) (Chris Newman 著)
URLリンク(www.amazon.co.jp)
6:1
09/08/14 13:55:46
レビューの質が悪いのでやめとこうかとも思ったけど、
書籍の紹介が全然無いのも寂しいので一応 >>5 を載せてみますた。
7:NAME IS NULL
09/08/16 13:03:22 ot9ThzR+
>>1乙
SQLite最近使い始めたんだけどinsert文がちょくちょく失敗して困る。
過去に一度insertしてその後deleteして現在は無いデータなのに
sqlite_execのエラー文字列見るとcolumn ~ is not uniqueとかが代入されてた。
毎回失敗するならいいけど時々だから余計に原因が分からない。
今はみれないけど>>4にある「SQLiteへの大量のINSERT処理が厳しい」の記事に
そういうこと書いてあったのかな。
誰かこんな症状に悩まされてるって人いる?
8:NAME IS NULL
09/08/16 14:36:46
firebird embedded にするのがよいよ。
9:NAME IS NULL
09/08/16 16:18:55
>>7
deleteした人がトランザクション持ったままとか幼稚なミスは無いとして
NFSの先にファイルがあるとか
10:NAME IS NULL
09/08/17 07:28:26
SQLite Release 3.6.17 On 2009 Aug 10 (3.6.17)
Changes associated with this release include the following:
* Expose the sqlite3_strnicmp() interface for use by extensions and applications.
* Remove the restriction on virtual tables and shared cache mode. Virtual tables and shared cache can now be used at the same time.
* Many code simplifications and obscure bug fixes in support of providing 100% branch test coverage.
11:4
09/08/17 10:48:04
すみません、リンク先の確認してなかった。でも、大したこと書いてないような・・・
SQLiteへの大量のINSERT処理が厳しい (CodeZine編集部ブログ)
URLリンク(codezine.jp)
本当に「現在は無いデータ」かどうか確認してみるとか?
例えば「column ~ is not unique」のエラーを捕捉して、
そのデータを SELECT してみる処理を入れてみて確認してみては。
12:NAME IS NULL
09/08/18 02:06:36
>>11
「SQLiteへの大量のINSERT処理が厳しい」は基本、トランザクションを使わないアホ記事
URLリンク(journal.mycom.co.jp) と、それに対する指摘の
URLリンク(www.randynetwork.com) の件しか書かれていないので、情報量ゼロに
等しいからねい。
13:NAME IS NULL
09/08/18 03:06:17
どうせならsqlite3_clear_bindings、sqlite3_resetまでやって、これだけ早くなりました
っていうの書いてほしいな
14:NAME IS NULL
09/08/18 12:06:13
つまりSQLiteはトランザクション処理が遅すぎってことだろ
もうちっと速くなんないもんかね
15:NAME IS NULL
09/08/18 14:21:06
トランザクション処理が遅いというか、データが更新されていることを保証するから遅いんだろう。
16:NAME IS NULL
09/08/18 21:13:44 zw0wFllC
これ、昔はまったな。
トランザクションの開始と終了を明示しない時は、1SQLを1トランザクションと
みなしてコミットするっていうのは安全方向な解釈なわけで、
ごもっともって思ったけどね。
17:NAME IS NULL
09/08/19 01:06:29
1ファイルで直接アクセスする手軽さを捨てれば、もう少し良くなりそうだけどね。
URLリンク(www.atmarkit.co.jp)
これ読むと、毎回全部書き直すように読めるんだけど、
auto commitの場合に毎回これが行われるとしたら、かなり性能が劣化しそうだね。
18:NAME IS NULL
09/08/19 01:26:17
>>16
BerkeleyDBとかだとindexとかは複数ファイルに分かれているわけだし、
SQLiteもそういう設計にしてもいいはずだよねい。
あと、ちょっとスレ違いだけど、FirefoxではSQLiteなDBファイルを
一切reindexやvacuumしないので、SQLite OptimizerなどのAddon使わないと
Firefoxの起動や終了が遅くなる一方なんだよなぁ。その辺、Firefoxは
DBの挙動やメンテについて無頓着すぎると思う。
19:NAME IS NULL
09/08/19 19:10:22
設計思想として1db=1ファイルって手軽さをとったんだろう。
あと、fxは次のバージョンでそこらに手を入れるとかなんとか。
20:NAME IS NULL
09/08/20 01:55:40 UUp3k2LM
dhRichClient3 (旧dhSqlite)で、VBAからSqlite利用しようとしています。
「COPY」コマンドを使用したいのですが、古くて使えないようなので
「.import」をVBAから実行したいのですが、普通のSQL文と同じ方法では実行できませんでした。(当然?)
「.import」のような管理コマンドの実行方法が分かる方いたらお教えください。
リファレンスにもそれらしいコマンド見当たりません…
URLリンク(www.datenhaus.de)
21:NAME IS NULL
09/08/20 12:14:43
'.' で始まるコマンドって、 SQL 文ではなくて、 sqlite コマンドの機能なんだよね。
(ソースコードでいうと src/shell.c 内で実装)
sqlite コマンドを実行するか、
.import 相当の機能を別途実装するしかないんじゃなかろうか。
22:前スレ985
09/08/20 14:38:09
しばらく来ることができなくて、やっと来れたら前スレが落ちてたorz
申し訳ないのですが、前スレ985へのレスがありましたら教えていただけないでしょうか
>985 NAME IS NULL [sage] Date:2009/08/12(水) 15:29:59 ID:??? Be:
> SQLite version 2.8.17からSQLite3にデータベースを変換しようと思って
> 「2」で.dumpコマンドを発行したんだが、一部の文字列が「'」でくくられておらず
> 「3」の.readでエラーになってしまうのだが、これってSQLite2のバグなのか?
> それともデータベースファイルの方がおかしいのか?
23:NAME IS NULL
09/08/20 14:55:28
うちの環境 (2.8.17 & 3.6.14) ではうまく再現しないんだけど、
何か再現するデータの例はある?
24:NAME IS NULL
09/08/20 22:47:58
>>21
やっぱりそうなりますか…
とりあえず後者の方法でしのごうと思います。
ありがとうございました。
25:NAME IS NULL
09/08/21 00:04:12
>>22
986 名前:NAME IS NULL[sage] 投稿日:2009/08/12(水) 17:53:17 ID:???
むむむ、そんなことあるのか。
文字コードがおかしい (Shift_JIS とか) ってことはないよね?
のみだな。
26:前スレ985
09/08/21 00:11:18
>>22
ぶっちゃけるとコミケカタロムっていうのに入っているデータベースファイルなんですよ
>>25
テキストデータはShiftJISで入っているみたいです。これが原因なんでしょうか・・・
27:NAME IS NULL
09/08/21 11:54:27
sqlite db .dump | nkf -w | sqlite3 db
28:NAME IS NULL
09/08/21 12:05:57
>>23 = 前スレ986 ですが。
コミケカタログ持ってないからなあ・・・
SQLite2 のバグのような気もするけど、エラーの出る行とか見てみたい。
>>27
nkf -xm0 --ic=CP932 --oc=UTF-8 とかのが良いかな。
29:NAME IS NULL
09/08/21 13:06:51
.dumpの結果の一部ですが、3つ目のINSERTがおかしくなっています
create table ComiketMap (
comiketNo INTEGER not null, -- コミケ番号
id INTEGER not null, -- 地図ID
name VARCHAR(10), -- 地図名
filename VARCHAR(10), -- 地図ファイル名基幹部
x INTEGER, -- 印刷用範囲
y INTEGER, -- 印刷用範囲
w INTEGER, -- 印刷用範囲
h INTEGER, -- 印刷用範囲
allfilename VARCHAR(10), -- 略地図ファイル名基幹部
x2 INTEGER, -- 印刷用範囲ハイレゾ用
y2 INTEGER, -- 印刷用範囲ハイレゾ用
w2 INTEGER, -- 印刷用範囲ハイレゾ用
h2 INTEGER, -- 印刷用範囲ハイレゾ用
rotate INTEGER, -- 配置に対する回転方向 0:正 1:逆
PRIMARY KEY (comiketNo,id)
);
INSERT INTO ComiketMap VALUES(76,1,'東123','E123',0,0,1270,540,'A1',0,0,2540,1080,0);
INSERT INTO ComiketMap VALUES(76,2,'東456','E456',0,0,1270,540,'A2',0,0,2540,1080,1);
INSERT INTO ComiketMap VALUES(76,3,西12,'W12',0,0,1000,800,'A3',0,0,2000,1600,0);
30:NAME IS NULL
09/08/21 17:04:50
こう並べてみると、西の文字が東より左に寄ってるじゃないか
これで気がつくことがあるべ
31:28
09/08/21 18:32:42
そのデータを「西12」をクオートして sqlite 2.8.17 に突っ込んで .dump したけど、
ちゃんとクオートされて出力されてしまった。
sqlite 2.8.17 の dump のコードを見た感じだと、
クオートされずに出力される可能性があるとすると、
そのカラムのデータが数値として判定された場合が考えられるんだけど、
「西12」だしなあ・・・
.dump を実行してるのはどんな環境なのかな?
OS とかロケール (環境変数 LANG や LC_* など) とかが知りたい。
>>30
何か気づいたの?
32:NAME IS NULL
09/08/22 13:29:25
データベースを作るアプリと参照するアプリの二つを
開発しています。
データベースを作るアプリが遅いので、
(transaction は使用しています)
メモリ内に作ってファイルに書き出すことを検討していますが、
Data Source = :memory で、メモリ内に作ったデータベースを
ファイルに保存することはできますか?
33:NAME IS NULL
09/08/22 21:12:38
>>32
シリアライズすれば出来るよ。
というかInsertで一件ずつコミットとかしてないよな?
34:NAME IS NULL
09/08/22 21:30:11
「RAMディスク」というソリューション
35:前スレ985
09/08/22 21:39:05
>>30
ごめんなさい、わかりません。
>>31
環境変数ですか?
OS=Windows_NT
LANG や LC_* などはありませんでしたが、
コンパネの「地域と言語のオプション」ではすべて「日本語」になっていました
36:28
09/08/22 23:23:13
>>35
Windows っすか・・・
Windows XP で試したら確かに再現しますね。
> そのカラムのデータが数値として判定された場合が考えられるんだけど、
がどうやらビンゴのようです。
数値判定している箇所の関数 isdigit() が、「西」の文字で真を返していました。
ちょっと俺には Windows のプログラムのことはよくわからないのでお手上げです。
UNIX で実行する環境があるならばそこで実行するのが手っ取り早いと思います。
37:NAME IS NULL
09/08/23 01:53:15
>>35
お前、quoteされているかどうかすら確認できないのかよ…
38:28
09/08/23 10:46:28
>>30 >>35
最初 (>>22) から読み直された方がよろしいかと存じますが、いかがでしょうか?
39:NAME IS NULL
09/08/23 21:31:34
スレリンク(software板:825番)
これ、原因わかる人いる?
40:NAME IS NULL
09/08/24 09:51:33
再現性あるね。なんだろう。
ダンプを読み込ませて作ったDBから作ったダンプと、元のダンプをdiffしても差はなかった。
41:28
09/08/24 13:31:57
>>39
Firefox 固有の問題みたいなので向こうで答えるね。
42:41
09/08/24 13:33:12
あ、名前欄に深い意味は無いです。ミスった。
43:NAME IS NULL
09/08/27 10:25:07
SQLITEのトリガーでストアドもどきのことをやろうと思ってるんだけど、DECLAREがsyntax errorになって通らない。
やりたいのはただ単純にトリガ内で変数を宣言して値を格納したりしたいだけなんだけど、
SQLITEでは何か特殊な書き方でもあるんですか?
44:NAME IS NULL
09/08/27 17:48:52
トリガーの構文
URLリンク(www.3rd-impact.net)
45:NAME IS NULL
09/08/28 00:01:21
しょうがないからcreate tableでテンポラリー作ろうとしても、DDL弾かれちゃうのな。
一体どうしろと。
46:NAME IS NULL
09/08/28 13:54:57
LIKEで"%"検索って出来ないの?
末尾%のレコードとして、
SELECT * FROM テーブル WHERE カラム名 LIKE '%@%' ESCAPE'@';
こんなかんじですか?
SQL error: near "ESCAPE": syntax error
こんなエラーでるんですけど
ちなみにxampp内蔵のSQLiteで、バージョンは2.8.17です。
47:NAME IS NULL
09/08/28 14:12:43
>>46
いや、できるでしょ。親切にエラーメッセージ出てるけど、読まないの?
SELECT * FROM テーブル WHERE カラム名 LIKE '%@%' ESCAPE '@';
48:NAME IS NULL
09/08/31 11:36:22
HTML5のDBのデファクトスタンダードだね
これからがんがん使うぞ
49:NAME IS NULL
09/09/02 16:45:27
助けてー。
SQLITEのトリガで、今まで動いてたトリガがエラーになってるのかどうか知らないけど突然動作しなくなった。
DROP TRIGGERして空のトリガを作ってみるとそっちは動くんだけど、
もう一回エラーが出るトリガを作っても、作成には成功してもトリガの実行には失敗する。
UPDATEに対して引っかけてるトリガなんだけど、そもそもどこでエラーが出てるのかわからん。
とにかくトリガ内で行われている処理が全く反映されない。
元のUPDATE文がロールバックされてしまう。
トリガが吐くエラーってどこでトラップするのよ!助けてママン
50:49
09/09/02 16:55:42
今まで動いていたトリガだと思っていたが、気のせいだったぜ!
一回トリガを変更したときにすでに動かなくなっていたらしい。
で、原因はともかくとして、エラーをトラップするには
元のトリガに対して引っかけてるSQL文のerror_info()を取ってやればトリガのエラーも検出できるみたい。
お騒がせしましたです。
51:NAME IS NULL
09/09/09 21:08:54
バイナリエディタで中見たらデータ読めるんだけど
暗号化するようなオプションってないのかな?
52:NAME IS NULL
09/09/10 01:00:01
>>51
暗号化して積めばよくね?
53:51
09/09/10 16:15:19
>>52
.netでsystem.data.sqlite使ってパスワードかけたらdbまるごと暗号化できた!
54:NAME IS NULL
09/09/11 15:27:08
イ`ヘ
/: :| ヽ
/ : :/ ヽ ___ _,,,:. .-: :´彡フ
_ノ\_∠: : : : : : : : :`: :-: :,:_:/彡 /
( : : : : : : : : : : : : : : `ゝ /
マ r::/: /: : | : : : : : : : : ::\ /
//: /: : : |: : | |: : |: _: : : :ヽ
ジ {/ 7|`\/i: /|:|/|´: : : : :|ヽ
〉 ,‐-‐、`|7 || |_::|,_|: : :|:::|: |
で / r:oヽ` /.:oヽヽ: :|: | :|
{ {o:::::::} {:::::0 }/: :|N
っ | ヾ:::ソ ヾ:::ソ /|: : |
!? ヽ::::ー-.. /ヽ ..ー-::: ヽ::| r--ッ
-tヽ/´|`::::::::::;/ `、 ::::::::::: /: i } >
::∧: : :|: |J \ / /::i: | /_ゝ
. \ヾ: |::|` - ,, ___`-´_ ,, - ´|: : :|:::|
ヽ: |::|\  ̄/ /| |: : :|: |
55:NAME IS NULL
09/09/11 21:27:18
>>54
マジでって前スレで概出だけどな。
614 名前:NAME IS NULL[sage] 投稿日:2009/03/01(日) 07:35:00 ID:???
パスワードでファイルにロックかけたり
暗号化って出来ますか?
617 名前:NAME IS NULL[sage] 投稿日:2009/03/01(日) 17:54:33 ID:???
>>614
URLリンク(d.hatena.ne.jp)
56:NAME IS NULL
09/09/12 18:07:47 iH3YOqOI
2009 Sep 11 (3.6.18)
* Versioning of the SQLite source code has transitioned from CVS to Fossil.
* Query planner enhancements.
* The SQLITE_ENABLE_STAT2 compile-time option causes the ANALYZE command to collect a small histogram of each index, to help SQLite better select among competing range query indices.
* Recursive triggers can be enabled using the PRAGMA recursive_triggers statement.
* Delete triggers fire when rows are removed due to a REPLACE conflict resolution. This feature is only enabled when recursive triggers are enabled.
* Added the SQLITE_OPEN_SHAREDCACHE and SQLITE_OPEN_PRIVATECACHE flags for sqlite3_open_v2() used to override the global shared cache mode settings for individual database connections.
* Added improved version identification features: C-Preprocessor macro SQLITE_SOURCE_ID, C/C++ interface sqlite3_sourceid(), and SQL function sqlite_source_id().
* Obscure bug fix on triggers ([efc02f9779]).
。
57:NAME IS NULL
09/09/16 23:51:25
3.6.18 でオプティマイザが相当賢くなったな
58:NAME IS NULL
09/09/17 09:23:44
最新版のSQLiteってまだPEAR::DB_DataObjectやPEAR::Authは使えないのですか?
もし出来ないのならばやっぱSQLite2を使用しないといけないのでしょうか?
59:NAME IS NULL
09/09/17 10:12:12
DataObjects_Book: find:
DataObjects_Book: CONNECT: Checking for database specific ini ('') : database_ in options
DataObjects_Book: CONNECT: NEW CONNECTION TP DATABASE :
DataObjects_Book: CONNECT: sqlite://localhost/C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/samples/chap6/chap6.sqlite 38c4cf3d8597fe519549815f422b1075
DataObjects_Book: CONNECT: a:1:{s:32:"38c4cf3d8597fe519549815f422b1075";O:9:"
DB_sqlite":7:{s:8:"dbsyntax";s:6:"sqlite";s:3:"dsn";a:9:s:7:"phptype";s:6:"sqlite";s:8:"dbsyntax";s:6:"sqlite";s:8:"
username";b:0;s:8:"password";b:0;s:8:"protocol";s:3:"tcp";s:8:"hostspec";s:9:"localhost";s:4:"port";b:0;s:6:"socket";b:0;s:8:"
database";s:87:"C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/samples/chap6/chap6.sqlite";}s:8:"
features";a:7:{s:5:"limit";s:5:"alter";s:8:"new_link";b:0;s:7:"numrows";b:1;s:8:"pconnect";b:1;s:7:"prepare";b:0;s:3:"ssl";b:0;s:12:"
transactions";b:0;}s:9:"fetchmode";i:1;s:22:"fetchmode_object_class";s:8:"stdClass";s:7:"options";a:8:
{s:16:"result_buffering";i:500;s:10:"persistent";b:0;s:3:"ssl";b:0;s:5:"debug";i:0;s:14:"seqname_format";s:6:"%s_seq";s:8:"autofree";b:0;s:11:"portability";i:0;s:8:"optimize";s:11:"performance";}s:13:"was_connected";b:1;}}
DataObjects_Book: databaseStructure: Missing ini file: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/samples/chap6/chap6.sqlite.ini
DataObjects_Book: databaseStructure: Cant find database schema: chap6.sqlite/book
in links file data: Array
(
)
DataObjects_Book: ERROR: Unable to load schema for database and table (turn debugging up to 5 for full error message)
DB_DataObject Error: Unable to load schema for database and table (turn debugging up to 5 for full error message)
こういうエラーが出たのですが、自分にはどこを直せばいいのか分かりません
どなたか直すべき点を指摘していただけたらと思います
60:NAME IS NULL
09/09/28 21:02:40
FireFox 3.5 はページ履歴の管理に SQLite 使ってるのか?
何日も起動しっぱなしでガンガン使った後に PC 終了しようとすると
ガリガリガリガリ 30 分経っても終わんねぇ。アフォかと。
61:NAME IS NULL
09/09/28 21:09:56
ウィルスでも仕込まれたんじゃないの
62:NAME IS NULL
09/09/29 02:16:10
それは SQLite のせいなのか?
63:NAME IS NULL
09/09/29 21:39:53
違うw
64:NAME IS NULL
09/09/30 00:58:41
>>60
前提が憶測な上に、起きている現象と SQLite の動作の因果関係が
何ら提示されてない電波っぷりがイカスw
死ね。氏ねじゃなくて死ね。
65:NAME IS NULL
09/09/30 02:53:40
Firefox関連で明らかになったSQLiteのまずいところって
URLリンク(www.atmarkit.co.jp) にある
fdatasync()を使うべきところを fsync()使っていたことぐらいで、あとは
Firefox側の問題だ罠。
ちなみに、FirefoxではDBのreindexすらしないので、
SQLite Optimizer URLリンク(miyafx.blogspot.com)
というアドオンを使ってreindexとvacuumeをすると気持ちよくなる。
66:NAME IS NULL
09/09/30 22:57:31
そんなことで死なんならんのやったら地球の総人口1万人ぐらいになるやろね。
67:NAME IS NULL
09/10/01 03:08:32
本人が馬鹿であればあるほど、周囲の人間を馬鹿と認識しやすいってどっかのおっさんが言ってたわ
68:NAME IS NULL
09/10/01 21:39:10
俺は馬鹿なんだが、周囲の人間はみんな馬鹿じゃないぞ。どういうことだ?
69:NAME IS NULL
09/10/01 23:42:04
本人は自分をバカと思っていないこと前提。
70:NAME IS NULL
09/10/02 02:38:37
自分の馬鹿さを自覚できるのは相当賢い部類
71:NAME IS NULL
09/10/02 08:22:13
まず馬鹿の基準を作らないと、どちらに分類されるか分からないな。
72:NAME IS NULL
09/10/03 00:40:39 uaCgXGJD
>>65
PRAGMAで指定できる。
ページ遷移ごとに2.5MB書き込むブラウザもかなり変だが、2.5MB程度書き込む
だけで数分固まるOSもかなり変。
SQLiteへ責任転嫁してくるのはDRHがOSSと一緒にしてほしくないって言ったのが
原因だろか。
MSのせいにしとけばいいのに。
73:NAME IS NULL
09/10/03 12:26:21
>>72
後半を日本語で。
74:NAME IS NULL
09/10/03 16:51:18
>>73
DRHは人名です
75:NAME IS NULL
09/10/03 20:04:11
>>74
いやいやいや、それはわかっとるちうねん。
76:NAME IS NULL
09/10/04 20:41:10
なぜSQLiteを使うの?
77:NAME IS NULL
09/10/04 21:43:52
そこに SQLite があるから。
というよりむしろ、そこに SQLite しかなかったから。
78:NAME IS NULL
09/10/04 22:41:58
ほかに選択肢があれば使ってみたいけど
フットプリントが小さくてタダで使えるDBライブラリって
あんまり無いよね
79:NAME IS NULL
09/10/04 23:39:10
定番のBerkleyDBがあるやん。
80:NAME IS NULL
09/10/05 08:17:00
それでいい場合もあるけど、SQL使いたいことも多い。
81:NAME IS NULL
09/10/06 02:14:50
GUIの管理ツールを使いたいが多すぎて
どれを使ったらいいのかわからない
URLリンク(www.sqlite.org)
82:NAME IS NULL
09/10/06 03:20:22
調べる気も無いカスはtkでも使ってろ
83:NAME IS NULL
09/10/06 22:37:50
>>82
ありがとう。愛してる
84:NAME IS NULL
09/10/06 23:41:10
>>82
ぼくも調べる気も無いカスです
日本語のGUI管理ツール教えて
85:NAME IS NULL
09/10/07 06:16:02
そういう塵蟲はこれでも使ってろ
URLリンク(www.eonet.ne.jp)
86:NAME IS NULL
09/10/07 19:04:43
>>85
ありが㌧。。。大好き♥
sqlitecc3j.exeは窓から捨てるね
87:NAME IS NULL
09/10/09 15:13:02
俺様メモ
select datetime(unix_time/86400.0 + 2440587.875);
select strftime('%Y年%m月%d日 %H時%M分%S秒',unix_time/86400.0+2440587.875);
88:NAME IS NULL
09/10/09 15:16:39
追加
select date(unix_time/86400.0 + 2440587.875);
select time(unix_time/86400.0 + 2440587.875);
89:NAME IS NULL
09/10/09 20:40:36
select datetime(unix_time,'unixepoch');?
90:NAME IS NULL
09/10/09 23:07:29
select datetime('now');
91:87
09/10/10 07:20:19
>>89
こうすりゃいいのか! ありがトン
select datetime(unix_time, 'unixepoch', 'localtime');
92:NAME IS NULL
09/10/10 13:30:24
select datetime('now','localtime');
93:NAME IS NULL
09/10/15 23:18:15 d2PUdHCm
SQLite Release 3.6.19 On 2009 Oct 14 (3.6.19)
Changes associated with this release include the following:
* Added support for foreign key constraints. Foreign key constraints are disabled by default. Use the foreign_keys pragma to turn them on.
* Generalized the IS and IS NOT operators to take arbitrary expressions on their right-hand side.
* The TCL Interface has been enhanced to use the Non-Recursive Engine (NRE) interface to the TCL interpreter when linked against TCL 8.6 or later.
* Fix a bug introduced in 3.6.18 that can lead to a segfault when an attempt is made to write on a read-only database.
94:NAME IS NULL
09/10/16 00:25:36
> * Added support for foreign key constraints.
正直永遠にサポートしないつもりかと思ってた。
でも欲しかったから来て嬉しい。
95:NAME IS NULL
09/10/16 20:32:00 /wq/v8jR
初歩的な質問なんだけどテーブル作成でPK設定したら自動的にIndexは張られるの?
やっぱり後でindexを作らないと駄目?
96:NAME IS NULL
09/10/23 09:22:01
INSERTとかするときって、テーブルロックされるんだっけ?
それともデータベース全体ロック?
97:NAME IS NULL
09/10/23 10:53:12
>>96
URLリンク(www.3rd-impact.net)
98:NAME IS NULL
09/10/23 10:53:56
あ、あと
URLリンク(www.3rd-impact.net)
99:NAME IS NULL
09/10/27 11:22:47
PHP+SQLite を用いたダウンロードカウンター「X-File Access Counter」
URLリンク(works.xworks.org)
これの非公開バージョンb090909
URLリンク(kissho.xii.jp)
・DBにSQLiteを用いているのが特徴。
・ベータ版のため、簡単に使える状態では無い。
誰か、使用方法、教えて下さい・・・。
100:NAME IS NULL
09/10/27 13:03:02
>>99
xfac.phpに全部書いてあったよ
101:NAME IS NULL
09/10/28 21:52:27
CSVファイルとかをimportするとき、INTEGER PRIMARY KEYのカラムを
自動で入れてほしいんだけど どうしたらいいですか?
102:NAME IS NULL
09/11/05 16:57:40
SQLiteって日本語の全文検索ってできる?
Firefox3とかfts3モジュールとかいってるサイトを見つけたけど
詳しい解説がなくて何のことやらさっぱり
103:NAME IS NULL
09/11/06 00:09:28
>>102
そういう関数を作って呼んだ方が速い
104:NAME IS NULL
09/11/08 01:59:03 JaE5+7v3
2009 Nov 4 (3.6.20)
* Optimizer enhancement: prepared statements are automatically re-compiled when a binding on the RHS of a LIKE operator changes or when any range constraint changes under SQLITE_ENABLE_STAT2.
* Various minor bug fixes and documentation enhancements.
105:NAME IS NULL
09/11/15 14:35:57
SQLiteManagerがPHP5.3にあげたら使えなくなってしまいましたので
・EUC、SJIS、UTF-8が扱える。
・SQLite2系とSQLite3系が扱える。
GUI管理ツールってSQLiteManager意外にいいの無いですか?
106:NAME IS NULL
09/11/16 19:12:04
無い
107:NAME IS NULL
09/11/16 22:37:23
>>106
無いか。
とりあえず
.htaccessに
php_flag log_errors On
php_value error_log "./log.txt"
php_flag display_errors off
を追加して無理矢理動かすことにしたけど
警告エラーのたびに修正がめんどくさいので
SQLite2は問題なく使えるけどSQLite3のデータベースの追加(新規も既存のデータベースファイルの追加)ができなくなった。
環境としたらXAMPPだが古いの入れ直せば良いだけだけど
開発環境は最新状態にしてテスト環境CentOSで下のバージョンでも問題ないかテストしたいんだよな。
108:NAME IS NULL
09/11/17 00:12:54
>>105
tksqliteを知らんのか
109:NAME IS NULL
09/11/18 11:22:23 XgJDmvNS
Blob型はファイルサイズの制限はありますか
また、Blob型で音楽 動画などをバイナリで保存できますか
110:NAME IS NULL
09/11/18 13:37:22
ファイルシステム依存
111:NAME IS NULL
09/11/18 14:20:03
>>109
まあいいからまずはここ見れ
URLリンク(www.sqlite.org)
112:NAME IS NULL
09/11/21 21:29:08
>>111
読めねーよアホ
113:NAME IS NULL
09/11/21 22:21:05
>>111
じゃあ使うなアホ
114:NAME IS NULL
09/11/21 22:46:08
>>113
アンカー間違えてね?
115:NAME IS NULL
09/11/21 22:49:38
>sqlitedll-3_6_20.zip
> The only external dependency is MSVCRT.DLL.
MSVCRTってシングルスレッドとマルチスレッド用で分かれてた気がするんだが
これはどっちをインクルードしてるんだ?
116:NAME IS NULL
09/11/22 22:02:25
msvcrt.dllはマルチスレッドしかない
117:NAME IS NULL
09/11/23 17:12:29
>>116
えっ
118:NAME IS NULL
09/11/23 22:52:35
シングルスレッドとマルチスレッドがあるのは
スタティックリンク版のlibcだけだから、>>116 で正しいのでは?
119:115
09/11/24 00:02:58
なるほど、libは分かれてるけどdllはマルチスレッドのみということですね。
考えてみればdllが2つあるとは考えられにくいですよね・・・・・・
ならVC++のプロジェクト設定はマルチスレッド使用のほうがいいのでしょうか?
120:115
09/11/24 00:05:19
いやいやいやいや
sqliteがDLLをロードしてるならアプリをスタティックリンクにする意味は無いですよね・・・
121:NAME IS NULL
09/11/24 03:27:15
いまどきVCの設定でシングルスレッドなんて使う奴は真性の基地外だろ
122:NAME IS NULL
09/11/26 17:50:02
質問です。sqliteでpostgreに存在するGENERATE_SERIES()のような機能が欲しいため、以下のようなクエリを書きました。
SELECT
CAST(桁1.番号||桁2.番号||桁3.番号 as INTEGER)as 番号
FROM
(SELECT '0' as 番号
UNION SELECT '1' as 番号
UNION SELECT '2' as 番号
UNION SELECT '3' as 番号
UNION SELECT '4' as 番号
UNION SELECT '5' as 番号
UNION SELECT '6' as 番号
UNION SELECT '7' as 番号
UNION SELECT '8' as 番号
UNION SELECT '9' as 番号
)as 桁1,
(SELECT '0' as 番号
UNION SELECT '1' as 番号
UNION SELECT '2' as 番号
UNION SELECT '3' as 番号
UNION SELECT '4' as 番号
UNION SELECT '5' as 番号
UNION SELECT '6' as 番号
UNION SELECT '7' as 番号
UNION SELECT '8' as 番号
UNION SELECT '9' as 番号 )as 桁2,
(SELECT '0' as 番号
UNION SELECT '1' as 番号
UNION SELECT '2' as 番号
UNION SELECT '3' as 番号
UNION SELECT '4' as 番号
UNION SELECT '5' as 番号
UNION SELECT '6' as 番号
UNION SELECT '7' as 番号
UNION SELECT '8' as 番号
UNION SELECT '9' as 番号 )as 桁3
ORDER BY 番号 ASC
目的には適っているのですが、流石に冗長過ぎると思うので、もうちょっとスマートになりゃしませんでしょうか。
123:NAME IS NULL
09/11/29 20:44:17
>>72
> ページ遷移ごとに2.5MB書き込むブラウザもかなり変だが、2.5MB程度書き込む
> だけで数分固まるOSもかなり変。
固まるのはFx。書き込まれるまでUIを止めてしまう。
124:NAME IS NULL
09/11/29 21:24:20 UjTGwFXV
エラーチェックみんなしてる?
sqlite3_prepare()とかsqlite3_bind_int()とか
デバッグ中はエラーチェック大事だけどさ、すごい面倒なんだけど
ソースくそ読みづらくなるし
125:NAME IS NULL
09/11/30 03:27:39
>>123
システムコールが返ってこないから固まるんだろ。
結局OSが悪いだろ。
たかだか2.5MB書き込むだけで数分固まるっておかしいだろ。
126:NAME IS NULL
09/11/30 09:38:17
>99 名前:NAME IS NULL[sage] 投稿日:2009/10/27(火) 11:22:47 ID:???
>PHP+SQLite を用いたダウンロードカウンター「X-File Access Counter」
>URLリンク(works.xworks.org)
>
>これの非公開バージョンb090909
>URLリンク(kissho.xii.jp)
>
>・DBにSQLiteを用いているのが特徴。
>・ベータ版のため、簡単に使える状態では無い。
>
>誰か、使用方法、教えて下さい・・・。
これ、使えている人いる?
機能的に気に入ったので試してみたけど、動きそうで動かない。
127:NAME IS NULL
09/11/30 14:52:58
どう動きそうで動かないんだよ
エラーが出てるならそこまで書けクズ
128:NAME IS NULL
09/12/01 01:07:53
A TEXT NOT NULL
B TEXT
UNIQUE(A, B)
この場合って、B=NULLでAが同じ値のデータって許されるの?
っていうかINSERTできちゃったんだけど?
129:NAME IS NULL
09/12/01 01:29:28
>>128
null = null は真か偽か
130:NAME IS NULL
09/12/01 01:35:25
NULL == NULL はNULLですよね。
UNIQUE(A, B) <=> A==A AND B==B <=> TRUE AND NULL <=> NULL
ということでINSERTできてしまうのですか・・・
B=NULLでAが同じ値をINSERT出来なくする方法はあるのでしょうか?
131:NAME IS NULL
09/12/01 02:43:26
uniqueキーにnullを許すのがそもそも間違いなんじゃないの?
132:NAME IS NULL
09/12/01 07:12:24
UNIQUE 制約があっても複数の NULL を挿入できるのは SQL標準で保証されている。
NULL は UNKNOWN と読み替えたほうが良い。複数の未知の値が一致するとは限らないでしょ?
条件付きインデックスとか式インデックスが使えれば対処方法もあるんだけど、
SQLite だと B にほかで使わない適当なNULL以外の値を入れるくらいしかないのでは。
133:NAME IS NULL
09/12/01 10:07:15
>>130
NULL==NULLって成立すんの!?
知らんかった
134:NAME IS NULL
09/12/01 21:01:30
成立ってなんだよ?
NULL=NULL → NULL。true でも false でもない。
たいていは IS NULL との間違いだがね。
135:NAME IS NULL
09/12/01 21:08:34
>>134
>NULL == NULL はTRUEですよね
って空耳しちゃったんだよ!
136:NAME IS NULL
09/12/05 21:05:02
sqlite3でupdateとかDB更新すると高い確率でjournalというファイルができてDB本体に書き込まれていないのですがどんな原因が考えられるでしょうか?何回かに1回は正常に更新できてjournalもできません。
137:NAME IS NULL
09/12/05 23:31:11
>>136
DBに書き込めないって、何を持って書き込めないって言っているの?
sqlite上からSELECTした結果が出ていれば、DB的には書き込めているのだけど?
journalファイルだけしか更新されていないよんという話なら、VACUUMしてみ。
138:NAME IS NULL
09/12/06 01:06:10
journalファイルだけできていて本体のDBはupdateされてないという状態です。selectしても更新前の値のままです。
なぜか知らないけどjournalファイルをエクスプローラ上で削除するとDBが更新されてる。
何回かやってたらjournalファイルができずに普通に更新されるようになったりとわけがわからないです。
139:NAME IS NULL
09/12/06 01:21:34
基本的なことかもしれませんが、journalファイルができずに更新できる場合とjournalファイルができてしまう場合はどのように違うのでしょうか?
journalファイルができて残ってしまうということは正常にdb書き込みができていないという理解で正しいでしょうか?
sqliteはpythonからたたいているのですが
db open -> update -> commit -> db close
という順番で、commitは呼び出しています。
140:NAME IS NULL
09/12/06 02:08:55
beginしてないがな
あとupdateとcommitでエラーが発生していないのは確かか?
141:NAME IS NULL
09/12/06 05:45:42
馬鹿は使うな
142:NAME IS NULL
09/12/06 09:06:51
>>140
コメントありがとうございます。
pythonのsqlite3モジュールではconnectionオブジェクトがトランザクションを管理しているのでbeginは呼び出す必要がないと思います(実際そういうメソッドもないです)。
ただ、auto commit modeにしてないときはDB書き込み時だけcommit()を呼ぶのが決まりだそうです。
参考:URLリンク(xania.org)
非常に短いコードですが下でも問題の現象が再現します。journalができて書き込みできてない場合とjournalができず正常に書き込める場合があります。
もしご存知ないようでしたらpython特有の問題かもしれないのでpythonスレ行きます・・・
import sqlite3
db = sqlite3.connect("test.db", isolation_level=None)
db.execute("CREATE TABLE test (id INTEGER, data VARCHAR(10));")
db.commit()
db.execute("INSERT INTO test VALUES (1, 'hello');")
db.execute("INSERT INTO test VALUES (2, 'bye');")
db.commit()
db.close()
143:NAME IS NULL
09/12/06 09:24:02
Pytonからではなく、sqliteコマンド使った際はどうなるの?
144:NAME IS NULL
09/12/06 09:38:02
>>143
sqlite3.exe test.db
CREATE TABLE test (id INTEGER, data VARCHAR(10));
INSERT INTO test VALUES (1, 'hello');
INSERT INTO test VALUES (2, 'bye');
まったく問題なく書き込めてます。
ためしに別のマシンで上のpythonスクリプトを走らせてみましたがまったく問題なく書き込めました。
しばらく前にWindows起動時にchkdskが走ってたことがあったからHDDが破損しているのかも。
ちょっとスキャンディスクやってみます。
145:NAME IS NULL
09/12/06 16:08:47
一応ご報告まで
あれからプロジェクトのフォルダを別のパスへ移動したり別のドライブへ移動したりしましたがその場合はjournalができずに正常に書き込めました。
やはりハードディスクに何か原因があるようです。
コメントくださった方ありがとうございました。
146:NAME IS NULL
09/12/06 18:12:14
いいえ、どういたしまして。
147:NAME IS NULL
09/12/06 18:19:25
いいえ、こちらこそ。
148:NAME IS NULL
09/12/09 21:14:21 +arAhXjQ
SQLite Release 3.6.21 On 2009 Dec 07 (3.6.21)
Changes associated with this release include the following:
* The SQL output resulting from sqlite3_trace() is now modified to include the values of bound parameters.
* Performance optimizations targetting a specific use case from a single high-profile user of SQLite.
A 12% reduction in the number of CPU operations is achieved (as measured by valgrind).
Actual performance improvements in practice may vary depending on workload. Changes include:
o The ifnull() and coalesce() SQL functions are now implemented using in-line VDBE code
rather than calling external functions,
so that unused arguments need never be evaluated.
o The substr() SQL function does not bother to measure the length its entire input string if it is only computing a prefix
o Unnecessary OP_IsNull, OP_Affinity, and OP_MustBeInt VDBE opcodes are suppressed
o Various code refactorizations for performance
* The FTS3 extension has undergone a major rework and cleanup.
New FTS3 documentation is now available.
* The SQLITE_SECURE_DELETE compile-time option fixed to make sure that content is deleted even
when the truncate optimization applies.
* Improvements to "dot-command" handling in the Command Line Interface.
* Other minor bug fixes and documentation enhancements.
149:NAME IS NULL
09/12/11 16:22:16
System.Data.SQLite 1.0.65.0 を使用しています。
PRIMARY KEY (id, name, comment)
という制約を CREATE TABLE 時に指定したのですが
id のレコードが重複しただけでエラーになります。
id, name, comment の3つすべてが重複した時点でエラーになる
記述方法はあるのでしょうか?
150:149
09/12/11 16:35:55
すいません気のせいでした。
151:NAME IS NULL
09/12/11 21:44:26 hA6Gai8K
pupsqliteで作成したBOOLEAN型のtestというキーがあります。
NULL OKのキーです。
以下のSQLを実行すると構文エラーが発生します。
select * from test_db where delete != ''
TEXT型に同じことを実行した場合はエラーとなりません。
どこが間違えているのでしょうか?
152:NAME IS NULL
09/12/12 09:27:44
deleteなんてカラム名がやばいンじゃね?
153:NAME IS NULL
09/12/12 09:37:37
select * from "test_db" where "delete" != ''
154:NAME IS NULL
09/12/16 12:52:24 Kj2cXgn5
sqlite3_exec() で、".read hoge.sql"みたいなのが使えないけど
どうすれば使えるようになるかな
155:NAME IS NULL
09/12/16 14:56:52
.read 'hoge.sql'
156:NAME IS NULL
09/12/17 11:35:41
sqlite3_execってSQLいてコマンドもつかえるの?
157:NAME IS NULL
09/12/17 14:48:04
Sqlite 2.8.17なんだけど、AUTOINCREMENTって使えないの?
INTEGER PRIMARY KEY AUTOINCREMENTだと
SQL error: near "AUTOINCREMENT": syntax error
って怒られるんだけど
INTEGER PRIMARY KEY で同じIDが再利用されないようにするには論理削除するしかないってことっすかね?
158:NAME IS NULL
09/12/17 15:00:32
INTEGER PRIMARY KEY でオートインクリメントになるよ
そういうことでなくて?
159:NAME IS NULL
09/12/17 15:03:43
あぁ、ゴメンなさい。
判りにくいですね。
オートインクリメントでINSERTした最新のレコードをDELETEして、
またINSERTすると、同じ番号になっちゃうので、それを避けたいということです。
160:NAME IS NULL
09/12/17 15:20:28
論理削除って削除フラグ付けるって話か
オートインクリメントだけの別テーブル作ってそっちからキーもらってくるとか
161:NAME IS NULL
09/12/18 15:47:33
>>155
使えないじゃねーか。
162:NAME IS NULL
09/12/18 16:38:33
すまん、sqlite3.exeと間違えた。
163:NAME IS NULL
09/12/18 19:36:09
たしかに
164:NAME IS NULL
09/12/19 08:03:04
このソフト最近知りました。
ところで皆さんはSQLite用のDAO、DTOとかレコードセット(データテーブル)クラスなどは自作ですか?
私も作りたいんですが何か参考になるようなオープンソースなどのソフトは無いでしょうか?
165:NAME IS NULL
09/12/19 09:41:35
ぐぐって探した
166:NAME IS NULL
09/12/19 10:14:42
>>164
一通りの言語でDAO/DTO関連の自動生成整ってると思うけど・・・
「IDE SQLite 好きなO/Rマッピングツール」で検索かければ?
167:NAME IS NULL
09/12/21 11:00:18
SELECT * FROM A;
ってデータベースロックするの?
168:NAME IS NULL
10/01/06 22:33:09 awKYQKBZ
最大同時接続数なんチョン?
169:NAME IS NULL
10/01/07 00:57:27
>>168
同時は無いな。ulimitの上限いっぱいまでいけるだろ。1万くらいだっけ?
170:NAME IS NULL
10/01/07 15:21:14
>>167
フロントエンドのコマンドプロンプトからだとロックしてるっぽいなぁ
SELECTだけなら大丈夫だろうと安易に実行してたら、
裏で動いてるINSERTとかが失敗してることが偶にある
とりあえず.timeoutとかで逃げてるけど
171:NAME IS NULL
10/01/08 00:57:37 VM6S2FNA
SQLite Release 3.6.22 On 2010 Jan 06 (3.6.22)
Changes associated with this release include the following:
* Fix bugs that can (rarely) lead to incorrect query results
when the CAST or OR operators are used in the WHERE clause of a query.
* Continuing enhancements and improvements to FTS3.
* Other miscellanous bug fixes.
172:NAME IS NULL
10/01/09 20:32:50
次のリリースでsqlite3.dllが500KB超えそうだな
173:NAME IS NULL
10/01/09 20:54:34
500KBだろうが1MBだろうがいくつでも構わない
174:VIPPPPP
10/01/09 23:05:15 s0u/5x2j
□□□□□□□□□□□□□□□□□□□□□□□□□□
□■■■■■□□□□□■■■□□□□■□□□□□■□
□■□□□□■□□□■□□□■□□□■□□□□□■□
□■□□□□■□□■□□□□□■□□□■□□□■□□
□■□□□□■□□■□□□□□■□□□□■□■□□□
□■■■■■□□□■□□□□□■□□□□□■□□□□
□■□□□□■□□■□□□□□■□□□□□■□□□□
□■□□□□■□□■□□□□□■□□□□■□■□□□
□■□□□□■□□■□□□□□■□□□■□□□■□□
□■□□□□■□□□■□□□■□□□■□□□□□■□
□■■■■■□□□□□■■■□□□□■□□□□□■□
□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□
175:NAME IS NULL
10/01/15 07:45:37
他のテーブルのデータで更新したいのですが
update a
set
item1=(select b.item1 from b where a.key=b.key),
item2=(select b.item2 from b where a.key=b.key)
これをもっとスマートにできないでしょうか?
oracleだと
update a
set
(item1, item2)=(select b.item1,b.item2 from b where a.key=b.key)
こんな感じになると思うんですけど
176:NAME IS NULL
10/01/16 00:14:34
>>175
SQLite Query Language: UPDATE
URLリンク(www.sqlite.org)
177:NAME IS NULL
10/01/16 11:21:22
SQLiteとOracleを比べちゃう男の人って・・・
178:NAME IS NULL
10/01/17 07:58:19
突然何言ってんだこいつと思ったら>>175にカッ飛んだレスしてたんだな
179:NAME IS NULL
10/01/17 10:18:02
SQLiteのデータベースを大量に作成する運用って、現実的でしょうか?
Webサービスでユーザーごとにデータベースファイルを作成するようなケースです。
180:NAME IS NULL
10/01/17 18:26:25
へんてこりんな設計だな。好きにしたら。。。
181:NAME IS NULL
10/01/17 19:36:34
>>179
それぞれのDB間にほぼ関連性が無いのなら、大いに現実的な実装でしょう。
182:NAME IS NULL
10/01/17 21:11:31
>>179
むしろそういう実装にすべき
SQLiteはデータベースロックをしちゃうんだから、ほかのユーザがロック中でも
影響無くアクセスが出来るようにDBファイルをきちんとわける
183:NAME IS NULL
10/01/17 22:16:20
Webサービスで使うならばMySQLとかの良くね?
184:NAME IS NULL
10/01/18 01:57:25
(1) SELECT してレコードの存在チェック(必要に応じて行Lockも行う)
(2) レコードが無ければ INSERT
(3) レコードがあれば UPDATE
じゃなく一文でやるような方法はsqliteにありますか?(mysqlでいうとreplaceのような)
または、前述の方法は妥当ですか?
185:NAME IS NULL
10/01/18 02:00:14
それともう一つ
とりあえずinsertする→unique制約で怒られる→updateする
とうのもあるんですがこれもありですか?
186:NAME IS NULL
10/01/18 09:57:17
>>184
187:NAME IS NULL
10/01/18 09:58:40
途中で書いちゃったぜ
>>184
replace into はsqliteにもあるよ
188:NAME IS NULL
10/01/19 13:56:13
>>187
ありがとう
189:NAME IS NULL
10/01/19 21:27:11
System.Data.SQLite 1.0.65.0 を使ってCSVファイルをインポートしたいんですが、可能です?
一行ずつinsertしかないですかね?
190:NAME IS NULL
10/01/21 10:11:40
哲学的なことに聞こえるかもしれないけど
可能です?とか聞いてくる人には不可能。
191:NAME IS NULL
10/01/26 19:03:04
REPLACE INTO でレコードを更新した時、更新後のレコードのrowidは
last_insert_rowid()で得られますが、更新前のrowidを取得する方法はありますか?
REPLACEする前にSELECTで取得するしかないでしょうか?
192:NAME IS NULL
10/01/27 16:18:21
>>191
rowidって更新されるの?しらんかったわ
193:NAME IS NULL
10/01/31 03:28:33
rowidが更新されるって話は誰もしてないと思うんだが
194:NAME IS NULL
10/01/31 04:34:44
>>193
更新されることが前提の花氏でしょ?
更新されないならREPLACE後に取ればよくね?
195:NAME IS NULL
10/01/31 10:14:25
そらそうだ
196:NAME IS NULL
10/01/31 12:09:51
REPLACEに失敗した時に取りたいとか
にしても書き方が悪いが
197:NAME IS NULL
10/01/31 17:22:12
System.Data.SQLite 1.0.65.0 を使用しています。
C#のプログラム上からDBファイルを File.Deleteで消そうとすると
まだアクセスしてますって怒鳴られます。
プログラム上から削除する方法やコマンドなどありますか?
198:NAME IS NULL
10/01/31 17:24:19
DBをcloseしてから削除
199:NAME IS NULL
10/01/31 17:42:24
>>198
SQLiteConnection を new して
すぐ Close してから
File.Delete したら消えました。
いつも SQLiteConnection のインスタンスを using でくくってるので
自動的に Close してくれてるものだとばかり・・
ありがとうございました。
200:NAME IS NULL
10/02/01 21:38:58
PupSQLite使ってる方、
「フィールドの編集」画面の
インデックスのチェック欄と実際の設定ちゃんと合ってます?
何か設定してあるのにチェックが入ってないですけど・・・。
ver.1.8.7です。
201:NAME IS NULL
10/02/07 18:55:16
INSERT って一行ずつしか無理なんだな
202:NAME IS NULL
10/02/08 01:13:36
うん
203:NAME IS NULL
10/02/09 00:56:39
>>201
INSERT INTO People(Name, Age) SELECT '田中', 20 UNION ALL SELECT '佐藤', 22 UNION ALL SELECT '山田', 21;
204:NAME IS NULL
10/02/09 03:13:57
テーブルとかid?の名前って半角の方が無難?
205:NAME IS NULL
10/02/09 22:20:18
>>204
経験的に半角英数字記号(_とか)を使うことが無難
206:NAME IS NULL
10/02/10 02:00:31
SQLite的には関係ねえが、糞みたいなラッパーとか糞みたいな環境から
使うときに問題になる可能性があるだけだ。
207:NAME IS NULL
10/02/10 02:45:22
>>205-206
やっぱそうなんだね、ありがと
208:NAME IS NULL
10/02/10 04:09:30
あと、当然ながらコードには気を付ける必要あり。
209:NAME IS NULL
10/02/11 19:42:58
なんかUPDATEに失敗するときがたくさんあるんだけど
気のせい?
210:NAME IS NULL
10/02/11 21:11:42
ああロックなんとかってエラーがでてたわ
select でループ中にUPDATE しちゃいけないのねorz
211:NAME IS NULL
10/02/11 21:23:47
そのスキルでよく使えたな
212:NAME IS NULL
10/02/11 21:29:42
コピペだもん
213:NAME IS NULL
10/02/16 10:27:31
もうすぐSQiLLってのがでるぞ
214:NAME IS NULL
10/02/16 19:06:30
DSかっ
215:NAME IS NULL
10/02/17 10:06:57 TLiI1xWz
SQLiteManagerで、SQLite3のDBにアクセスしたときに次のエラー
出る人います?
Fatal error: Cannot redeclare class sqlite3 in
/hoge/hoge/SQLiteManager-1.2.3/include/sqlite3.class.php on line 311
SQLite2のDBだと普通に表示される。例のDeprecatedエラーじゃないから
対処方法を捜索中です。
使用環境:
OS:FreeBSD7.1
SQLiteManagerへようこそ バージョン 1.2.3
SQLite バージョン 2.8.17 - 3.6.19 / PHP バージョン 5.3.1
Cannot redeclareでぐぐってみると、インクルードの再定義によるエラーだとか。
includeを探してinclude_onceにするフラグ?
216:215
10/02/17 10:38:07
あげてスマンかった。
ちょっとXDebugでCall Stackをちぇっくしてみた。
1 0.0007 388352 {main}( ) ../main.php:0
2 0.0096 999752 SQLiteDbConnect->SQLiteDbConnect( ) ../main.php:90
3 0.0097 999780 SQLiteAutoConnect->sqliteGetInstance( ) ../SQLiteDbConnect.class.php:78
main.phpのインクルードは、
include_once "include/defined.inc.php";
include_once INCLUDE_LIB."config.inc.php";
defined.inc.phpのインクルードは、
include_once "./include/user_defined.inc.php";
config.inc.phpのインクルードは、
include_once INCLUDE_LIB."grab_global.php";
include_once INCLUDE_LIB."SQLite.i18n.php";
include_once INCLUDE_LIB."SQLiteAutoConnect.class.php";
include_once INCLUDE_LIB."common.lib.php";
ふえるわかめ並みにわけわかめ。
217:NAME IS NULL
10/02/17 10:54:18
>>215
DBのテーブル名とかカラム名にmysqlの予約語が
混じってんじゃないの?
218:NAME IS NULL
10/02/17 10:55:07
mysqlの予約語じゃねーよphpの予約語だよ
219:215
10/02/17 16:34:57
>>217>>218
使っていない。というか、sqlite3で新たに作ろうとするとエラーは出ないが
データベースが作られない…orz
うごいてないっぽい・・・・(;~;)
220:215
10/02/17 16:41:52
追加で言うと、PHP5.2.9では問題なく動いていた。
その時に登録されたDBを開こうとするとこのエラーになる・・・。
221:NAME IS NULL
10/02/18 22:32:00 BE:1271151667-2BP(2)
データの中身に、ピリオド使えたっけ?
出勤管理するんだけど、入力にコロンを使うと年寄が各自で入力なんで無理っぽい。
9:35出勤なら9..35とテンキー入力させて、sqlからデータを吐かせてエクセルで加工しようと思ってる。
だからピリオドは通るのかな?と思ったんだけど、どう?
通らない場合、なにかテンキーにある、通るキーで、エクセルが計算しちゃわないキー教えてほしい
222:NAME IS NULL
10/02/18 22:35:39
>>221
データベースなんだから、当然データの中身は何でもあり
223:NAME IS NULL
10/02/19 01:56:22
>>221
エクセル使うなら現在時刻入力ボタンでも作っとけ
224:NAME IS NULL
10/02/19 10:34:48 yDgPgBKP
C++でアプリを作成しています。
ローカルデータの管理にsqlliteを使用しようとしていろいろ勉強しています。
データのデータの書き込み読込み、クエリ実行など基本的なことはできました。
基礎的な質問かも知れませんが、テーブルの行数をカウントしたいのですがどのようにすればよいでしょうか?
select文で指定テーブルを、sqlite3_step()で1行ずつカウントするのは可能なのですが、
どうもスマート方法に思えません。 よい関数などありましたらご教授おねがいしたいです。
225:NAME IS NULL
10/02/19 10:47:22
SELECT COUNT(*) FROM foo WHERE xxx=yyy;
はずしてる?
226:NAME IS NULL
10/02/19 10:48:12
>>224
select count(*) from hoge;
ってことになると思うが、C++より先にSQLを勉強すべきだよな
227:NAME IS NULL
10/02/19 11:23:48 yDgPgBKP
>>225, 226
ありがとうございます。
確かに今回のアプリ作成で急遽SQLの勉強も始めたので、SQLに関する知識も低いですm(_ _)m
最後に質問なのですが、
select count(*) from hoge;
でステートメントを作成後に、
sqlite3_prepare()
sqlite3_step()
sqlite3_data_count()で行数を取得できるのでしょうか?
228:NAME IS NULL
10/02/19 13:11:46
>>227
sqlite3_data_count()は、sqlite3_step()呼び出した後では
レコード数(行数)ではなくてsqlite3_column_count()の値と
同じカラム数を返すのではないでしょうか?
参考
URLリンク(www.3rd-impact.net)
229:NAME IS NULL
10/02/19 15:48:28
>>227
sqlite3_step() の後
const int nCount = sqlite3_column_int( statement, 0);
で取れると思う
230:NAME IS NULL
10/02/19 16:46:47
>>229
constつける意味は?
231:NAME IS NULL
10/02/19 18:02:39
ん?不用意な変更防止のためなるべく付けるようにしているだけ
絶対間違わない自信があるんならつけなくてもいいんじゃね?
232:NAME IS NULL
10/02/20 10:54:37
正直C++のconstは汚い
233:NAME IS NULL
10/02/20 21:44:42 BE:968496184-2BP(2)
>>223
残念ながらスキルなし・・・
今年初めてWordだのエクセルだの触り始めた。
SQLだってさっぱりわからない。
これから本を買ったり読んだりして覚えたいけど、とりあえずやっつけで
年度末までに出退勤管理ツールつくらなきゃいけない。
開発言語は「なでしこ」しかない。今から理解できるのコレくらい・・・
234:NAME IS NULL
10/02/20 23:15:10
なんでそんな仕事引き受けたw
235:NAME IS NULL
10/02/21 09:15:43
>>233
フリーソフトでも探せば有るんじゃないか?EXCELとかで。
236:NAME IS NULL
10/02/21 09:20:24 BE:544778892-2BP(2)
出退勤だけじゃないのでorz
仕事は受けるものではなく、押しつけられるもの、という勤め人です。
さすがにVPNはNTTのサービスにしてもらおうと思ってる。構築しようと試行錯誤したけど無理だ。
Win機しかない上にネットワークの知識もない・・・
237:NAME IS NULL
10/02/21 11:25:31
>>236
素直に外注しろ
通常業務もあって最初から勉強しながらじゃ、動く物ができるまでに3ヶ月はかかるだろ
C++選んでるのも最悪
ビジネスアプリでC++とか不要すぎ
例えるならカラーボックス組立てるために建築重機の免許取ろうとするようなもん
238:NAME IS NULL
10/02/21 12:07:26
スポーツ選手と同じで才能のない奴はプログラミングできないよ
239:NAME IS NULL
10/02/21 12:12:17
>>236
Linux+OpenVPNですぐに張れるよ。ネットワークの知識があれば、結構簡単。
出退勤じゃー、もっとスクリプタブルな言語の方がいいんじゃまいか?
Wind○wsしかないんだとしても、PHPくらいは動かせるだろ?Webアプリにしとけって。
240:NAME IS NULL
10/02/21 13:27:37
そんなスキルがあれば上のような事情にはならないと思うが・・・
おれも外注に頼んだ方が結局コストが安くすむと思うね。
241:NAME IS NULL
10/02/21 16:43:45 BE:272390033-2BP(2)
>>224のひとではない
「なでしこ」はたしかDelphi系だったと思う
外注はまったく考えてない模様。いっそ自分で外注出してこっそり始末をつけたくなってきた
242:NAME IS NULL
10/02/21 18:29:34
>>241
別人か
それじゃ外注以外完全に手遅れじゃね
要件が全く見えてこないからいい加減だが、普通の奴なら半日で作っちまいそうな話だけどな
243:NAME IS NULL
10/02/21 19:02:35
>>236
C++できるならxamppをDLしてphp覚えつつで適当にやるのが一番楽だけどね。
(最低限のhtmlができるなら?という条件付き&DBがmysqlになりそうけど)
ただ、xampp知らなそうなのでhtmlもできないとして、現実的なのはVBS覚えて
エクセルのマクロを書く。
sqliteとのコネクトがあってオフィスアプリと連携で言語を覚えるのが面倒なら
「なでしこ」が以外とおすすめ。(コピペで動く)
入力はドットもなしの4or3桁数字を正規表現でやればよくね?
webアプリ経験者の初心者以外なら環境構築から作成まで半日でできるな。
244:NAME IS NULL
10/02/22 08:54:50 eX4n3ie9
VPNって言ってるから拠点は複数あるんだろうし、出退勤と言ってるくらいだから
まだ何も無いのだろうね。
この場合、SharePointで構築するのがお勧めなんじゃないかな。
タイムカードのような有りがちな物を外注するメリットは無いと思う。
245:NAME IS NULL
10/02/22 14:22:09
>>244
少しは質問者の要件見てやれよw
:の入力も不安視される年寄りにSharepointは使えないし
なでしこしかやった事無い奴じゃ1ヶ月で年寄も使えるようなSharepoint環境を構築するのも無理
それにSharepoint一本で行こうとすると、その内数百万の出費と言う壁に阻まれる
246:NAME IS NULL
10/02/22 21:28:26 BE:817169639-2BP(2)
なんとか見た目つくってきました
データ押し込めるような見た目とそれをcsvに保存して開くものと。
あとはエクセルでマクロ使って時間計算をできるかな・・・とそっちの方になやむことになりそうです。
タブキー付テンキーとプルダウンメニューをマウスか矢印キーだけで入力させる方向でなんとか。
プログラムの才能とかネットワークを理解する才能が欲しいですorz
ネット関連は10年くらい前にISDNのころAnHttpdで鯖立ててcgi設置練習した程度のものなので
247:NAME IS NULL
10/02/23 06:09:22
興味のある要件だから今後も報告してほしいな
すれ違いかな?
248:NAME IS NULL
10/02/23 11:35:49 BE:2179116689-2BP(2)
今知ったけどSQLの構文で置換とか計算できるのか・・・
なんかリファレンスとか本とかかったほうが良いよね
今後何やらされるかわからないし
249:NAME IS NULL
10/02/23 14:09:13
SELECT 4 * 5;
とか
SELECT REPLACE('ABCDEF', 'AB', 'XY')
なんかのこと?
250:NAME IS NULL
10/02/24 15:57:07 BE:1906727279-2BP(2)
さきほどSQLITE入門 という本を購入しました
ついでになでしこ公式本も手に入れました
作りかけデータは会社のPCにあるので明日チャレンジしますー
とりあえずできたものを半月~一カ月、誰かに入力してもらい、
色々と変更するべきところを変更し、と言う作業になりそうです。
どこの会社もその業界ならではの形式があるので、誰かそういうものをフリーソフトで出してほしいものです。
出退勤+入出庫時間+燃料+行先 現状ここまで作り込みました。
行先別給与自動計算をつけたいが実装に悩んでます(給与一覧がないw)
basicの方が簡単じゃないのかって気分になるのがとってもいやですorz
251:NAME IS NULL
10/02/25 08:18:21
そういやSQLiteの新しい本が出てたな
買った人いる?
252:NAME IS NULL
10/02/25 16:59:51
>>251
自著宣伝乙
253:NAME IS NULL
10/02/25 22:35:42
SQLiteがサーバクライアント方式になるラッパーを作った。
254:NAME IS NULL
10/02/28 17:09:30
SQLiteをWEBで使ってるけどトラブルがぜんぜんないのな
年に1回TKSQLite使ってバキュームするだけ
データ5万件くらいならこんなもんか
255:NAME IS NULL
10/03/03 01:22:12 7qgMi6Uf
>>254
5万件ならExcelでも余裕だしな。
256:NAME IS NULL
10/03/03 01:42:51
エクセルわらた
257:NAME IS NULL
10/03/03 10:06:50
たしかにテーブルがいっこなら5万件程度エクセルで十分だけどさ
258:NAME IS NULL
10/03/03 11:47:35
Webでエクセル使うの難しい
259:NAME IS NULL
10/03/03 14:26:31
まぁ難しいというか面倒くさいけど出来ない話ではないな
260:NAME IS NULL
10/03/03 22:12:33
開発案件でsqliteを使ってみたいが金にならんから止めておこうという話になったw
261:NAME IS NULL
10/03/04 00:34:43
バックアップ系をオラクルで固めてメインはSqliteにすればいいんだよ
262:NAME IS NULL
10/03/05 16:55:52
初めまして。当方、日曜プログラマのSQLite初心者です。
「作業ファイルにためた更新データをマスターファイルに反映させたい」
のですが、うまくSQLが組めません。
たとえば
*MasterFile(主キー,ID)
ID, 氏名, 住所
1, 伊藤, 東京都
2, 田中, 埼玉県
3, 越智, 京都
*WorkFile(主キー,ID)
ID, 氏名, 住所
1, 田中, 岐阜県
とあった時に、
マスターファイルの2番目の行の住所を「岐阜県」に置き換える
場合、どういうSQLを組めばいいのでしょうか?
UPDATE MasterFile SET MasterFile.住所 = WorkFile.住所
とまでは、直感的で浮かんだのですが、
後半のWHERE句の書き方がまったく分かりません。
開発環境は、FireFoxアドオン版のSQLite Managerで、
MasterFileとWorkFileは同一のファイルにあります。
場違いな質問かもしれませんが、よろしくお願いします。
263:NAME IS NULL
10/03/05 17:51:16
>>262
例えると
物理のスレで、数字の読み書きが出来ないのですが、足し算をするにはどうすればいいでしょうか?
と聞いてるようなものです。
264:NAME IS NULL
10/03/05 18:31:51
>>263
やっぱりそうでしたか。
該当する場所へ移動します。レスをありがとうございました。
265:NAME IS NULL
10/03/08 11:32:39
いや聞くんじゃなくてちょっと調べりゃわかるだろう
WHERE句はSELECTと同じなんだから、まずSELECTできるように書いてみては
266:NAME IS NULL
10/03/08 14:12:06
試行錯誤という言葉をしらないんだな.
267:NAME IS NULL
10/03/11 14:57:30
ケチケチしてんなや
と思ったけど、この場合考えられる用件は二種類あるんだよな
「重複する氏名を見つけて住所を書き換える」作業をSQLiteのSQL文だけでやるんだとしたら、ちょっと面倒だな
268:NAME IS NULL
10/03/11 15:48:50
超基本構文でやれるが・・・
269:NAME IS NULL
10/03/11 21:15:49
ならケチケチしてんなや
270:NAME IS NULL
10/03/12 04:46:50
>>269
いいからお前が答えとけ
「ちょっと面倒」で済むんだろ?
ケチケチしてんなや
271:NAME IS NULL
10/03/12 04:54:19
厨房もSQLite使えるんだ
272:NAME IS NULL
10/03/12 05:13:16
>>261
なるほど
案外変なトラブルがなくていいかもね
273:NAME IS NULL
10/03/12 06:22:30 obqGxIVQ
SQLite Release 3.6.23 On 2010 March 09 (3.6.23)
Changes associated with this release include the following:
* Added the secure_delete pragma.
* Added the sqlite3_compileoption_used() and sqlite3_compileoption_get() interfaces as well as the compile_options pragma and the sqlite_compileoption_used() and sqlite_compileoption_get() SQL functions.
* Added the sqlite3_log() interface together with the SQLITE_CONFIG_LOG verb to sqlite3_config(). The ".log" command is added to the Command Line Interface.
* Improvements to FTS3.
* Improvements and bug-fixes in support for SQLITE_OMIT_FLOATING_POINT.
* The integrity_check pragma is enhanced to detect out-of-order rowids.
* The ".genfkey" operator has been removed from the Command Line Interface.
* Updates to the co-hosted Lemon LALR(1) parser generator. (These updates did not affect SQLite.)
* Various minor bug fixes and performance enhancements.
274:NAME IS NULL
10/03/14 20:58:13
dll500kb超えたか
275:NAME IS NULL
10/03/16 12:39:54
もうだめポ
276:NAME IS NULL
10/03/17 09:05:47
っ Linux, *BSD