SQLite 7
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001NAME IS NULL
2008/09/05(金) 11:27:56ID:???過去スレ
sqliteを語るスレ
http://pc8.2ch.net/test/read.cgi/db/1056956494/
SQLite 2
http://pc8.2ch.net/test/read.cgi/db/1140827718/
SQLite 3
http://pc8.2ch.net/test/read.cgi/db/1152367932/
SQLite 4
http://pc11.2ch.net/test/read.cgi/db/1162621344/
SQLite 5
http://pc11.2ch.net/test/read.cgi/db/1176223619/
SQLite 6
http://pc11.2ch.net/test/read.cgi/db/1193118037/
0002NAME IS NULL
2008/09/05(金) 11:28:19ID:???【GUIツール】 TkSQLite
ttp://reddog.s35.xrea.com/wiki/TkSQLite.html
【ADO.NET 2.0 Provider】 System.Data.SQLite
ttp://sqlite.phxsoftware.com/
【ODBC】 SQLite ODBC Driver
ttp://www.ch-werner.de/sqliteodbc/
0003NAME IS NULL
2008/09/05(金) 11:28:38ID:???OS X ハッキング! SQLiteが広げるこれからのアプリケーション
ttp://journal.mycom.co.jp/column/osx/236/index.html
SQLite Java Wrapperのコンパイル
ttp://syo.cocolog-nifty.com/freely/2007/10/sqlite_java_wra_f79c.html
SQLiteへの大量のINSERT処理が厳しい (CodeZine編集部ブログ):
ttp://blog.codezine.jp/editor/2007/10/sqliteinsert.php
SQLite性能評価その1
ttp://www.sutosoft.com/room/archives/000450.html
Fulltext index on SQLite
ttp://www.dodgson.org/omo/t/?date=20061001
SQLite の全文検索を Python から使ってみる (1)
ttp://plaza.rakuten.co.jp/kugutsushi/diary/200707270001/
SQLite Full Text Search with MeCab
ttp://reddog.s35.xrea.com/wiki/SQLite%20Full%20Text%20Search%20with%20MeCab.html
0004NAME IS NULL
2008/09/06(土) 22:25:15ID:???EXPLAINした時の、数値や文字列の意味の詳細はどこを見ればいいですか?
0005NAME IS NULL
2008/09/07(日) 05:32:37ID:???窓の杜 - 【REVIEW】「SQLite」のデータベースをGUIで操作できる高機能管理ソフト「PupSQLite」
http://www.forest.impress.co.jp/article/2008/09/04/pupsqlite.html
0006NAME IS NULL
2008/09/07(日) 11:09:21ID:???なんだ、ただの神ツールか
0007NAME IS NULL
2008/09/07(日) 14:26:08ID:???http://www.sqlite.org/docs.html
↑の「VDBE Tutorial」と「VDBE Opcodes」なんだけど、これは SQLite2 の時点のもの。
3 でも大体同じなのであとの細かい部分はソースコードを見ながらかなあ。
0008NAME IS NULL
2008/09/07(日) 19:56:02ID:???これからはSQLiteの時代ですね
僕もちょっと使ってみます
0009NAME IS NULL
2008/09/14(日) 15:37:10ID:???0010NAME IS NULL
2008/09/14(日) 19:35:07ID:???書き込みは不可
たしかSQLITE_BUSYになる
0011NAME IS NULL
2008/09/15(月) 00:13:30ID:???0012NAME IS NULL
2008/09/15(月) 11:53:13ID:???書込み中は読込みも出来なくなる。
読込み中の書込みも不可。
読込み中の読込みは可能。
0013NAME IS NULL
2008/09/15(月) 13:19:39ID:???もうsqlite2の頃の話はいらないんじゃない?
0014NAME IS NULL
2008/09/16(火) 10:25:08ID:???ここの Improved Concurrency (とmore detailed reportというリンクの先)を読んでね
0015NAME IS NULL
2008/09/18(木) 02:54:57ID:???書き込みトランザクション中は読み込みはブロックされるし
読み込み中は書き込みトランザクションブロックされるよ
この制約を破る方法は sqlite3_enable_shared_cache() した上で
PRAGMA read_uncommited=1 を実行する必要がある。
しかも、この方法が有効なのは1つのプロセス内で複数のスレッドが
読み書きする場合のみ。
複数のプロセスが1つの DB に読み書きするケースでは、
sqlite3_enable_shared_cache() したプロセス1つだけに DB アクセスを任せて
他のプロセスはそのプロセスとプロセス間通信をすればいい。
つまり、自前で DBMS を作るってことw
0016NAME IS NULL
2008/09/28(日) 15:06:29ID:m5vIwQ5g0017NAME IS NULL
2008/09/29(月) 20:27:35ID:???暗号化は対応したのかね?
0018NAME IS NULL
2008/09/29(月) 20:52:19ID:???有料版なら対応してるよ
0019NAME IS NULL
2008/09/30(火) 20:14:43ID:???Professional Support Options for SQLite
http://www.hwaci.com/sw/sqlite/prosupport.html
0020NAME IS NULL
2008/10/01(水) 20:05:51ID:???0021NAME IS NULL
2008/10/01(水) 20:17:13ID:???たとえば、DBファイルだけAESか何かで暗号化してればわーいおkおkなの?
TrueCryptみたく
で、鍵をアプリケーションなりユーザーなりが知ってれば満足なの?
分からん
0022NAME IS NULL
2008/10/03(金) 10:08:48ID:???暗号化っつってもいろんなレベルがあるから、
>>17 みたいな質問じゃ漠然としすぎてて >>19 が解になってるかもよくわからんよね。
0023NAME IS NULL
2008/10/07(火) 04:26:41ID:OJDHP6tBSQLite 3 のデータベースファイルですよね?
あるファイルがどのバージョンの SQLite のファイルであるか
調べる方法ってほかにありますか?
0024NAME IS NULL
2008/10/09(木) 17:54:59ID:???id integer primary key
name text
);
となっているとき
insert into t (id, name) values (123, 'hoge');
とすると主キーが 123 の行を追加できてしまいますよね。
insert文で指定したidを無視して常にauto incrementな値を
つけさせるようにはできないでしょうか?
0025NAME IS NULL
2008/10/09(木) 18:07:17ID:???0026NAME IS NULL
2008/10/10(金) 00:06:29ID:???そもそもなんで insert into t (name) じゃダメなのかを言えよ
0027NAME IS NULL
2008/10/13(月) 22:07:20ID:???0028NAME IS NULL
2008/10/13(月) 22:50:14ID:???流行りそうで流行らない
0029NAME IS NULL
2008/10/13(月) 22:50:15ID:???0030NAME IS NULL
2008/10/13(月) 23:03:47ID:???知能の低いものでも、理解される部分があるのだと感謝し、この世から
消えること。
0031NAME IS NULL
2008/10/14(火) 00:15:51ID:???0032NAME IS NULL
2008/10/14(火) 00:42:08ID:???Pythonもブレークするのかなり遅かったし。
0033NAME IS NULL
2008/10/14(火) 02:04:25ID:???お前のような馬鹿は死ね
0034NAME IS NULL
2008/10/14(火) 06:30:35ID:???ただそれだけの事
0035NAME IS NULL
2008/10/14(火) 18:47:07ID:???でもたまに設備の点検が必要
0036NAME IS NULL
2008/10/14(火) 23:39:56ID:???初心者向けにわかりやすく書いてある
ページ教えて。
0037NAME IS NULL
2008/10/15(水) 00:19:52ID:???http://www.edu.meisei-u.ac.jp/~saishu/dbgairon/SQLite2.htm
この中で一番カンタンなの教えて
0038NAME IS NULL
2008/10/15(水) 00:40:13ID:???0039NAME IS NULL
2008/10/15(水) 01:54:14ID:???windowsなら、>>5とかよさげじゃね?
0040NAME IS NULL
2008/10/18(土) 07:39:58ID:???0041NAME IS NULL
2008/10/18(土) 18:39:01ID:???0042NAME IS NULL
2008/10/27(月) 16:25:27ID:???ttp://code.google.com/p/sqlite-manager/
0043NAME IS NULL
2008/10/28(火) 21:01:09ID:???AccessやOOOBaseのフォームの機能がついたものはありますか?
0044NAME IS NULL
2008/10/28(火) 22:18:03ID:???0045NAME IS NULL
2008/10/28(火) 23:29:07ID:???BaseをSqliteに接続させれば済むのでは。。
検索したらどこかにやり方が書いてあったような?
0046NAME IS NULL
2008/10/29(水) 11:28:14ID:???ありがとう
0047NAME IS NULL
2008/11/10(月) 22:47:55ID:???環境変数にLANG=jaを足せって書いてあるけどどれに足したらいいのかどこにも書いてない…
どなたか教えてくだされ
0048NAME IS NULL
2008/11/10(月) 23:07:30ID:???http://www.google.com/search?hl=en&rlz=1B3GGGL_jaJP298JP298&q=%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0+LANG%3Dja+windows&btnG=Search
0049NAME IS NULL
2008/11/10(月) 23:36:47ID:???本当にありがとう。
なんとか探し当てることができました。
これからSQLを勉強します。
0050NAME IS NULL
2008/11/12(水) 12:19:21ID:1JWWLcVt書かれた本やサイトが古いのしかなく、しかもVBからとい
うのはあまり事例がないみたい。
Jetじゃファイルサイズに制限があって、ちょっとした
システムだとすぐにオーバーしちゃうんで、Btrieveの替わりに
できそうな、組み込み型の良いDBMSだと思うんだがなぁ。
MySQLとかPostgressだとそれなりのスキルが要求されるから、
VB+SQLiteだとアマチュアプログラマでも覚える項目が少なくて
済むはず。
翔泳社あたりで出してくれんもんかのぉ
0051NAME IS NULL
2008/11/12(水) 12:28:09ID:???手取り足取りじゃないとダメなら、どうせサンプル動かす以上の事は出来ない。
0052NAME IS NULL
2008/11/12(水) 17:28:10ID:???お前さんはSQLite .NETでググる間を惜しんでそんな長文書いたの?
それともググっても理解できないほどアマチュアプログラマ(笑)なの?
0053NAME IS NULL
2008/11/12(水) 19:24:22ID:???書籍化したら8ページくらいの冊子になりそうだけどw
0054NAME IS NULL
2008/11/12(水) 19:38:21ID:???言ってるやつは使わなくてよろしい。SQLiteはアマチュアに
やさしくはないが、本職が惚れてしまうような使いやすさ。
プロの道具。素人はSQL Server Compactでも使ってなさい。
0055NAME IS NULL
2008/11/12(水) 19:42:29ID:???0056NAME IS NULL
2008/11/12(水) 19:46:49ID:???SQLiteはコンパクトで肩ひじ張らずに使えるところが好き
0057NAME IS NULL
2008/11/12(水) 19:51:40ID:???0058NAME IS NULL
2008/11/12(水) 22:30:21ID:???0059NAME IS NULL
2008/11/12(水) 23:45:09ID:???SQLite.NETとSQLiteを別々にググるよりは、
一つの本で全部説明してあるほうが読みやすそうだな
>>54
無理に批判しようとして墓穴を掘ったな
オマエは味方としては使えないが、敵としてなら頼もしいヤツだ
0060NAME IS NULL
2008/11/12(水) 23:58:18ID:???ってなんかのネタだっけ?
知ってるとどこかで使いたくなるよね
0061NAME IS NULL
2008/11/12(水) 23:58:28ID:???読みやすいとかそういう話なのか?
SQLiteを.NETで使いたかったが手も足も出なかった
入門本があればかつるのに
こういう話だろ?
で、入門本(笑)が実在すりゃ8ページにも満たないだろうなって話で
結論としてはググレカス
0062NAME IS NULL
2008/11/13(木) 00:46:52ID:???SQL ServerじゃなくてSQL Server Compactな。ぐぐれカス
0063NAME IS NULL
2008/11/13(木) 01:10:05ID:???入門レベルまで本に求める様じゃ根本的に向いてない。
ググレカス。
0064NAME IS NULL
2008/11/13(木) 01:17:23ID:???メジャーになれないんだろうね。
メジャーではない開発ツールって、いろんな意味で
コストがかかるからなかなか採用できないんだ。
だからますますマイナーになるという負のスパイラルに
陥っちゃう。
VBで手軽に使うんだったら、Postgressはどうかな。
商用にしても費用はかからないからさ。
クグレカス
0065NAME IS NULL
2008/11/13(木) 01:22:07ID:???Windowsで閉じてる人はともかく。
0066NAME IS NULL
2008/11/13(木) 06:27:47ID:???0067NAME IS NULL
2008/11/13(木) 10:19:32ID:???0068NAME IS NULL
2008/11/13(木) 12:05:38ID:???おまえがすごいバカってことは理解してあげたから、
組み込み用DBについてお勉強して出直すこと
0069NAME IS NULL
2008/11/13(木) 13:21:15ID:???0070NAME IS NULL
2008/11/13(木) 14:00:18ID:???右側にあるSQLite for ADO.NET 2.0「1.0.6.0 Oct 4. 2008」を落とすと吉。
0071NAME IS NULL
2008/11/13(木) 14:01:45ID:???1文毎にお前馬鹿だろって言いたくなるカキコだなw
で、どこを立て読みですか
0072NAME IS NULL
2008/11/13(木) 14:10:44ID:???0073NAME IS NULL
2008/11/13(木) 14:40:14ID:???バカは10レスも進むと上のほうは読まないからな
0074NAME IS NULL
2008/11/13(木) 20:44:03ID:???「わかったつもり」になるのも「わかりません」と匙を投げるのも早いんだよな。
0075NAME IS NULL
2008/11/13(木) 20:49:23ID:???0076NAME IS NULL
2008/11/13(木) 21:05:38ID:???0077NAME IS NULL
2008/11/13(木) 21:13:04ID:???ネタが無いのでおもちゃを見つけるとつい・・・
0078NAME IS NULL
2008/11/14(金) 01:58:18ID:???ネット上に存在する2種類の人種の人たちを示す揶揄された敬称のことであるが
その影には「教えない君」という人種が多数いるの事にはあまり注目されていない。
しかし、実はその「教えない君」という人種が一番厄介かつ迷惑な存在だったりするのである。
そもそも荒れる原因というものは「教えない君」の、無秩序かつ、無神経なレスにある部分が
大多数なのだが、彼らの多くは、そういった感覚はどうやら持ち合わせていないようである。
第三者がそうした場面を見た場合に、誰に一番の非があるというのは
「教えない君」にあるというのが客観的事実であるのは明らかなのであるが、
彼らは認めようとしない。
表面上は、「教えない君」はネット上のルールや倫理や秩序などを叫ぶのであるが
どうやら真相は、現実社会において蔑まれる存在である「教えない君」の
鬱憤晴らしのようである。
上記でそういった悲哀のレスを付けた人たちは、勇気を持って自らの弱さと過ちを認め
反省しなければならない。
それが、キミたちニートの人間的に成長できる数少ないチャンスなのである。
0079NAME IS NULL
2008/11/14(金) 02:08:52ID:???ここはあえて教えないという流れで
0080NAME IS NULL
2008/11/14(金) 02:40:01ID:???ネタにならん
0081NAME IS NULL
2008/11/14(金) 09:18:05ID:???それが教えない君の典型的な言い訳だな。
ってゆーか、ワナビーの言い訳だったりもする。
オマエだって何も生み出してないくせに、大口叩くなよwww
0082NAME IS NULL
2008/11/14(金) 09:38:14ID:???っていうか、SQLite程度も使えないようじゃ全体的に相当低いレベルな訳で、
教えても理解できないんじゃないかな?
時間の無駄じゃないのかな?
0083NAME IS NULL
2008/11/14(金) 10:34:22ID:???> なんで馬鹿にタダで教えなきゃいけないの?
まぁ誰もいけないとは言ってないけどね。
0084NAME IS NULL
2008/11/14(金) 10:41:49ID:???そうやって「こういう奴ってこうなんだよな」と、知らない他人のキャラクターを
一人で勝手に作ってわかったつもりになってるのが、一番ワナビーなのでは。
偏差値と自意識に大きな隔たりのある二流大学生のニオイがする。
> オマエだって何も生み出してないくせに、大口叩くなよwww
「何も生み出してないオマエ」というのは、「現実の79」ではなくて、
「いま君が作った、そうであってくれないと君の理屈が成立しない79の設定」だよね。
そういう俺設定を持ち出さないと反撃できないっていうのは、言い負けてるのと同じだよ。
0085NAME IS NULL
2008/11/14(金) 12:36:11ID:???0086NAME IS NULL
2008/11/14(金) 15:38:46ID:???教えるための環境が整っていない所ではかえって教えないほうがいい
そして2chは教える環境としては最悪の場所
その前に小中学生ならともかく高等教育受けた連中は匿名掲示版で質問すんな
恥を知れ恥を
0087NAME IS NULL
2008/11/14(金) 15:40:49ID:???0088NAME IS NULL
2008/11/14(金) 16:09:02ID:???0089NAME IS NULL
2008/11/14(金) 16:18:45ID:???0090NAME IS NULL
2008/11/14(金) 19:02:36ID:???店の外でやってくれ
0092NAME IS NULL
2008/11/14(金) 20:39:26ID:???前からこんな感じだったよ。まともな情報ほとんどなし。
とくにPHPがMySQLの代替目的でSQLiteに目をつけた当たりからがひどい。
0093NAME IS NULL
2008/11/15(土) 02:04:16ID:???0094NAME IS NULL
2008/11/15(土) 14:36:06ID:???ある意味、SQLiteの質問者は、「SQLiteについて質問している」という時点でアカンとも言える。
0095NAME IS NULL
2008/11/16(日) 03:08:52ID:???0096NAME IS NULL
2008/11/16(日) 04:03:18ID:???あのシンプルに書かれたオフィシャルヘルプを読めばほぼ全て賄える
こんなとこで質問する奴は、酷く使えない奴だと言うのは確定的に明らか
0097NAME IS NULL
2008/11/16(日) 04:12:06ID:???こんな連中が巣くってるSQLiteにさっさと見切りをつけ、
テキストもコミュニティもしっかりとして、それでいて
商用無料なPostgressを使いましょう
どうぞPostgressスレにお越しください
0098NAME IS NULL
2008/11/16(日) 04:39:54ID:???0099NAME IS NULL
2008/11/16(日) 05:16:53ID:???64の真似して何がしたいの?マゾなの?馬鹿なの?死ぬの?
0100NAME IS NULL
2008/11/16(日) 12:56:23ID:???上記サイトのDelphiラッパーを使おうと思い、まず同梱のTestSqlite.dprを実行させようとしたところ
エラーが出てコンパイルできませんでした。どこを修正するといいのでしょうか?
[エラー] SQLiteTable3.pas(470): 'TSQLite3Destructor' と 'Pointer' には互換性がありません
[エラー] SQLiteTable3.pas(627): 'TSQLite3Destructor' と 'Pointer' には互換性がありません
[エラー] SQLiteTable3.pas(787): 'TCollateXCompare' と 'Pointer' には互換性がありません
[致命的エラー] uTestSqlite.pas(7): 'SQLiteTable3.pas' ユニットはコンパイルできませんでした
0101NAME IS NULL
2008/11/16(日) 16:36:17ID:???0102NAME IS NULL
2008/11/16(日) 16:38:31ID:???0103NAME IS NULL
2008/11/18(火) 22:43:24ID:???見た目はきれいだったけど、いまいちだったな。バグが多すぎる。
0104NAME IS NULL
2008/11/18(火) 23:03:19ID:???0105NAME IS NULL
2008/11/18(火) 23:16:59ID:???0106NAME IS NULL
2008/11/21(金) 00:24:01ID:???Mac、Linuxで使えるのがありがたい。
0107NAME IS NULL
2008/11/23(日) 01:21:35ID:???0108NAME IS NULL
2008/11/23(日) 05:25:49ID:???sqlite3 って打ってみろ
0109NAME IS NULL
2008/11/23(日) 11:02:13ID:???せめて2こ上のレスくらい嫁よ。
0110NAME IS NULL
2008/11/23(日) 13:22:56ID:???0111NAME IS NULL
2008/11/24(月) 16:28:32ID:???0112NAME IS NULL
2008/11/24(月) 16:53:14ID:???0113NAME IS NULL
2008/11/24(月) 20:44:07ID:???わざわざ使えるって言ってる奴になんで再度聞くの?
お前は動かない事を知ってるとか、そういう事情でもあったの?
0114NAME IS NULL
2008/11/24(月) 20:56:53ID:???108は?108はどうなの?
0115NAME IS NULL
2008/11/24(月) 23:27:01ID:???0116NAME IS NULL
2008/11/25(火) 06:33:41ID:???せめて2こ上のレスくらい嫁よ。でFA
0117NAME IS NULL
2008/11/25(火) 07:37:18ID:???多分に含まれていると思うし、
>>106の内容がネタや勘違いである可能性も含めて、>>106本人を含めた全員に
それを発しているのだから(>>106宛のレスアンカーが無いのはそういうことだろう)、
これは「知ってる奴全員に」「情報の真偽を問うている」という自然な反応の一種とするのが正解であって、
「使えるって言ってる奴に」「再度訊いている」というのは、随分狭い見方・・・というより、
>>107おかしなことを聞き返していることにしたかったので曲解してみました、っていう痛い頑張りを感じる。
0118NAME IS NULL
2008/11/25(火) 16:13:14ID:???0119NAME IS NULL
2008/11/25(火) 16:35:23ID:???0120NAME IS NULL
2008/11/25(火) 17:27:38ID:???捕りこぼした奴が悪い!それ位捕れよ!何でそんな下手糞なんだ!
投げた奴が悪い!変な方投げるなよ!何でそんな下手糞なんだ!
なんて言ってて楽しいのか?自称外野諸君(笑)は
0121NAME IS NULL
2008/11/25(火) 18:39:31ID:???0122NAME IS NULL
2008/11/25(火) 18:49:23ID:???0123NAME IS NULL
2008/11/25(火) 19:33:08ID:???しかも話のネタがネガティブだ。
0124NAME IS NULL
2008/11/25(火) 20:14:12ID:???このスレでSQLiteの話はするなよ。荒れるから。
0125NAME IS NULL
2008/11/25(火) 20:14:19ID:???0126NAME IS NULL
2008/11/27(木) 16:23:58ID:???SQLiteを使う連中がゴミなんで、
SQLiteは採用しないことにしました
このスレでそのことを学びました
ゴミの皆さん、ありがとう
0127NAME IS NULL
2008/11/27(木) 16:28:04ID:???皆さん、ありがとう
だけ読んだ
0128NAME IS NULL
2008/11/27(木) 16:31:20ID:???いいんですよ
ゆとり世代ではそれが普通です
0129NAME IS NULL
2008/11/27(木) 16:40:17ID:???0130NAME IS NULL
2008/11/27(木) 17:43:46ID:???0131NAME IS NULL
2008/11/27(木) 21:12:09ID:???0132NAME IS NULL
2008/11/27(木) 23:14:31ID:???「SQLite を使ってます」なんてアッピルしない。
SQLite ってのはそういうものだ。
0133NAME IS NULL
2008/11/28(金) 00:46:58ID:???あとはADOチックにやればどうにでもなると思うんだが
こんだけ騒いでるバカがいるって事は何か深くて複雑な機能でもあるのか?
0134NAME IS NULL
2008/11/28(金) 03:11:14ID:???0135NAME IS NULL
2008/11/28(金) 10:30:03ID:???0136NAME IS NULL
2008/11/29(土) 18:02:35ID:???普通に LINQ をサポートしてるんだが
0137NAME IS NULL
2008/11/29(土) 18:11:13ID:???日本語のhow to本がないとダメってのが相当数いる。
名前の露出が増えるとそういうのがいっぱい群がってくる。
0138NAME IS NULL
2008/11/29(土) 18:26:37ID:???amazon.co.jp で検索すれば2冊見つかるよ
0139NAME IS NULL
2008/11/30(日) 01:03:21ID:???うん。アッピルしないね。
0140NAME IS NULL
2008/11/30(日) 01:09:11ID:???0141NAME IS NULL
2008/11/30(日) 10:44:20ID:???そんな奴はITに向いてない気がしないでもないw
0142NAME IS NULL
2008/11/30(日) 23:36:16ID:???0143NAME IS NULL
2008/12/01(月) 00:08:24ID:L3Ls6oBT0144NAME IS NULL
2008/12/01(月) 00:16:23ID:???0145NAME IS NULL
2008/12/01(月) 15:16:21ID:???0146NAME IS NULL
2008/12/02(火) 15:17:27ID:???こんなクソスレで質問してないで、さっさと勉強しろ
ここはクソどもが仲良く集う腐海だ
0147NAME IS NULL
2008/12/02(火) 16:51:41ID:???やぁ、クソ
0148NAME IS NULL
2008/12/04(木) 23:05:05ID:???ファイルの読み書きはあるの? 無いとつらいよ。
0149NAME IS NULL
2008/12/06(土) 22:44:33ID:rhR4mcMZsqlite ファイルをいじるツールってないでしょうか
0150NAME IS NULL
2008/12/06(土) 22:47:35ID:rhR4mcMZここ見てきます
0151NAME IS NULL
2008/12/06(土) 22:58:10ID:rhR4mcMZちょこちょこ修正するために sqlite コマンド
使ってクエリたたき続けるのがもう嫌になった・・・
0152NAME IS NULL
2008/12/06(土) 23:27:04ID:rhR4mcMZ書き戻すのが吉か?
0153NAME IS NULL
2008/12/11(木) 15:52:51ID:???sftpとかでファイルをダウンロードしてローカルで修正して戻すしかないのでは?
リモートでアクセスできれば使い勝手がいいんだけどね。
この問題で、趣味で作ろうとしているWebアプリのDBを
PostgresとかMySQLのサーバ型にした。外部からのアクセスが簡単だし。
0154NAME IS NULL
2008/12/11(木) 16:29:07ID:???0155NAME IS NULL
2008/12/11(木) 17:04:55ID:???0156NAME IS NULL
2008/12/11(木) 17:13:45ID:???アプリの開発中にどうやってDBを修正してるの?
0157NAME IS NULL
2008/12/11(木) 18:07:18ID:???テストケース作って自動化してるに決まってるじゃん
0158NAME IS NULL
2008/12/11(木) 18:33:54ID:???Ruby 厨なら ActiveRecord + irb とか Rails Scaffold + w3m とかでやるかな。
0159NAME IS NULL
2008/12/11(木) 18:35:34ID:???0160NAME IS NULL
2008/12/11(木) 19:30:45ID:???普通はRubyでもPerlでも何でもいいけどスクリプト使うとか考えるだろ
そういう発想が出てこずにcursesベースのツールが欲しいとか
根本的にプログラマに向いてないわ
0161NAME IS NULL
2008/12/11(木) 20:14:12ID:???>そういう発想が出てこずに〜根本的にプログラマに向いてないわ
こういうひとつの要素だけで決め付ける奴って、
経験的に言って使えない。
0162NAME IS NULL
2008/12/12(金) 00:07:26ID:???そんなんじゃ流石に根本的に向いてないとは言えないわ
0163NAME IS NULL
2008/12/12(金) 02:25:31ID:???サーチエンジンにヒットしやすいような気がしてならない
0164NAME IS NULL
2008/12/12(金) 03:12:05ID:???どんなジンクスだよw
0165NAME IS NULL
2008/12/12(金) 04:51:37ID:???これはすごい都市伝説だ
SQLiteを布教する際の切り札とさせてもらうw
0166NAME IS NULL
2008/12/12(金) 09:56:58ID:???根本的を経験的に変えて同じようにひとつの要素で判断してるだけやん
0167NAME IS NULL
2008/12/12(金) 10:05:31ID:???なんでこんなところで関西弁?
キモいなあ
0168NAME IS NULL
2008/12/12(金) 10:07:51ID:???0169NAME IS NULL
2008/12/12(金) 10:15:06ID:???うわ必死(笑)
0170NAME IS NULL
2008/12/12(金) 10:16:48ID:???0171NAME IS NULL
2008/12/12(金) 10:17:54ID:???0172NAME IS NULL
2008/12/12(金) 11:16:56ID:???このスレ巡回先から外す
お元気で
0173NAME IS NULL
2008/12/12(金) 11:26:15ID:???なんでいちいち宣言するの?クズですね
0174NAME IS NULL
2008/12/12(金) 11:49:28ID:???0175NAME IS NULL
2008/12/12(金) 13:04:46ID:???プログラマに向いてない人乙
0177NAME IS NULL
2008/12/12(金) 21:59:21ID:???0178NAME IS NULL
2008/12/12(金) 22:24:19ID:???やっとこのスレのクズさ加減にお気づきで・・・。僕なんて
もう2スレ目から気が付いてました
0179NAME IS NULL
2008/12/13(土) 04:22:35ID:???お前の未練がましさは異常w
0180NAME IS NULL
2008/12/13(土) 12:34:09ID:hU9rF/cWttp://d.hatena.ne.jp/nowokay/20081212#1229071535
> SSDを前提にしたプログラムモデルになれば、そもそもシーク時間と戦うこともなく、
> ストレージを意識せずにプログラムが組めます。そうなったとき、アプリケーションのデータを
> 永続化するためにRDBMSをわざわざ使うことはないでしょう。
> RDBMSが最初に消えるのは、ローエンドの、SQLiteやDerbyなどが使われている分野だと思います。
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0181NAME IS NULL
2008/12/13(土) 12:35:32ID:???釣られませんよ
0182NAME IS NULL
2008/12/13(土) 15:36:01ID:???0183NAME IS NULL
2008/12/13(土) 16:00:33ID:???0184NAME IS NULL
2008/12/13(土) 16:38:01ID:???0185NAME IS NULL
2008/12/13(土) 16:48:31ID:???こんな夢ばっか見てたら毎日が楽しそうだ
0186NAME IS NULL
2008/12/13(土) 19:56:14ID:hU9rF/cW自我崩壊して失禁あうあうあーwww
0187NAME IS NULL
2008/12/13(土) 21:32:55ID:VrVQ8NPb目に精子が入って毒が回ったんじゃねえの?
0188NAME IS NULL
2008/12/13(土) 21:51:59ID:???0189NAME IS NULL
2008/12/13(土) 22:39:32ID:???0190NAME IS NULL
2008/12/14(日) 00:54:11ID:???Ω ΩΩ< な、なんだってー
0191NAME IS NULL
2008/12/14(日) 09:01:27ID:???SQLiteを使って4〜5人くらいが同時アクセスする様なDBは可能でしょうか?
NASにアプリをおいて端末で閲覧更新をする予定です。
本体をNASに置くような形になります。
最初はMySQLなどを利用しようかと思っていたんですが
小さな貧乏部署での非常にローカルなデータ処理に使うので
一台をサーバーにするという事は却下されました
絶えず電源の投入されているマシンはNASだけ(しかも水牛)ということに
なってしまいました
ご教授よろしくお願いします
0192NAME IS NULL
2008/12/14(日) 12:23:35ID:???しかし、ユーザ管理を一から実装するなど、いろいろ考えると、MySQLの方が遙かに楽に構築できると思はれ。
0193NAME IS NULL
2008/12/14(日) 12:51:07ID:???共有フォルダにあるエクセルファイルを皆でいじくり倒すより何ぼかマシになれば、それで良いって考えじゃない
その前提で行くならSQLiteは最適解だし何の心配も要らないだろう
0194NAME IS NULL
2008/12/14(日) 14:11:21ID:???0195NAME IS NULL
2008/12/14(日) 22:18:00ID:???自分のPCをサーバー代わりにすればいいじゃないか。
Webアプリ作ってApache入れて電源常時ON。バックアップはちゃんと取れ。
「こりゃいいね」ってことになったらサーバー用に中古ノートPCでも買えば。
でも191のとこならAccessのほうがいいと思うけどね。
0196NAME IS NULL
2008/12/15(月) 02:44:45ID:T2sjSdK9なんでSQLite ManagerはEUC対応してるんだ!。
(ていうか、古い仕様のままじゃん。)
SQLite3のODBCがEUC対応してないので、
SQLite Managerで見れる日本語が、
Excelで文字化けして困っていまつ。
0197NAME IS NULL
2008/12/15(月) 06:58:43ID:KkwlgNZa端末A側で時間のかかるINSERTを実行すると同時に
端末B側でINSERTを実行する
→○端末Aの処理が終わるまで待ってくれる
端末A側でトランザクションを開始してからINSERTを実行すると同時に
端末B側でトランザクションを開始してINSERTを実行する
→×一切待たずにdatabase is locked エラー
PDO::setAttribute(PDO::ATTR_TIMEOUT, 1000);
は入れてるのですが
0198197です
2008/12/15(月) 08:14:57ID:KkwlgNZaPDOで処理しています
INSERT でトランザクションかけている時に
他のユーザでINSERT しようとすると database is locked となります
数秒待ってから、database is locked の表示が出るのではなく
すぐエラーの表示になってしまいます
書き込みが処理がダブった場合に、片方のユーザは待つようにしたいのです
http://www.bumblebury.com/function.sqlite-busy-timeout.html
ココを見ると、初期値ではタイムアウトが設定されている
となっているのですが、処理待ちしてくれません
どうすればいいのでしょうか
0199NAME IS NULL
2008/12/15(月) 12:57:07ID:???0200NAME IS NULL
2008/12/15(月) 13:50:30ID:???0201NAME IS NULL
2008/12/15(月) 15:29:59ID:???0202NAME IS NULL
2008/12/22(月) 13:21:44ID:XnlanDxxSQLiteとPHPで日記つくってるんですが、
日記を読むページに、
「次の日の日記へ」と「前の日の日記へ」というリンクを張ってます。
これは、「read_diary_day?id=$a」みたいにして、
現在読んでる日記のidに、1足したものと、1引いたものをリンクとしているんですが、
あるレコードを削除した場合、auto-incrementなフィールドの値がひとつ飛んでしまいます。
この場合、1足したりしてもそのidがないわけなんですが、
あるレコードを削除した場合にも機能する、
「次の日の日記」と「前の日の日記へ」のリンクはどう書けばいいんでしょうか?
0203NAME IS NULL
2008/12/22(月) 13:22:33ID:???0204NAME IS NULL
2008/12/22(月) 13:28:27ID:???その日より大きい値の中で一番小さいもの→次回
0205NAME IS NULL
2008/12/22(月) 14:04:55ID:???な る ほ ど − !!!!!!
ありがとうございました。
0206NAME IS NULL
2008/12/22(月) 14:13:45ID:???当日を削除する場合は、前日のレコードの翌日、翌日のレコードの前日をそれぞれ更新してから、当日を削除する。
ってのはどう?
文章じゃ分かりづらいけど、やってることはLinked List的にエントリを関連づけてっるてこと。
0207NAME IS NULL
2008/12/22(月) 16:02:54ID:???// 前後の日記のidを取得(削除されてても大丈夫)
$back_day = sqlite_single_query($db, "select max(id) from diary where id < '{$page_id}';");
$next_day = sqlite_single_query($db, "select min(id) from diary where id > '{$page_id}';");
0208NAME IS NULL
2008/12/22(月) 16:20:02ID:???0209NAME IS NULL
2008/12/22(月) 21:21:41ID:Wo8xBrFCもし3000歳になってもまだつけていたら100万ページを超えるんだからね。
よく考えて。
0210NAME IS NULL
2008/12/22(月) 22:20:28ID:???0211NAME IS NULL
2008/12/22(月) 23:33:52ID:???0212NAME IS NULL
2008/12/22(月) 23:42:01ID:???0213NAME IS NULL
2008/12/23(火) 00:32:41ID:ReeSTEy9馬鹿発見。
0214NAME IS NULL
2008/12/23(火) 01:55:45ID:???0215NAME IS NULL
2008/12/23(火) 02:21:05ID:DXO/l3wa0216NAME IS NULL
2008/12/23(火) 03:15:37ID:???0217NAME IS NULL
2008/12/23(火) 08:18:44ID:???それは突っ込み方がおかしい。
これはむしろ、検証という次元で語るときだけ意味のある遅さだろ。
体感の世界で語るぶんにはどうでもいい差なんだから。
0218NAME IS NULL
2008/12/23(火) 08:26:54ID:???やっと発見できたか
お前が馬鹿という事実を
0219NAME IS NULL
2008/12/23(火) 11:09:00ID:???どの部分に使ってるんだろ。
スレの実データはdatとかの外部ファイルだよね。
それらへのインデックス程度かな。
0220NAME IS NULL
2008/12/23(火) 13:00:36ID:???CREATE TABLE idxlist (
datname TEXT PRIMARY KEY,
title TEXT,
last_modified TEXT,
lines TEXT,
view_pos TEXT,
idx_mark TEXT,
uri TEXT,
state TEXT,
new_lines TEXT,
write_name TEXT,
write_mail TEXT,
last_wrote TEXT,
last_got TEXT,
read_pos TEXT,
record_be TEXT,
etc1 TEXT,
etc2 TEXT
);
idxファイルの代わり程度かね
0221NAME IS NULL
2008/12/24(水) 16:58:45ID:???将来的なシーンを見据えた拡張という感じかな。
0222209
2008/12/25(木) 11:48:40ID:???SQLite使いは、やっぱカスグラマばっかだな。
0223NAME IS NULL
2008/12/25(木) 11:51:45ID:???騙りは駄目ですよw
0224NAME IS NULL
2008/12/25(木) 17:39:48ID:???0225NAME IS NULL
2008/12/25(木) 21:30:15ID:???SQLiteを使ってる奴はカスばっかとかいう結論に至る方が
ロジックとしておかしいよな。
0226NAME IS NULL
2008/12/26(金) 00:55:53ID:fRKozh9gDBエンジニアから見たらアホすぎなんだろ。
0227NAME IS NULL
2008/12/26(金) 01:27:01ID:???0228NAME IS NULL
2008/12/26(金) 19:20:07ID:???スレがたくさん保存されてるとき、大量のidxファイルを読み込むより
SQLiteでデータベース化されたものを読み込んだほうが数十倍以上早い。
これは2003年にOpenJane nonoがJane派生で初めて実装して威力を発揮。
以降、他の派生でもSQLiteによるidx管理が普及した。
StyleのはLovelyがベース。(もっともSQLite3.xにしてからは作り直しただろうけど)
0229NAME IS NULL
2008/12/28(日) 13:58:01ID:???0230NAME IS NULL
2008/12/29(月) 22:50:50ID:???パス : データベースをアップロード
の下の空白は、何を入力すればいいの?
0231NAME IS NULL
2008/12/29(月) 22:54:50ID:???パスの名前を自分で入力するらしい
0232NAME IS NULL
2008/12/29(月) 22:58:24ID:???0233NAME IS NULL
2008/12/30(火) 11:44:32ID:???何を期待して何をしたらどうなった、くらい書いてくれ。
0234NAME IS NULL
2008/12/30(火) 15:30:22ID:???その画面では見えなくなったんだけど、
Windowsエクスプローラーで見たら
ファイルが消えないで残ってるんだよ
0235NAME IS NULL
2008/12/30(火) 15:30:55ID:???どう使うの?
0236NAME IS NULL
2008/12/30(火) 15:38:13ID:???ファイルをオープンしているプロセスが残ってんじゃないの?
怪しいプロセスを殺してみるか、再起動してみたら?
0237NAME IS NULL
2008/12/30(火) 16:21:03ID:???0238NAME IS NULL
2008/12/30(火) 16:30:20ID:???実際見てみると、15くらいの型があるのですが、
どういうことでしょうか?
0239NAME IS NULL
2008/12/30(火) 17:00:15ID:???integer型にテキストが入るとかそんな話だった気が
0240NAME IS NULL
2008/12/30(火) 17:21:04ID:???SQLiteManagerと
どっちを使うべき?
0241NAME IS NULL
2008/12/30(火) 18:08:19ID:???名目的なものであり、制約として機能しない点
などがある。 SQLiteでは(ROWIDを除き)カラム
に宣言した型にかかわらず、どのようなデータ
も格納できる。 また、カラムの長さも常に可変
であり、長さや精度の指定は意味をもたない。
---------------------------------
↑これかな?
何をいれても、意味ないってこと?
0242NAME IS NULL
2008/12/30(火) 18:30:22ID:???利用する側で意味がある、場合もある。
言語ネイティブの型に結び付けたり、バリデータで利用(例えば数値型
だったら文字列が投入されるとエラーにするとか)したり。
0243NAME IS NULL
2008/12/30(火) 22:32:54ID:???仕様が理解できない。
0244NAME IS NULL
2008/12/30(火) 22:45:15ID:???0245NAME IS NULL
2008/12/30(火) 23:35:55ID:???0246NAME IS NULL
2008/12/31(水) 11:24:05ID:???それをSQLiteManagerで見ようと思っても、
表示されないんだけど、これを認識させるには
どうしたらいいの?
0247NAME IS NULL
2008/12/31(水) 11:28:07ID:???VACUUMを実行するまでデータベースから消去されな
い。(つまり、VACUUMを実行するまでファイルサイズ
が減らない。)
0248NAME IS NULL
2008/12/31(水) 11:32:03ID:???ここのページのサンプルコードを見て、
sqlite_open('test.db', 0666, $sqliteerror);
このコードを実行すると、もしtest.dbがカレントディレクトリに
無い場合は自動的に作成されます。
しかし、そのtest.dbをSQLiteManagerで見ても
表示されないのです。どうして?
0249NAME IS NULL
2008/12/31(水) 12:11:40ID:???ここのページを見て、
「パス情報のバックスラッシュをstripslashes()さ
れていて、気づくとドライブルートに\を抜かれ
た長いファイル名のDBが自動的に作られてい
た・・。つまり全然関係ないところに作られた、
できたてDBの中身を見ていたわけで。どうりで
テーブルが見えないわけだ。」
この処理をしたんですが、これでいいのかな?
0250NAME IS NULL
2008/12/31(水) 12:17:25ID:???ここのページに、
「画面上で操作したDBファイル以外は認
識しないので既に存在するSQLiteファイル
もFTPでアップしたり削除したファイルは画
面で反映されない」
って書いてあるのだが、これを認識させる方法はないのか?
0251NAME IS NULL
2008/12/31(水) 12:24:42ID:???ついにできた!!!!!!!!!!!!!
0252NAME IS NULL
2008/12/31(水) 12:38:34ID:???こちらが入力した文字列に、勝手にスラッシュを付加されてしまって
おかしくなっていた。
>>249の処置をして、(勝手にスラッシュを付加されないようにして)
「データベースをアップロード」にチェックをいれて、
それで、あらかじめハードディスクの中に作った(PHPプログラムとかで)
データーベースを指定して「保存」ってやったら、画面の左側の
メニューに出てきた。感動。
0253NAME IS NULL
2008/12/31(水) 19:14:50ID:/jDWOWFv0254NAME IS NULL
2008/12/31(水) 19:26:17ID:???0255NAME IS NULL
2009/01/01(木) 00:39:53ID:???0256NAME IS NULL
2009/01/01(木) 02:01:55ID:???SQLiteManagerで認識できないのか?
0257NAME IS NULL
2009/01/01(木) 02:52:01ID:???そろそろウザい
0258NAME IS NULL
2009/01/01(木) 03:03:23ID:???SQLite3と
どっちを使うべき?
0259NAME IS NULL
2009/01/01(木) 03:03:55ID:???おまえこそウザイ
0260NAME IS NULL
2009/01/01(木) 03:10:24ID:???「異物」が現われたので排除しなきゃ!って思ったんだね
キモイからくんなよ知的障害者
0261NAME IS NULL
2009/01/01(木) 04:08:34ID:???0262NAME IS NULL
2009/01/01(木) 11:54:33ID:???誰からもレスもらえてない事にいい加減気づけ
0263NAME IS NULL
2009/01/01(木) 13:14:31ID:???おまえ、どれだけ悲惨な環境で育ったんだ?
今現在、少しは生活が良くなったのか?
だとしたら良かったな。 抑圧された悲惨な生活から何とか抜け出せたなら、次は知性とか教養を身につけないとな。
血の滲むような努力をしてきた君なら、きっと教養は身につけられるだろうから頑張れよ。
もしかしたら、その曲がりきった卑しい根性も、少しは矯正できるかもしれないぞ。
0264NAME IS NULL
2009/01/01(木) 15:50:30ID:???263本人の人格を婉曲に表現した独特の自己紹介でした。
0265NAME IS NULL
2009/01/01(木) 16:08:59ID:???スレの趣旨にそぐわない輩がエスカレートさせるもの。
>>258
好きな方使えやゴラァ!
0266NAME IS NULL
2009/01/01(木) 18:41:02ID:???条件分岐って可能でしょうか?
可能ならそういう情報ってどこを探せばいいんでしょうか?
ぐぐってるんですが、処理を早める目的の物位しか見つかりませんでした。
0267NAME IS NULL
2009/01/01(木) 23:40:44ID:???まあまぁ。そう突き放さなくても・・・
>>258
どうするべき?・・って問い方はどうなのかな。
そもそも Sqlite3 があるのに Sqlite2 を選択枝に入れる貴方の考えはいかに。
0268NAME IS NULL
2009/01/02(金) 01:02:53ID:AMNv/nir0269NAME IS NULL
2009/01/02(金) 01:33:12ID:???0270NAME IS NULL
2009/01/02(金) 01:45:50ID:???GPLにする理由は何?
0271NAME IS NULL
2009/01/02(金) 09:00:13ID:AMNv/nir今のライセンスだとドザが勝手に使うだろ。
GPLにしとけばLinux専用状態にできる。
0272NAME IS NULL
2009/01/02(金) 09:11:24ID:???0273NAME IS NULL
2009/01/02(金) 09:54:38ID:???Windowsはオープンソースになにも貢献してないんだから勝手に使ったら
駄目だろ。
成果だけ横取りかよ。
0274NAME IS NULL
2009/01/02(金) 10:02:56ID:???0275NAME IS NULL
2009/01/02(金) 10:09:06ID:???胸に手をあてて考えてみろ。
0276NAME IS NULL
2009/01/02(金) 10:14:12ID:???0277NAME IS NULL
2009/01/02(金) 10:28:19ID:AMNv/nir使えねー。
0278NAME IS NULL
2009/01/02(金) 13:09:39ID:???0279NAME IS NULL
2009/01/02(金) 14:02:10ID:???0280NAME IS NULL
2009/01/03(土) 21:22:14ID:???また使えなくなった。なんでだ?
0281NAME IS NULL
2009/01/03(土) 21:29:25ID:???firefoxだと動かない。
0282NAME IS NULL
2009/01/03(土) 21:40:34ID:???ファイルサイズが6MBもあります。
なんで?
0283NAME IS NULL
2009/01/03(土) 23:18:46ID:???0284NAME IS NULL
2009/01/03(土) 23:49:26ID:???ウチの環境だとなぜか動かない。
真っ白なページが出るだけ。なんで?
0285NAME IS NULL
2009/01/04(日) 01:05:56ID:???0286NAME IS NULL
2009/01/04(日) 01:26:25ID:???0287NAME IS NULL
2009/01/04(日) 02:10:24ID:???ファイルの選択をIEでやって、
そこででてきたパス情報をコピペして、
firefoxにはりつけると、なぜかうまくいった。
バグなんだろうけど、もうアップデートないんだろうな。
0288NAME IS NULL
2009/01/04(日) 02:15:22ID:???0289NAME IS NULL
2009/01/04(日) 11:53:31ID:???自己紹介しろなんて誰も命令してない
0290NAME IS NULL
2009/01/04(日) 11:54:15ID:???パスの区切りに¥が使われていたのを、
勝手に/に直していたんだが、
これがよくないみたい。
Windows、Macはパスの区切り文字(デリミタ)は¥(バックスラッッシュ)なんだから、
そのまま入れればいけるっぽい。
0291NAME IS NULL
2009/01/04(日) 12:07:45ID:???firefoxでやるとなぜかちゃんとこちらの指定したフォルダに入る。
これってやっぱりバグなんだろうな。ブラウザによって挙動が
違うわけだから。
0292NAME IS NULL
2009/01/04(日) 13:00:04ID:???ファイルの中になんかデーターが入っていれば認識できるみたい。
0293NAME IS NULL
2009/01/04(日) 13:02:12ID:???0294NAME IS NULL
2009/01/04(日) 15:05:47ID:???sqlitemanager豚
0295NAME IS NULL
2009/01/04(日) 17:52:03ID:???このスレってなんのためにあるの?
Blog、Blogって覚えたての言葉をうれしそうに連呼する猿を見ると吐き気がする。
手元にある書籍で思いっきりひっぱたいてやりたい気分。氏ねw
日本のSQLiteが終わってるのはコミュニケーション能力のないキモヲタしかつかわないから。
そういう豚は「BlogBlogBlog」ばっか。だからユーザーが育たない。
0296NAME IS NULL
2009/01/04(日) 18:05:37ID:???じゃあテメェがユーザーを育てろよ
0297NAME IS NULL
2009/01/04(日) 18:15:17ID:???管理ツールみたいのは自分の場合は普段あまり使わないからよくわからん。
0298NAME IS NULL
2009/01/04(日) 21:13:23ID:???いやな性格だねぇ〜
オレ、このスレでホント助かった。昨年の5月に知って SQlite3 の入門本?を一冊買ってから疑問にぶち当たった時(そもそも SQL 無知)ここで助けてもらった。
とにかく、始めは情報が多すぎてとてもとてもポイント絞れない。直面している大きな壁(当人にはマジ壁に見える)が、ここの人の回答で取り除かれたときの感動は最高。答えてクレタ人には「ありがとう」の一言でしか返せないけど俺にとっては最高の先生なわけです。
そんなもん、クグレカス・・・とか、Blogでヤレって言うのは簡単だけど、質問に答えないなら黙っといて欲しいというのがあるな。
0299NAME IS NULL
2009/01/04(日) 23:51:33ID:???見てても、SQLiteじゃなくてFirefox(XUL?)の問題みたいだし。
SQLitemanager使い続けるならここで聞くよりソフトウェア板のFirefox拡張スレとか
ROMったりしてアドオンで引っ掛かりやすいとこ調べた方が早いかもよ。
SQLiteって直接API叩いたり各言語用ドライバから使ってる人の方が圧倒的に多いと思うし。
あとGUIでSQL直書きしたりするならシンタックスハイライト機能のあるtkSQLiteオススメ。
0300NAME IS NULL
2009/01/05(月) 00:06:37ID:???firefoxのアドオン版ではありません
名前はなぜか同じだけど。
0301NAME IS NULL
2009/01/05(月) 00:07:10ID:???これはtcl/tkがインストールされてないと
使えないのではないか?
0302NAME IS NULL
2009/01/05(月) 03:38:36ID:???ドライバ、インストールするのはどうやるの?
0303NAME IS NULL
2009/01/05(月) 11:48:18ID:???試せよ
そのカキコしてる間にDLしてexeダブルクリックすりゃわかるだろ?
1から10までここで聞きたいわけ?
>>299でやっと、やっとまともな答え貰ったのに端から疑ってかかるんだ?
お前は最低の屑質問豚だよ
0304NAME IS NULL
2009/01/06(火) 04:34:02ID:???警察に通報しました
0305NAME IS NULL
2009/01/06(火) 04:34:36ID:???警察に通報しました
0306NAME IS NULL
2009/01/06(火) 08:09:59ID:???で、お前もSQLite使ってる日本人だから、
コミュニケーション能力のないキモヲタなんだろ?
じゃあ駄目じゃん。口だけ偉そうなこと言ったってさぁw
0307NAME IS NULL
2009/01/06(火) 08:27:23ID:???1年半経って未だに質問するだけか
猿だな
答えて貰えなきゃ感謝してるはずのスレで罵詈雑言撒き散らして荒らすあたりが本当に猿
0308NAME IS NULL
2009/01/06(火) 17:54:23ID:???298だけど・・ん? 突然に意味不明。
>>307
この人は 306 の人?
で、なにか俺、偉そうな事いったのかな。層感じるのは君だけじゃない?
0309NAME IS NULL
2009/01/06(火) 18:00:56ID:???偉そうだなんていってねぇよ
ただお前は猿並みって言ってるんだよ
一体どうすりゃ猿が偉そうに見えるってんだ
0310NAME IS NULL
2009/01/06(火) 18:08:47ID:???ん・・もしかして質問者がオレって思ってるのか?
SQLite 7 スレで 298 が初書き込み。
SQLiteスレを久々に覗いてみたらこんなことになってるからさ。
猿かどうかわからないけど、勝手に思い込んでる君がハズしているよ。一瞬ポカンとなって何いってるのか理解できなかかった。
0311NAME IS NULL
2009/01/06(火) 18:30:58ID:???0312NAME IS NULL
2009/01/06(火) 19:02:34ID:???質問に答えないなら黙っといて欲しいというのがあるな。
お前さんの棘だらけのレスは、このスレの役に立つのかい?
0313NAME IS NULL
2009/01/06(火) 19:47:24ID:???SQLiteのバージョンはどうやって確認するの?
0314NAME IS NULL
2009/01/06(火) 19:48:08ID:???これってマジ?もしマジだとしたら、バージョンの確認は
どうやってやるんだ?
「2 and 3」
とかって出るのか??
0315NAME IS NULL
2009/01/06(火) 20:25:38ID:???ってそういう話ではない?
0316NAME IS NULL
2009/01/06(火) 20:39:17ID:???自分が接続するSQLiteのバージョンがわからないんです。
なので知りたいんですけど、どうすればいい?
とりあえず、2系と3系と両方動くのは確認しました。
でも細かいバージョンがわからない。
0317NAME IS NULL
2009/01/06(火) 20:43:34ID:???$dsn = 'sqlite::memory:';
$user = '';
$pass = '';
$sql = 'SELECT sqlite_version() as version';
try {
$dbh = new PDO($dsn, $user, $pass);
$dbh = $dbh->prepare($sql);
$dbh->execute();
$result = $dbh->fetch(PDO::FETCH_OBJ);
$version = str_replace('undefined', '', $result->version);
echo $version;
$dbh = null;
}
catch (PDOException $e)
{
echo 'error: ' . $e->getMessage();
exit();
}
?>
このコードを実行したら、3.3.7って出た。
0318NAME IS NULL
2009/01/06(火) 20:44:06ID:???$a=sqlite_libversion();
print $a;
?>
これを実行すると、
2.8.17
と表示されるんだが、どういう意味なんだ?
0319NAME IS NULL
2009/01/06(火) 21:48:23ID:???xrea?
0320NAME IS NULL
2009/01/06(火) 21:51:36ID:???それはローカルホスト。
0321NAME IS NULL
2009/01/06(火) 23:30:00ID:???>>313 = >>314 = >>316 = >>317 = >>318 = >>320 なのか?
もしそうなら環境や状況の説明をなるべく小出しにしないように願いたい。
0322NAME IS NULL
2009/01/06(火) 23:38:04ID:???0323NAME IS NULL
2009/01/06(火) 23:44:57ID:???警察に通報しました。
0324NAME IS NULL
2009/01/06(火) 23:55:53ID:???デフォルトでNULLになってんだ?
データーつっこめねえじゃねえか!
0325NAME IS NULL
2009/01/07(水) 00:12:11ID:??????
0326NAME IS NULL
2009/01/07(水) 02:33:56ID:???0327NAME IS NULL
2009/01/07(水) 05:06:17ID:???0328NAME IS NULL
2009/01/07(水) 18:50:34ID:???警察に通報しました。
0329NAME IS NULL
2009/01/07(水) 18:51:17ID:???データーは入力できないのか?
0330NAME IS NULL
2009/01/07(水) 20:55:57ID:???NULLって指定できるけど、これはどういう意味があるんだ?
0331NAME IS NULL
2009/01/07(水) 21:17:47ID:???この画面で、Nullって設定項目があるけど、
Nullとnot nullと、必ずどちらかを選ばないと
いけないのか?
「どちらにもしない」
っていうのはできないの?
0332NAME IS NULL
2009/01/07(水) 22:11:23ID:???ってベンチマークなのか?
0333NAME IS NULL
2009/01/07(水) 22:25:28ID:???「NULLも格納できる」
って意味?
NULLも格納できるし、
NULLじゃない、普通の値も格納できるし。
って理解でいい?
0334NAME IS NULL
2009/01/07(水) 22:26:27ID:???nullはその逆で、値としてnullも有り。
という意味ではないの?
0335NAME IS NULL
2009/01/07(水) 22:40:01ID:???うんうん、そうだよねえ。
最近やっと意味がわかってきた。
0336NAME IS NULL
2009/01/07(水) 23:31:16ID:???ってか、SQLite以前の話じゃないか。デフォルトがNULLってどのDBでも同じだ。
0337NAME IS NULL
2009/01/07(水) 23:49:58ID:???0338NAME IS NULL
2009/01/08(木) 00:41:28ID:???0339NAME IS NULL
2009/01/08(木) 03:28:07ID:???SQL文が自動生成されると楽しいね
自分で一生懸命考えて書かなくていいから。
ソースコード自動生成みたいで。
そんで、ちょこっと変更してSQL文実行してみると
さらに楽しさ倍増。
0340NAME IS NULL
2009/01/08(木) 12:20:22ID:???このページに
「phpをコンパイルする際、sqliteを組
み込んだバージョンとsqliteのCUIコマ
ンドツールのバージョンが一致してい
ないとまずい現象が発生します。」
と書いてあるのだが、これを一致させるには
どうしたらいいんだ?
0341NAME IS NULL
2009/01/08(木) 15:34:23ID:???CUI と同じバージョンを組み込むようにコンパイルすればおk
0342NAME IS NULL
2009/01/08(木) 17:44:15ID:aeUdS6P9DB使うの初めてとか。
0343NAME IS NULL
2009/01/08(木) 18:06:32ID:???普段RDBMS使ってる人が、手もとのプログラムの設定ファイルとかでもSQL使いたい場合とか。
0344NAME IS NULL
2009/01/08(木) 19:24:27ID:???そもそもCUIのバージョンを確認するには
どうしたらいいんだろう?
MS-DOSプロンプトでsqlite3って打って、
出てきた数字がCUI版のバージョン番号と
いうことでいいのかな?
0345NAME IS NULL
2009/01/08(木) 20:58:56ID:???pdo_sqliteが使っているSQLite3のバージョンは php --ri pdo_sqlite で、
CLIのsqlite3のバージョンは sqlite3 -version で調べられる。
でも、SQLiteは古いバージョンのバイナリが入手しづらいし
Windows環境で自前でコンパイルするのは面倒なので、
WEBアプリのDBをメンテしたいだけならsqlite3コマンドを使うより
以下のようなメンテ用のスクリプトを手動で実行した方が無難だと思う。
<?php
$db = new PDO('sqlite:///hoge.db');
$db->exec('VACUUM');
?>
サーバと同じバージョンのPHP(pdo_sqltie)を用意して
DOS窓で php.exe -f vacuum.php みたいな感じで。
あとバックアップも忘れずに。
0346NAME IS NULL
2009/01/08(木) 21:36:43ID:???C:\xampp\php>php --ri pdo_sqlite
Extension 'pdo_sqlite' not present.
ってなります。
MS-DOSプロンプトからでなくて
phpinfoみたいので見れないですか?
0347NAME IS NULL
2009/01/08(木) 21:39:33ID:???$a=sqlite_libversion();
print $a;
?>
これを実行すると、
2.8.17
と表示されるんだが、どういう意味なんだ?
0348NAME IS NULL
2009/01/08(木) 21:53:38ID:???それはSQLite2のほう。
PHPの場合、sqliteエクステンションはSQLite2で、それとは別にsqlite3エクステンションがある。
さらにそれらとは別のPDO(pdo_sqlite)ではDSN接頭辞sqlite://がSQLite3でsqlite2://がSQLite2。
SQLite3(pdo_sqlite)を使いたいんなら、php.iniに extension=pdo_sqlite.dll を追加する。
XAMPPに入っているかどうかは知らないけど。
あなたのレベル的に、今はVACUUMとか気にせずにWebだけで使うのがいちばんな気がしないでもない。
0349NAME IS NULL
2009/01/08(木) 22:00:53ID:???わかんないいいいい
漏れにはわかんないよおおおお
0350NAME IS NULL
2009/01/08(木) 22:23:10ID:???(2)sqlite3エクステンションもある
(3)sqlite://がSQLite3
(4)qlite2://がSQLite2
(5)SQLite3(pdo_sqlite)を使いたいんなら、php.iniに extension=pdo_sqlite.dll を追加する。
(3)と(4)は知ってた。自分で調べたから。
0351NAME IS NULL
2009/01/08(木) 22:23:42ID:???$a=sqlite_libversion();
print $a;
?>
これを実行したときに、
数字が3にならなくていいのか?
0352NAME IS NULL
2009/01/08(木) 22:31:39ID:???extension=php_sqlite.dll
この2行は入ってた。
でも
extension=pdo_sqlite.dll
これはなかった。
グーグルで検索してもあんまり
情報が出てこないから、あなたのタイプミス?
それとも、名前はよく似ているけど、違う機能なの?
0353NAME IS NULL
2009/01/08(木) 23:08:01ID:???0354NAME IS NULL
2009/01/08(木) 23:29:19ID:???警察に通報しました。
拳銃を持った男達がお前の自宅にお伺いします。
0355NAME IS NULL
2009/01/08(木) 23:37:51ID:???猿に餌を与えないで><;
0356NAME IS NULL
2009/01/08(木) 23:39:23ID:???警察に通報しました。
0357NAME IS NULL
2009/01/08(木) 23:42:50ID:???ここのページに
「基本的にPHP5をインストールするときに、
configureオプション(--with-sqliteなど)とし
てSQLiteも同時に組み込んで利用できるよ
うになる。Apache friendsのXAMPPにもPHP
5が含まれているが、デフォルトで利用でき
る。XAMPPにインストールされるSQLiteは、
2008年1月現在バージョン2.8.17となっている
。」
と書いてあるが、インストールされるときに、
2.8.17
と固定されてしまったバージョンを
3系に変えるには、どうしたらいいの?
0358NAME IS NULL
2009/01/09(金) 00:07:19ID:???使うとしたら、何か問題が起こる?
例えば、PDO+sqlite3で使いたいんだけど、
その時に何か問題が起こるか?
ていうか、そもそも使えるのか?
PHPに組みこまれたsqliteが2.8.17なら、
PDOからsqlite3を使うのは無理なのではないのか?
それとも、パスが通ったところに、sqlite3のexeを
置いておけば、勝手に接続するのか?
0359NAME IS NULL
2009/01/09(金) 00:57:23ID:???やったことないので、実際どうなるかどうかはわからんけど、
・sqlite2とsqlite3は、APIもデータフォーマットも異なるらしいので、プログラム的には別のもの、と考えた方がよさそう。
・sqlite3の実行ファイルは単にsqlite3のライブラリをリンクしたフロントエンド。
・「組み込まれた」ということはつまりsqlite2/3のライブラリをリンクしてるということなので、sqlite3の実行ファイルは無関係。
0360NAME IS NULL
2009/01/09(金) 01:09:01ID:???$a=sqlite_libversion();
print $a;
?>
これを実行したときに、2と出るということは、
PHPとsqlite2系がリンクされているということだよね。
にもかかわらず、PDOでsqliteって書けば
自動的に3系が呼び出されて使われるの?
つまり、PHPの内部でリンクされているsqliteを
2から3に変更しなくてもいいってことなの?
0361NAME IS NULL
2009/01/09(金) 05:05:44ID:???0362NAME IS NULL
2009/01/09(金) 14:42:33ID:???警察に通報した。
0363NAME IS NULL
2009/01/09(金) 15:00:01ID:???5行くらいで。
で、もしそのコードが動いたら、
自分のパソコンではSQLite3が動くって
確認できるでしょ。
0364NAME IS NULL
2009/01/09(金) 20:52:29ID:???パスの情報を入力するときには
バックスラッシュで入れるんだ。
ところが、いったん認識されて、
管理画面でみると、ノーマルスラッシュに変換
されて表示されている。ふしぎ!
0365NAME IS NULL
2009/01/09(金) 23:41:17ID:???ここみたら2つとも入れないとダメなんじゃん。
だったら、そう言ってくれなきゃ。
0366NAME IS NULL
2009/01/10(土) 00:00:29ID:???0367NAME IS NULL
2009/01/10(土) 00:42:05ID:???警察に通報しました。
0368NAME IS NULL
2009/01/10(土) 00:52:46ID:???0369NAME IS NULL
2009/01/10(土) 00:59:50ID:???警察に通報しました。
0370NAME IS NULL
2009/01/10(土) 01:21:55ID:???君は Windows 環境か。なら dll なんて使わんからそんなこと知らんわ。
しかも話題が PHP じゃないか。すれ違いだろ。恥ずかし。
0371NAME IS NULL
2009/01/10(土) 01:23:21ID:???Linuxってdllって無いの?
0372NAME IS NULL
2009/01/10(土) 01:43:50ID:???もう相手すんなよ、半端に答えた馬鹿共
0373NAME IS NULL
2009/01/10(土) 01:53:48ID:???警察に通報しました。
0374NAME IS NULL
2009/01/10(土) 03:03:38ID:???0375NAME IS NULL
2009/01/10(土) 14:53:52ID:???警察に通報しました。
0376NAME IS NULL
2009/01/10(土) 16:49:36ID:???入れる必要がある?
0377NAME IS NULL
2009/01/10(土) 17:23:35ID:???警察に通報しました。
0378NAME IS NULL
2009/01/10(土) 17:57:37ID:???警察に通報しました。
0379NAME IS NULL
2009/01/10(土) 20:52:24ID:???0380NAME IS NULL
2009/01/10(土) 21:02:33ID:???警察に通報しました。
0381NAME IS NULL
2009/01/10(土) 21:09:45ID:???0382NAME IS NULL
2009/01/10(土) 21:14:43ID:???{
sqlite3 *db;
sqlite3_open("anatawa_daare", &db);
return wakaran;
}
0383NAME IS NULL
2009/01/10(土) 21:18:16ID:???警察に通報しました。
0384NAME IS NULL
2009/01/10(土) 22:00:11ID:???警察に通報しました。
0385NAME IS NULL
2009/01/10(土) 22:00:44ID:???これってC?
0386NAME IS NULL
2009/01/10(土) 23:25:00ID:???0387NAME IS NULL
2009/01/10(土) 23:58:11ID:???0388NAME IS NULL
2009/01/11(日) 01:32:44ID:???0389NAME IS NULL
2009/01/11(日) 04:10:54ID:???つかすごい荒れようですね
敵同士だけども…認め合ってお互いを高めあうライバルのような、そんなスレだと思って開いたが残念だ。
0390NAME IS NULL
2009/01/11(日) 05:22:02ID:????をあぼーんするだけで静かなもんだ
0391NAME IS NULL
2009/01/11(日) 09:56:17ID:???警察に通報しました。
0392NAME IS NULL
2009/01/11(日) 12:05:00ID:???*unix 系で Darwin + Xcode なら標準で、Linux 系なら管理メニューから sqlite3 関連インストールすればいけるよ。
C/C++ どちらも Ok.
sqlite3_exec("select * from tbl;", ...);
こんな感じで手軽に C/C++ から sqlite3 が扱えます。
0393NAME IS NULL
2009/01/11(日) 13:02:40ID:???0394NAME IS NULL
2009/01/11(日) 13:04:03ID:???どうして、そんなに病んでるの?
0395NAME IS NULL
2009/01/11(日) 13:09:51ID:???COBOLみたいに!
0396NAME IS NULL
2009/01/11(日) 13:47:11ID:???0397NAME IS NULL
2009/01/11(日) 17:21:19ID:???そうなのか。で、COBOL(遠い目)って現役?
だけど sqlite は sql 始めるのにいいよね。
>>396
レベル上げたレスしてくれたらいいじゃないかい。期待してます。って、目的持ってない人にはどうしようもないか。。
0398NAME IS NULL
2009/01/11(日) 18:52:14ID:???よくめんどい奴だって言われるだろw
0399NAME IS NULL
2009/01/11(日) 19:52:19ID:???(2)MySQLはInnoDBとかデーターベースの種類を選択しなければならないのがめんどくさい
(3)MySQLは変数の型を指定しなければならないのがめんどくさい
(4)MySQLはサーバー名(localhostとか)を指定しなければならないのがめんどくさい
(5)MySQLは無料のレンタルサーバーにPDOのドライバが入っていないのがめんどくさい
0400NAME IS NULL
2009/01/11(日) 19:52:52ID:???できないの?
0401NAME IS NULL
2009/01/11(日) 20:08:16ID:???なんで検索しないの?馬鹿なの?死ぬの?
0402NAME IS NULL
2009/01/11(日) 20:14:36ID:???だってオートインクリメントを設定する項目がないんだよ
0403NAME IS NULL
2009/01/11(日) 20:46:36ID:???0404NAME IS NULL
2009/01/11(日) 21:26:38ID:???0405NAME IS NULL
2009/01/11(日) 21:30:35ID:???相手しないように。
0406NAME IS NULL
2009/01/11(日) 21:52:34ID:???>>399
それは MySQL に限らないと思うんだがなぁ。
0407NAME IS NULL
2009/01/12(月) 02:17:06ID:???0408NAME IS NULL
2009/01/12(月) 05:07:13ID:???0409NAME IS NULL
2009/01/12(月) 05:14:50ID:???0410NAME IS NULL
2009/01/12(月) 05:14:54ID:???0411NAME IS NULL
2009/01/12(月) 22:15:45ID:???0412NAME IS NULL
2009/01/13(火) 19:06:08ID:???SQLite では,フィールドを INTEGER PRIMARY KEY
にして INSERT の際にそのフィールドに値を与えない
と同じような挙動になります。
やっぱりオートインクリメントないんじゃん。
0413NAME IS NULL
2009/01/13(火) 19:08:04ID:???「先日悩んでいた、SQLiteのPRIMARY KEYの自動採番(オートインクリメント)が出来ない件は、
どうやらCREATE TABLEの時に、id INTEGER PRIAMRY KEY,…のINTEGERの記述が抜けていたようです。
なんでかっていうと、SQLiteはデータ型を決めなくてもよいので、
めんどくさがりの僕は記述してなかったんですね。
-----------------------------------------------------------
↑これってどういう意味だ?
0414NAME IS NULL
2009/01/13(火) 19:09:42ID:???「SQLiteで自動でインクリメントするカラムを定義するには
「カラム名 INTEGER PRIMARY KEY」
という風にしてCREATE TABLEします。下が例に
なります。下の例ではカラム名IDXという名前のオ
ートインクリメントされるカラムを定義しています。下
のサンプルで作成されたテーブルにINSERTすると
IDXは自動でインクリメントされていきます。インサー
トするたびに1,2,3・・・と勝手にインクリメントされ
るわけです。」
このやり方でいいのか?
0415NAME IS NULL
2009/01/13(火) 19:38:37ID:???0416NAME IS NULL
2009/01/13(火) 19:45:14ID:6eOf4Dgo正確な定義としては間違っているが、一般的な用法としておそらくそれでいいと
答えていいような気がする。
スキーマを見せて頂ければもう少し具体的に述べることができるかもしれない。
0417NAME IS NULL
2009/01/13(火) 20:32:17ID:???警察に通報しました。
0418NAME IS NULL
2009/01/13(火) 21:43:14ID:???君の頭の構造(程度)がわからない。
auto incrimental は出来るだろ?
Primary Key は重複するコードを持たない。その副産物が auto incrimental な挙動として現れる。
それはそうと SQLite3 入門でも買ったらどう?
ここ何日も悩んでる?内容はそこにあるよ。
それと >>417 のように直ぐ切れない。カッカするのはカルシュウム不足かい。
0419NAME IS NULL
2009/01/13(火) 21:44:47ID:???オートインクリメントはできるけど
そのやり方が隠しコマンドなんだよ!
0420NAME IS NULL
2009/01/13(火) 21:48:57ID:???それにいってることもおかしい。
1の次に1を入れようとしたら、
「重複できないから、自動的に2になる???」
そんなわけがない。
Null許容だったら自動的にNULLになるし、
Null不可だったらエラーになる。
「重複できないから」
という理由で自動的に数字がインクリメントされるということはない。
実際に試してみると良い。
これだから理論物理学者は困る。
0421NAME IS NULL
2009/01/13(火) 21:51:51ID:???自分の頭の程度は、偏差値65.
上位15%くらい。覚えておけ。
0422NAME IS NULL
2009/01/13(火) 23:41:16ID:???か、隠しコマンドぉ? これは command では無いのだがなぁ・・・
>>420
論理物理学者?・・・・なんじゃそれ。
だ〜か〜らぁ SQLite3 入門から読みなされ。
SQLite3 がそのように説明してある。実験的に見いだした結論ではない。君の頭は大丈夫かい。どうでもいいけど、なんか恥ずかしいぞ、おまえ。
そもそも、auto incremantal その物を実装したいのかい?
君が DB の勉強をしていく中で、今の悩みはなんだったんだろうと気がつくだろう。そんな程度のものだ。
途中で delete したらそこから renumber でもし直すのかい?
>>421
へ、偏差値65ぉ?
おいおい、君のは変態値の間違いだろ。不覚にもお腹がよじれるほど笑ってしまったぞっ!
0423NAME IS NULL
2009/01/14(水) 00:00:46ID:???結局これが一番わかりやすい
「PHP のマニュアルの sqlite_last_insert_rowid の項目を見ていたら
Tip: You can create auto-increment fields in SQLite by declaring them as INTEGER PRIMARY KEY in your table schema.
つまり,SQLite で auto-increment なフィールドを作りたければ,
INTEGER PRIMARY KEY
を指定してあげればいいらしい.」
0424NAME IS NULL
2009/01/14(水) 00:01:20ID:???「オートインクリメント」って項目があって、
それをポチってすればオートインクリメントになるんだよ!
0425NAME IS NULL
2009/01/14(水) 00:05:54ID:???0426NAME IS NULL
2009/01/14(水) 00:51:38ID:???上位100件以下のデータを削除する、というクエリはありますでしょうか?
0427NAME IS NULL
2009/01/14(水) 01:13:34ID:???1番から100番だけ残して、
101以降をデーターベースから削除したいってこと?
0428NAME IS NULL
2009/01/14(水) 01:16:40ID:???ROWID
0429NAME IS NULL
2009/01/14(水) 01:16:48ID:???0430NAME IS NULL
2009/01/14(水) 01:29:39ID:???はい。101番以降を削除したい次第です。
>>428
ROWIDはSELECT結果ごとに変わるのですか?
ちょっと試してみます。
>>429
ぬぉ…
試してみます。。。
tblの後のt1とt2はAS t1/t2と同義でしょうか?
0431NAME IS NULL
2009/01/14(水) 01:41:43ID:???(1)データーを全部新規テーブルAにコピーする
(2)数値でソートする
(3)1−100までだけを新規テーブルBにコピーする
(4)Aを削除
(5)Bのデーターを表示
ってやるけど。それを1行でできると?
0432NAME IS NULL
2009/01/14(水) 02:12:32ID:???>>431
お前ら自己結合すらやった事ないのか
0433NAME IS NULL
2009/01/14(水) 02:18:36ID:???SQLiteに限らずASを省略できる処理系は他にもあったような気がします。
新規テーブルでいいなら
create newtbl as select * from oldtbl order by col limit 100;
が圧倒的に楽
0434NAME IS NULL
2009/01/14(水) 02:23:30ID:???しつこくオートインクリメント。
英語なのでちょっと読むの難しい。
大半はわかるけど。
以下、わからない単語
monotonically
0435NAME IS NULL
2009/01/14(水) 02:24:22ID:???何もしなくても勝手に作成されるものなのか?
0436NAME IS NULL
2009/01/14(水) 02:34:06ID:???delete from tbl where pk not in (select pk from tbl order by col limit 100);
の方が良いな。
0437NAME IS NULL
2009/01/14(水) 02:58:57ID:???トラップなの?
トラップの解除に失敗すると毒針とか出てくるの?
0438NAME IS NULL
2009/01/14(水) 08:18:53ID:???0439NAME IS NULL
2009/01/14(水) 08:45:49ID:VPcjltWYSQLite3においてINT型はINTERN型と同等でありINTFLOAT型とも同等です。
ただし、INTEGER型とINT及び同等の型の間には文脈によって異なる解釈が
与えられる場合があります。
常にすべてを同等と見なしたい場合、INTEGERの使用を推奨します。
fusianasanして頂ければもう少し詳しく説明できるかもしれません。
0440NAME IS NULL
2009/01/14(水) 10:28:11ID:???0441NAME IS NULL
2009/01/14(水) 18:00:32ID:???0442NAME IS NULL
2009/01/14(水) 18:19:26ID:???使えるよ。
0443NAME IS NULL
2009/01/14(水) 18:20:18ID:???同等なのはあるだろ
0444NAME IS NULL
2009/01/14(水) 22:43:07ID:???0445NAME IS NULL
2009/01/15(木) 11:42:19ID:???0446NAME IS NULL
2009/01/15(木) 12:04:22ID:???>>443
>>444
の言うDESCです
0447NAME IS NULL
2009/01/16(金) 12:46:47ID:???0448NAME IS NULL
2009/01/16(金) 15:15:43ID:???0449NAME IS NULL
2009/01/16(金) 17:12:17ID:ef3YrRBw明示的に削除するまで有効です。
DBを閉じる前に削除する必要があります。
0450NAME IS NULL
2009/01/16(金) 20:26:13ID:???float 浮動小数点型
intloat型って・・・あるとしたら凄いなぁ。
0451NAME IS NULL
2009/01/16(金) 21:19:08ID:???integer型は、
明確に違うものですよね?
0452NAME IS NULL
2009/01/16(金) 23:19:19ID:???根拠ぷりーず・・・全くもって意味不明なんですけど。
0453NAME IS NULL
2009/01/17(土) 03:09:34ID:???それと同じ動作を期待してintにしても、
オートインクリメントにはならない!
0454NAME IS NULL
2009/01/17(土) 03:51:39ID:Eb0rf+3bintloat型はあります。
特別目を引いた面白い型はINTEL型です。
これは数値型だそうです。
>>451
内部的に同じものです。
文脈によって評価が変わります。
構文解析機を作る根性が足りなかったとも言えます。
逆に根性出してもらって複雑にされるのも困りますね。
このくらいの状態が一番いいバランスだと思います。
0455NAME IS NULL
2009/01/17(土) 13:05:28ID:???変に追いコンだのかもしれない。型は私たちの都合のいい解釈をするもの。
誤解を恐れず言えば、SQlite に型はない。Integer 型に文字を入れることも可能。
create table tbl (i1 integer,t1 text);
insert into tbl values('seisu', 'moji');
>>451
int型とinteger型が違うと執着するのは、型が厳密な言語をこれまで使ってきた人?ということ。
c/c++でいえば short int, int(曖昧), long int のように整数型であっても扱える範囲が変わる。そういう世界から見ると SQlite の有るようで無い曖昧な型は気持ち悪いのかもしれない。
0456NAME IS NULL
2009/01/17(土) 13:19:32ID:???で、SQLiteのスキーマの型は普通のSQLとの字面上の互換性のためにありますよ、と。
0457NAME IS NULL
2009/01/17(土) 14:55:02ID:???0458NAME IS NULL
2009/01/17(土) 22:53:52ID:Eb0rf+3b不思議なことをいう人ですね。
SQLite3以降は型がありますよ。
0459NAME IS NULL
2009/01/17(土) 22:59:24ID:Eb0rf+3bむしろ逆です。
SQLiteとの互換性のために自動的な型変換が必要になっています。
0460NAME IS NULL
2009/01/18(日) 00:31:22ID:???不思議な事をいって申し訳ないねぇ
君がいう「型があるよ」レベルの話はなぁ。私が言わんとしたことが君に理解できていないと見た。
>>459
sqlite(3以前?)の為に必要になっているだって!?。本当かよ。
あまり突っ込んで追いつめたくは無いが、自動型変換というからにはそれぞれの型にスタイルがあって相互に変換されるという事を言ってるんだよね?、・・・だよね?
多くを挙げなくていいからさ。一例で説明できるものある?(こんなことすると荒れちゃうかな?)
0461NAME IS NULL
2009/01/18(日) 00:52:41ID:P8JelzjMfusianasanして頂ければもう少し詳しく説明できると思います。
0462NAME IS NULL
2009/01/18(日) 01:24:43ID:???おいおい、勘弁してくれよ。fusianasan に誘うとは。
そうか、君はツリちゃんだったのか。
0463NAME IS NULL
2009/01/18(日) 01:29:12ID:P8JelzjM釣りではありません。
ここから先は対価が必要ということです。
おそらくあなたは自分の知識が正しいと信じていることでしょう。
そして無知を諭してくれる人もいないでしょう。
無知を諭す役を私がやって差し上げようと。
そしてそれに対価を求めたのです。
私はあなたのママではないのですから。
0464NAME IS NULL
2009/01/18(日) 01:42:47ID:???0465NAME IS NULL
2009/01/18(日) 02:29:04ID:???0466NAME IS NULL
2009/01/18(日) 02:55:22ID:???ここでなんか文句言ってる人がいるけど、
これってファイルロックかけてないから?
0467NAME IS NULL
2009/01/18(日) 03:04:19ID:???「sum()などの関数を使うと自動型変換で型識別に失敗して落ちる」
↑これってマジ?
0468NAME IS NULL
2009/01/18(日) 03:06:06ID:???--
↑これでコメントできなくない?
エラーになるんだけど。
0469NAME IS NULL
2009/01/18(日) 09:46:20ID:???処で SQLite3 をどういう環境で使ってる?
君ってどうも生では使ってそうにないねぇ。Ruby?, Rails?
だとしから、かなり話はかみ合わないわ。
0470NAME IS NULL
2009/01/18(日) 13:08:47ID:???0471NAME IS NULL
2009/01/18(日) 18:04:28ID:???0472NAME IS NULL
2009/01/18(日) 20:24:39ID:???ああ、最後にセミコロンが必要なんだっけ?
でもパーレンは必要ないでしょう?
だから、
--;
だけで、動きますよね?
0473NAME IS NULL
2009/01/18(日) 20:46:27ID:???--だけで動いてるよ。
0474NAME IS NULL
2009/01/18(日) 22:20:27ID:???0475NAME IS NULL
2009/01/18(日) 22:44:33ID:???でもこっちの環境ではエラーになるんだけど?
0476NAME IS NULL
2009/01/18(日) 22:55:33ID:???0477NAME IS NULL
2009/01/18(日) 23:52:03ID:???それくらい推測しろぼけ
0478NAME IS NULL
2009/01/19(月) 00:12:16ID:???今度それ客に言ってみるわ
0479NAME IS NULL
2009/01/19(月) 01:02:29ID:???そりゃ客が言う台詞だろ
客に言って成り立つかぼけ
0480NAME IS NULL
2009/01/19(月) 02:36:34ID:???0481NAME IS NULL
2009/01/22(木) 20:23:04ID:???0482NAME IS NULL
2009/01/22(木) 22:04:51ID:???0483NAME IS NULL
2009/01/22(木) 22:18:44ID:???SQLiteを使った面白いアプリとかないの?
0484NAME IS NULL
2009/01/22(木) 23:05:24ID:???つFirefox
0485NAME IS NULL
2009/01/22(木) 23:11:04ID:???0486NAME IS NULL
2009/01/23(金) 19:45:02ID:???カタロム
0487NAME IS NULL
2009/01/26(月) 11:27:25ID:???これってどうやって設定するの?
0488NAME IS NULL
2009/01/26(月) 14:48:39ID:???0489NAME IS NULL
2009/01/27(火) 06:53:01ID:???デフォルトでは0秒しか待たない、つまり
トランザクションを確保しようとして、ロックを取りにいったところ、
もし先客がいたら、0秒でdatabase is lockedになってしまう。
それなので、timeoutを5秒とかに設定するんだけど、
それってデーターベースそのものの設定で、そういう風に設定
できるの?できないの?
もしできないとしたら、一回ごとに、timeoutの設定文を
すべてのソースコードに書かないといけないの?
それで、database is lockedになったときの処理は
try catch文でエラーを補足して、自分で処理を書かないといけないの?
0490NAME IS NULL
2009/01/27(火) 08:06:10ID:DP9yL1U90491NAME IS NULL
2009/01/27(火) 09:51:35ID:???久しぶりに見る。
0492NAME IS NULL
2009/01/27(火) 12:25:33ID:???排他処理だなんだと複雑なことやりたければ、自分で処理を書く。
それが嫌ならMySQLとかのdaemonが動いているDBMSを使う。
0493NAME IS NULL
2009/01/27(火) 16:47:25ID:???現在JavaでSQLiteDBを利用しています。
その中で、1つのSQL内で二つのDB(それぞれA、Bとします)を参照することになりました。
以下概略です。
Class.forName(org.sqlite.JDBC);
Connection conn=DriverManager.getConnection(jdbc:SQLite:[DB Aの場所]);
String sql="select A.hoge B.hage from [A内のテーブル] A
left outer join [B内のテーブル] B
where 条件";
これで
java.sql.SQLException: near "B": syntax error
というエラーが出ました。
恐らくBを参照できないことによるエラーだと思われるのですが、どこをどのように直すべきでしょうか?
0494NAME IS NULL
2009/01/28(水) 00:26:54ID:???参考になるページ知ったら教えて。
0495NAME IS NULL
2009/01/28(水) 00:59:23ID:???0496NAME IS NULL
2009/01/28(水) 04:55:23ID:7HXPt6Ry0497NAME IS NULL
2009/01/29(木) 14:44:10ID:???あれば紹介してください。英語でも良いです。
0498NAME IS NULL
2009/01/30(金) 01:47:45ID:???総本山のフォーラムより
testlinqってプロジェクトファイルが、ソースコードと一緒についてくるから、それ使ったらどう?
だって。
ttp://sqlite.phxsoftware.com/forums/p/1264/5375.aspx#5375
0499NAME IS NULL
2009/01/30(金) 17:11:10ID:???今見たら状態遷移図になっててびびった。
以前の BNF のに戻してくれー!
0500NAME IS NULL
2009/01/30(金) 17:22:26ID:???BNFのパースを頭でやる時代は終わったんだよ
0501NAME IS NULL
2009/01/30(金) 17:26:28ID:???0502NAME IS NULL
2009/01/31(土) 01:05:52ID:???0503NAME IS NULL
2009/01/31(土) 09:54:08ID:???ありがとう。
そのフォーラムには自分もたどり着きました。
それ以前にEntity Frameworkのインストールに手間取ってましたが、
ようやく環境が整ったのでじっくり読んでみます。
LINQおもしろいね。
0504NAME IS NULL
2009/02/11(水) 18:11:41ID:fk2Zdes0SQLite3
・テーブルデータ
【マスタテーブル】(idが主キー)
id name kana publication # Catalog // 同人誌マスタ
--------------------------- # publicationはEvent(id)を参照
01 AAAA aaaa 02
02 BBBB bbbb 02
id circle kana ext comment # Circle // サークルマスタ
------------------------------ # UNIQUE(circle,ext)
01 ・・・・・・ ・・・・ ・・・ ・・・・
02 ・・・・・・ ・・・・ ・・・ ・・・・
id title # Title // 原作マスタ
--------- # UNIQUE(title)
01 ・・・・・
02 ・・・・・
id attribute # Attribute // 属性マスタ
------------- # UNIQUE(attribute)
01 ・・・・・
02 ・・・・・
id event year month day place host # Event // イベントマスタ
---------------------------------------- # UNIQUE(event,year,month,day)
01 ・・・・・ ・・・・ ・・・・・ ・・・ ・・・・・ ・・・・
02 ・・・・・ ・・・・ ・・・・・ ・・・ ・・・・・ ・・・・
【1:N関係テーブル】
id author kana # Author // 作家リレーション
---------------- # UNIQUE(id,author),idはCatalog(id)を参照
01 ・・・・・ ・・・・
02 ・・・・・ ・・・・
02 ・・・・・ ・・・・
【N:N関係テーブル】
id cid # Publisher // サークルリレーション
------- # UNIQUE(id,cid),idはCatalog(id)を参照,cidはCircle(id)を参照
01 01
02 01
id tid # Original // 原作リレーション
------- # UNIQUE(id,tid),idはCatalog(id)を参照,tidはTitle(id)を参照
01 01
01 02
02 02
id aid # Property // 属性リレーション
------- # UNIQUE(id,aid),idはCatalog(id)を参照,aidはAttribute(id)を参照
02 01
02 02
(本文が長すぎます&改行が多すぎますと怒られたので一旦区切ります)
0505NAME IS NULL
2009/02/11(水) 18:12:12ID:???0506NAME IS NULL
2009/02/11(水) 18:42:46ID:???0507NAME IS NULL
2009/02/11(水) 20:27:03ID:???自動的にデーターベース全体がロックされるの?
0508NAME IS NULL
2009/02/11(水) 21:29:44ID:???IEだと動くけど、firefoxだと動かない機能あるよね?
0509NAME IS NULL
2009/02/12(木) 03:18:28ID:???0510NAME IS NULL
2009/02/12(木) 03:25:59ID:???0511NAME IS NULL
2009/02/12(木) 04:28:39ID:???0512NAME IS NULL
2009/02/12(木) 14:41:44ID:???こいつマジで入院させたほうがいいだろwww
0513NAME IS NULL
2009/02/12(木) 17:09:16ID:???0514NAME IS NULL
2009/02/12(木) 17:11:54ID:???0515NAME IS NULL
2009/02/12(木) 21:43:11ID:???0516NAME IS NULL
2009/02/12(木) 22:30:07ID:???64bit版のODBC driverの所在をご存じの方は教えてください。
0517NAME IS NULL
2009/02/12(木) 23:30:24ID:???0518NAME IS NULL
2009/02/13(金) 00:25:42ID:???32bit版のドライバ使えると思うよ
c:\windows\syswow64\odbcad32.exeとか無いかね?
0519NAME IS NULL
2009/02/13(金) 06:40:42ID:CR/0GMDjロックはファイル全体に対してかかります。
ただし、読み込み中に読み込みが出来ないというようなことはありません。
また、SQLiteはデータベースファイルのセマンティクスが他とは違います。
ファイル全体がロックの対象になることによるパフォーマンスの低下は
ほとんどありません。
ご安心ください。
0520NAME IS NULL
2009/02/13(金) 07:17:40ID:???0521NAME IS NULL
2009/02/14(土) 12:35:13ID:???これってなんだろう??
0522NAME IS NULL
2009/02/15(日) 18:30:00ID:pRsX6A8kPHPです
どっかおかしいのかな…
0523NAME IS NULL
2009/02/17(火) 00:23:32ID:???0524522
2009/02/17(火) 00:41:15ID:???updateの方がディスクのアクセスが少なく、早いのかなと…。
今まで、sqlでも小規模なデータしか扱ったことが無かったので、良く理解できて無かったみたいです。
読み込む時でも、複雑なsql文で絞ったりするより、単純なsql文を投げて大きく取った方が、結果的に早いみたいですね。
散々チューニングして遅くしてましたorz
0525NAME IS NULL
2009/02/17(火) 03:16:02ID:dbh1k8JSたしかにUPDATEのほうが速くていいはずなんですよね。
参考までに、どの程度の規模のデータベースで何をしようとしたのか教えて
頂けませんか?
あなたの得になることは何もないので申し訳ないのですが。
0526524
2009/02/17(火) 04:35:02ID:???データを残してなくて正確なことはアレなのですが、
カラム数5のテーブルt、レコード総数はその時点で5000件ぐらいだったと思います。
その内カラムc1がxであるレコードが500程。
方法1
BEGIN
DELETE FROM t WHERE c1 = 'x'
INSERT … を500回くらい
COMMIT
方法2
BEGIN
UPDATE … 何回か(500くらい)
DELETE … 何回か(50くらい)
COMMIT
※UPDATEとDELETEの順番はランダム。入れ替わり立ち替わり。
※UPDATEもDELETEもWHERE句はANDのペア一個。ペアの片方は c1 = 'x'
※UPDATEの更新内容はINTEGERのカラムを2つ。
各数値はうろ覚えです…
この状態で計測した所、方法2が方法1の5倍くらいの時間でした。
どなたか確認していただけると助かります。
0527526
2009/02/17(火) 04:40:41ID:???sqlite2.1
php5です。
0528NAME IS NULL
2009/02/17(火) 06:04:13ID:???チューニングはその1万倍くらいの規模になってから考えればいいよ
正直、やるだけ無駄
0529NAME IS NULL
2009/02/17(火) 06:06:42ID:dbh1k8JSなんてことはありませんか?
0530526
2009/02/17(火) 07:09:10ID:???約1分に一回くらいこの処理をしているので…。
遅い方にした時はかなりなボトルネックになりました。
>>529
そこは大分確認しました。
一応、後でもう一度きちんとデータを取ってみようと思います。
0531NAME IS NULL
2009/02/17(火) 07:19:00ID:dbh1k8JSそうですか。
ではちょっと確認してみますね。
とりあえず5000件のランダムデータを書き込んでみたんですけど、
BEGIN〜ENDで囲まないと1分近くかかって驚いたのですが、トランザクション
内ではミリ秒単位ですね。
ずいぶんな差が出て驚きました。
いろんな意味で。
0532NAME IS NULL
2009/02/17(火) 07:27:41ID:dbh1k8JS0533NAME IS NULL
2009/02/17(火) 07:53:42ID:dbh1k8JSUPDATEにかかった時間: 0'16''
初期化にかかった時間: 0'15''
DELETE INSERTにかかった時間: 0'16''
5000件中の500件程度では全く変わりませんね。
というか、15ミリ秒程度だと、負荷を気にする意味が感じられませんでした。
使用言語C++
プラットフォームWin32
テストデータはrand()で生成。
0534NAME IS NULL
2009/02/17(火) 08:08:07ID:dbh1k8JS初期化にかかった時間: 1'500''
DELETE INSERTにかかった時間: 0'609''
初期化にかかった時間: 2'4294966765''
UPDATEにかかった時間: 0'578''
これもほとんど変わらないですね。
0.5秒程度まで来ると少しでも速くしたいと思いますね。
しかし、5万件の更新ですから時間がかかるのも致し方ないとも思いま
す。
5万件の更新と言えば、1日一回夜間に行う程度のものでしょう。
初期化にかかった時間は50万件の挿入ですからIOの状態によって時間が
変わってしまうようです。
平均して1秒台半ばでした。
逆に、UPDATEがDELETE-INSERTと比較して時間が変わらないというのは、
現在の実装はまだ改良の余地があるのかもしれません。
0535NAME IS NULL
2009/02/17(火) 08:26:47ID:???0536NAME IS NULL
2009/02/17(火) 08:35:03ID:dbh1k8JS自分で書いておきながら数字の読み方間違ってました。
0.015秒じゃなくて、0.15秒。
15ミリ秒じゃなくて150ミリ秒。
件数が大幅に増えても所要時間はあまり変わっていないことになりますね。
全データ量と更新するデータ量が100倍に増えても所要時間は数倍程度でした。
検索ではなく更新に要した時間だということに気を付けてください。
もしかするとSQLiteってかなり使えるかもしれないです。
>>535
だとすると、PHPはCより速いってことにならないですか?
0537NAME IS NULL
2009/02/17(火) 08:39:51ID:dbh1k8JS50万件中の5万件更新で0.6秒程度。
思っていたよりパフォーマンスがいいと思います。
0538NAME IS NULL
2009/02/17(火) 09:40:15ID:dbh1k8JS5000万件中の500万件更新
初期化にかかった時間: 160'891''
UPDATEにかかった時間: 80'172''
初期化にかかった時間: 165'250''
DELETE INSERTにかかった時間: 63'312''
1億件中の1000万件更新
初期化にかかった時間: 333'4294967233''
UPDATEにかかった時間: 196'4294966609''
初期化にかかった時間: 343'375''
DELETE INSERTにかかった時間: 166'429''
さすがに時間がかかります。
とはいえ、1億件のデータを挿入して1000万件を更新しても数分です。
これはすごい。
確かにデータ量が多くなるにつれはっきりとUPDATEのほうが遅くなって
きますね。
0539NAME IS NULL
2009/02/17(火) 11:39:08ID:???0540NAME IS NULL
2009/02/17(火) 12:42:42ID:???0541530
2009/02/17(火) 13:32:14ID:???多分純粋にexecのみの時間が取れていると思います。
PHP5、sqlite2.1、レコード総数は5000弱です。
function _exec($q) {
$t0 = microtime(true);
$result = sqlite_exec($this->dbh, $q); // ←の1行を計測
$this->keisoku_t += microtime(true) - $t0;
print (round($this->keisoku_t, 3) . ' ' . $q . "\n");
return $result;
}
以下結果です。「累積時間 クエリ文字列\n」で出力しています。
一部の文字列をはしょっています。「○○」は固定です。
***方法1***
0.001 BEGIN
0.008 DELETE FROM tbl WHERE c1 = '○○'
0.008 INSERT INTO tbl (c1, c2, c3, c4, c5) VALUES ('○○', '[INTEGER]', '[TEXT]', '[TEXT]', '[INTEGER]')
0.008 INSERT (2回目)
・・・
0.013 INSERT (100回目)
・・・
0.034 INSERT (541回目)
0.260 COMMIT
***方法2***
0.001 BEGIN
0.009 UPDATE tbl SET c2 = '[INTEGER]', c5 = '[INTEGER]' WHERE c1 = '○○' AND c3 = '[TEXT]'
0.012 UPDATE (2回目)
0.021 UPDATE (3回目)
・・・
0.392 UPDATE (100回目)
・・・
2.223 UPDATE (541回目)
2.412 COMMIT
10倍も差が出てしまった・・・
0542NAME IS NULL
2009/02/17(火) 13:49:29ID:???そりゃクエリの数が違うべ。
DELETEは一回ですんでるけどUPDATEはそのたびにクエリ発生してるじゃないか。
0543541
2009/02/17(火) 14:04:33ID:???>>535のように
UPDATE = INSERT + DELETEのクエリが発生しているってことでしょうか?
だとすれば大体納得がいきますね。
0544NAME IS NULL
2009/02/17(火) 14:09:19ID:dbh1k8JShttp://77c.org/d.php?f=nk6053.zip
0545NAME IS NULL
2009/02/17(火) 14:13:02ID:dbh1k8JS0546NAME IS NULL
2009/02/17(火) 14:20:53ID:dbh1k8JS初期化時間の欄は挿入に要した時間です。
0547NAME IS NULL
2009/02/17(火) 14:41:40ID:???つーかWHEREの回数
0548NAME IS NULL
2009/02/17(火) 14:52:09ID:dbh1k8JShttp://77c.org/d.php?f=nk6054.zip
受信キー SQLite
0549543
2009/02/17(火) 14:56:20ID:???インデックスがあってもUPDATEは若干早くなる程度みたいですね。
DELETE INSERTとUPDATEの時間がほぼ同じなのは興味深いです。
件数が一番多いのは時間が跳ね上がってますね・・・
>>547
ぁああ!確かに
そりゃ遅いですねorz
0550NAME IS NULL
2009/02/17(火) 15:06:34ID:dbh1k8JS>>548も見てください。
意外ですよね?
これは結構チューニングノウハウがあるのかもしれないです。
疑問を提起してくださって感謝です。
> 件数が一番多いのは時間が跳ね上がってますね・・・
まあ、一億件ですから。
I/Oも高い時で100MB/s軽く超えてました。
かなり効率よくI/Oを使っているのだと思います。
実際にこんな件数入れることは無いと思います。
>>548で件数を減らしてデータ量を上げてみたら逆転したんですよね。
0551549
2009/02/17(火) 15:22:51ID:???・DELETEやUPDATEはWHERE句によるシークがあり、クエリを投げる度にシークのロスが生じる。
・INSERTは追加するだけなのでシークによるロスが無い。
→DELETEやUPDATEはINSERTに比べて遅い。
→なので、DELETEやUPDATEの回数は出来るだけ少なくなるようにする。
ただし、INSERTを多用する場合と、UPDATEが少しの場合を置換できる時は、
後者の方が早くなる場合もある。
こんな理解で合ってますでしょうか・・・
>>550
文字列のバイト数に対する時間が、リニアでない(2次曲線的な?)増え方をしてますね。
レコード件数でも恐らくこの増え方だろうと思うのですけど、
この増え方が、SQLiteが大規模運営に向かない理由になるのかも知れませんね。
0552NAME IS NULL
2009/02/17(火) 15:32:33ID:dbh1k8JS> ませんね。
1000万から1億件を扱うデータベースで100万から1千万件の更新に数分
かかるのが問題ならそうなりますね。
おそらくSQLiteの処理にかかる時間より更新するデータを用意する時間
のほうが大きいと思いますが。
おそらくどのような場合でもDELETE-INSERTを使うべきなのだと思います。
今回の実験でUPDATEにメリットは見いだせませんでした。
0553NAME IS NULL
2009/02/17(火) 15:51:36ID:???それにリレーションの関係で消せなかったりする場合もあるから、常にDELETEINSERT
というわけにもいかないでしょう。
0554NAME IS NULL
2009/02/17(火) 20:43:14ID:???INSERT できるってことは元のデータを知ってないといけなくて、
例えば、住所録で電話番号を変更しようとしたら、
A. UPDATE 方式
A.1. UPDATE で当該行の電話番号を変更
B. DELETE-INSERT 方式
B.1. SELECT で電話番号以外のカラムを取得
B.2. DELETE で当該行を削除
B.3. INSERT で電話番号を含むデータを挿入
ってなるんじゃないかと思うけど、
これだと DELETE-INSERT 方式は厳しいような。
DELETE-INSERT を使うべきケースが存在し得るのは否定しないけど、
それは、一括投入可能なデータセットがあらかじめ別途用意されている、
みたいな特殊なケースなんじゃないかという気がする。
0555NAME IS NULL
2009/02/17(火) 20:56:29ID:???Bの方が速い。
0556NAME IS NULL
2009/02/17(火) 21:05:11ID:???マジで?いや、実測でそうなら納得せざるを得ないんだけど、俄には信じ難いっす。
0557NAME IS NULL
2009/02/17(火) 22:06:59ID:???使えないAPIっていやだな。
sqlite3だったら↓こういう方法もあるようだが
http://www.sqlite.org/cvstrac/wiki?p=ScrollingCursor
0558NAME IS NULL
2009/02/17(火) 22:09:43ID:???貼り間違った
http://php.net/manual/ja/sqlite3.prepare.php
0559NAME IS NULL
2009/02/17(火) 22:30:57ID:???嘘つく理由ないし。
失礼な奴だな。
0560NAME IS NULL
2009/02/17(火) 22:38:28ID:???たぶん。
速度重視なら使う理由がない。
たぶん。
0561NAME IS NULL
2009/02/17(火) 22:44:01ID:???デフォルトで挿入されたはずのNULLが<ファイルが読み込みできない>
とか妙なエラー値?になった。以上報告終わり。
0562NAME IS NULL
2009/02/18(水) 01:49:28ID:???ロールバックだけならDELETE-INSERTでも良いじゃん。
0563NAME IS NULL
2009/02/18(水) 03:14:23ID:???お手数をおかけしますが、
かわいがってあげて下さい
748 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/02/18(水) 02:09:09 0
SQLiteってどうやってデータベース作るの?
パスワードとかユーザー名とかいらないってのはわかるんだけど...
任意のデータベース名を入れるだけで動くの?どこに保存される?
0564NAME IS NULL
2009/02/18(水) 03:32:04ID:???それはたのしみだ。
0565NAME IS NULL
2009/02/18(水) 08:08:08ID:???0566NAME IS NULL
2009/02/18(水) 08:34:57ID:???>>548から察するにほぼ不可能はない。
0567NAME IS NULL
2009/02/18(水) 08:48:51ID:???0568NAME IS NULL
2009/02/18(水) 08:56:04ID:???性能は超えてると思う。
その他が負けてるけど、そこは根性でカバー。
0569NAME IS NULL
2009/02/18(水) 09:00:05ID:+e6dGg0R0570NAME IS NULL
2009/02/18(水) 12:11:31ID:???何度もガイシュツだけど、SQLiteはSQLが使えるストレージとしてみるべきもので、
同時アクセスだのとDBMS的な性能が欲しい場合、MySQLなりPostgreSQLなりを使うべき。
0571NAME IS NULL
2009/02/18(水) 12:23:50ID:???0572NAME IS NULL
2009/02/18(水) 16:46:14ID:???0573NAME IS NULL
2009/02/18(水) 22:47:55ID:???database is lockedへの対策はどうしたらいい?
0574NAME IS NULL
2009/02/19(木) 00:26:46ID:???ロックされてるんだから何の問題も無いだろ
何言ってんだ?
0575NAME IS NULL
2009/02/19(木) 01:55:18ID:0Q6cDyVQ典型的なコード例が載っているページが公式Wikiからたどれたと思う。
データベースファイルを開くにはどうしたらいいですか?ってレベルの問い
なので、否定的な文脈で書かない方がいいと思いますよ。
ほとんどの疑問について公式サイトに答えがあります。
0576NAME IS NULL
2009/02/19(木) 02:37:19ID:???0577NAME IS NULL
2009/02/19(木) 02:42:37ID:0Q6cDyVQ0578NAME IS NULL
2009/02/19(木) 03:53:34ID:???それのどこ?
0579NAME IS NULL
2009/02/19(木) 05:40:53ID:???http://www.sqlite.org/cvstrac/search?s=database+is+locked&w=1
0580NAME IS NULL
2009/02/19(木) 21:15:45ID:???ロックのタイミングについて
http://stackoverflow.com/questions/564298?sort=oldest#sort-top
0581NAME IS NULL
2009/02/19(木) 21:43:34ID:???CSV開いて、1行ずつ読んで、INSERT?
0582NAME IS NULL
2009/02/19(木) 22:58:54ID:???sqlite3_enable_shared_cache() と PRAGMA read_uncommited=1
0583NAME IS NULL
2009/02/20(金) 00:17:57ID:???できる
0584NAME IS NULL
2009/02/20(金) 22:08:13ID:???ロックを取得できるまでブロックするとかできないのかい
0585NAME IS NULL
2009/02/20(金) 23:03:36ID:????
0586NAME IS NULL
2009/02/21(土) 04:00:50ID:???0587NAME IS NULL
2009/02/21(土) 14:32:02ID:???sqlite3_busy_handler() でどうぞお好きなように実装してください
0588NAME IS NULL
2009/02/21(土) 15:54:40ID:???これ複合キーの設定できないんか
0589NAME IS NULL
2009/02/22(日) 02:41:17ID:???SQLite Database Browser
http://sourceforge.net/projects/sqlitebrowser/
使ってみた感じ、フィールドの値を更新するのに、別ウインドウにいくのがうっとおしいと思った。
0590NAME IS NULL
2009/02/22(日) 18:03:31ID:???こんなもんなんでしょうか
0591NAME IS NULL
2009/02/22(日) 18:07:48ID:???0592NAME IS NULL
2009/02/22(日) 18:13:39ID:???0593NAME IS NULL
2009/02/22(日) 22:24:13ID:???カラム数が影響してるからかもしれんが、
遅い気がする。
CPUとメモリ、使用言語は?
0594NAME IS NULL
2009/02/22(日) 22:26:50ID:???使用言語:日本語
0595NAME IS NULL
2009/02/22(日) 22:28:39ID:???テーブル設計に糞みたいなクエリを書いてるんだろう。
0596NAME IS NULL
2009/02/22(日) 22:29:34ID:???0597NAME IS NULL
2009/02/23(月) 06:23:19ID:m+7FUQBUまたベンチとってみたんだけど、インデックスはると計測不能(GetTickCount()で
同じ値が返ってきてしまう)程度に速いんだけど。
分解能がどの程度あるのか知らないけど、NT系55msって話は聞いたことあるし、
これまでも100ms程度を期待して困ったことはないから、それ以上の速さってこと
だろうと思う。
8000レコード15カラム1レコードのデータ量1.5KBで計測。
0.6秒ってどんな環境でそうなるの?
参考までに教えて頂けたらなと。
よろしくお願いします。
と、ここまで書いて気がついた。
もしかしてトランザクションがらみで遅くなってないですか?
0598NAME IS NULL
2009/02/23(月) 06:25:32ID:m+7FUQBU8000レコードから100レコードを検索、15カラム1レコードのデータ量1.5KBで計測。
0599NAME IS NULL
2009/02/23(月) 10:57:15ID:???CREATE TABLE 文とSELECT文をここに書かない限り
誰も何のアドバイスもしようがない。
JOIN や WHERE で使うカラムにインデックスはあるとか言ってるが
どのようなテーブルにどのようなインデックスがあって、それを
どのようなクエリーで使ってるかが判らなければ、そのインデックスが
有効に使われているかどうかなんて判らない。
0600NAME IS NULL
2009/02/23(月) 10:58:15ID:???1発のSELECT でトランザクションが関係あるわけねーだろ。アホか
0601NAME IS NULL
2009/02/23(月) 11:00:45ID:???お前も計測に使ったテーブル設計とクエリーを書けよ
計測対象が違うものを計測して、互いに比較する事に
何か意味があるとでも思ってるのか?
0602NAME IS NULL
2009/02/23(月) 11:04:04ID:???http://www.sqlite.org/optoverview.html
英語が読めません(泣) とか言う馬鹿は邪魔だからアクセスでも使ってろ
0603NAME IS NULL
2009/02/23(月) 12:09:58ID:m+7FUQBU一発のSELECTとは限らないので可能性として。
他の可能性としては、データベースファイルの大きさ。
0604NAME IS NULL
2009/02/23(月) 19:33:17ID:???あとはスキーマと SELECT 文を晒してもらえない限り議論のしようがない。
0605NAME IS NULL
2009/02/25(水) 08:04:31ID:???SELECT文をアップすればいいのに。
0606NAME IS NULL
2009/02/25(水) 08:22:36ID:???0607NAME IS NULL
2009/02/25(水) 10:36:20ID:???0608590
2009/02/25(水) 22:52:14ID:???SQLは見よう見まねで作ってるので、ようは>>595てことだと思います
今見たら>>590はちょっと端折りすぎで、複数条件でのjoinは遅くなるのかってのがおもいっきり抜けてました
単テーブルや単純な結合ならちょっぱやなので検証してくれた人すんません
遅くなるのはこんな感じのクエリ
$sql = "SELECT person.name, period.period, result.point, ...以下いくつかのカラム FROM content
INNER JOIN person ON content.name_id = person.id
LEFT JOIN result ON content.name_id = result.name_id AND cont.period_id = result.period_id
WHERE content.group_id = 数字";
0609590
2009/02/25(水) 23:01:52ID:???ttp://uploaders.ddo.jp/upload/500k1/src/1235569858639.png
クリエイトなどの操作はFirefoxのアドオンでやってて何度か言われてるインデックスは
id系のカラムのみCREATE INDEX "○○_idx" ON "○○" ("id" ASC, "period_id" ASC)な感じで作ってます
resultテーブルは成績とか得点とかperiod期間ごとの各人の数値
contentテーブルがメインテーブルになり、これを元に各テーブルから人名+付随の情報の一覧を作ります
result のidカラムは今回selectが遅いことから作った物で content.result_id = result.idで繋げると普通に早いです
とりあえずresult.idを作ったことで速度は改善しましたけど
遅い原因が作りが悪いのからなのか2つの条件でLEFT JOINしたからなのか
0610NAME IS NULL
2009/02/26(木) 10:08:34ID:???CREATE INDEX "result_idx" ON "result" ("id" ASC, "period_id" ASC);
としてたのかな?
これだと id + period_id の複合インデックスか
id のみのインデックスとしてしか効かないので、
ON content.name_id = result.name_id AND content.period_id = result.period_id
では利用されないと思う。
WHERE content.group_id = 数字 のところも同様。
CREATE INDEX "result_multi_idx" ON "result" ("name_id" ASC, "period_id" ASC);
CREATE INDEX "content_multi_idx" ON "content" ("name_id" ASC, "period_id" ASC);
CREATE INDEX "content_group_idx" ON "content" ("group_id" ASC);
あたりを追加すると速くなるかも。ならないかも。
0611NAME IS NULL
2009/02/26(木) 11:04:54ID:???0612NAME IS NULL
2009/02/26(木) 11:41:28ID:???CREATE INDEX idx_content ON content( group_id, name_id, period_id );
CREATE INDEX idx_person ON person( id );
CREATE INDEX idx_result ON result( name_id, period_id );
0613NAME IS NULL
2009/02/26(木) 11:44:43ID:???全てインデックスで実行されるようになる。
0614NAME IS NULL
2009/03/01(日) 07:35:00ID:???暗号化って出来ますか?
0615NAME IS NULL
2009/03/01(日) 16:35:54ID:???0616NAME IS NULL
2009/03/01(日) 17:36:58ID:???ありがとうございます
0617NAME IS NULL
2009/03/01(日) 17:54:33ID:???ttp://d.hatena.ne.jp/tateisu/20070117/p2
0618NAME IS NULL
2009/03/01(日) 18:15:13ID:???このルーチンはコールバックを登録します。
コールバックはデータベースのテーブルのカラムにアクセスしようとするたびに呼び出されます。
コールバックはアクセスが許可されるならば SQLITE_OK を、SQL 文全体がエラーとともに
中断されるべきならば SQLITE_DENY を、カラムが NULL 値として扱われるべきなら
SQLITE_IGNORE を返さなければなりません。
これらの定数は sqlite3 モジュールに用意されています。
コールバックの第一引数はどの種類の操作が許可されるかを決めます。
第二第三引数には第一引数に依存して本当に使われる引数か None かが渡されます。
第四引数はもし適用されるならばデータベースの名前("main", "temp", etc.)です。
第五引数はアクセスを試みる要因となった最も内側のトリガまたはビューの名前、
またはアクセスの試みが入力された SQL コードに直接起因するものならば None です。
第一引数に与えることができる値や、その第一引数によって決まる第二第三引数の意味については、
SQLite の文書を参考にしてください。必要な定数は全て sqlite3 モジュールに用意されています。
0619NAME IS NULL
2009/03/01(日) 23:35:07ID:???0620NAME IS NULL
2009/03/15(日) 21:26:49ID:???復元などはやってくれるのでしょうか?
0621NAME IS NULL
2009/03/15(日) 21:45:30ID:yaGPUN7a0622NAME IS NULL
2009/03/15(日) 22:03:08ID:???0623NAME IS NULL
2009/03/16(月) 00:05:50ID:???>>620
クラッシュ時の復元ではないけど、こんな機能はあるみたい。
SQLite Is Transactional
ttp://www.sqlite.org/transactional.html
0624NAME IS NULL
2009/03/16(月) 02:53:35ID:???0625NAME IS NULL
2009/03/17(火) 14:26:17ID:???何度も何度もガイシュツだけど、sqliteはDBMSというよりはSQLで操作できるストレージ
と見るべきもの。
0626NAME IS NULL
2009/03/17(火) 15:25:30ID:???0627NAME IS NULL
2009/03/18(水) 02:34:44ID:???0628NAME IS NULL
2009/03/19(木) 10:53:50ID:o2H2nmJt0629NAME IS NULL
2009/03/19(木) 14:44:26ID:2+pNexdR0630NAME IS NULL
2009/03/19(木) 14:47:33ID:???0631NAME IS NULL
2009/03/19(木) 17:39:43ID:???0632NAME IS NULL
2009/03/19(木) 18:51:32ID:???0633NAME IS NULL
2009/03/20(金) 03:58:56ID:???0634NAME IS NULL
2009/03/20(金) 04:11:15ID:???0635NAME IS NULL
2009/03/20(金) 04:18:24ID:???0636NAME IS NULL
2009/03/20(金) 09:56:21ID:???0637NAME IS NULL
2009/03/20(金) 10:19:17ID:???wrapper書いてユーザー管理とかアクセス権とか
そういうのも含めて制御してる人がいるらしいが
0638NAME IS NULL
2009/03/20(金) 11:12:02ID:???0639NAME IS NULL
2009/03/20(金) 12:15:58ID:???wrapper書いてまで拡張するのはどうかと思うが
基本機能に認証くらいはあっていいとおもう
0640NAME IS NULL
2009/03/20(金) 12:20:52ID:???0641NAME IS NULL
2009/03/20(金) 14:20:06ID:???0642NAME IS NULL
2009/03/20(金) 19:10:20ID:???0643NAME IS NULL
2009/03/20(金) 21:28:06ID:???「一人で使うもの」って、誰が言ったんだ?
0644NAME IS NULL
2009/03/20(金) 22:03:48ID:???>>625 とかもそうだけど、なんだか独断と偏見で用途を限定させたがる香具師が多いよな。
独りでそう思っとく分には勝手にすればって感じだけど、いちいち他人に押しつけんなよと。
0645NAME IS NULL
2009/03/20(金) 23:40:42ID:???組み込みDBってもっぱら一人で使われることが多いのでは?
0646NAME IS NULL
2009/03/20(金) 23:49:00ID:???何やるにも無理やり同じ道具使おうとする人いるけど、
目的に応じて適当なものを使う方が結局楽だし良い結果がでると思う。
0647NAME IS NULL
2009/03/21(土) 02:20:32ID:???よそではMS ACCESS使ってマルチユーザーアプリ(笑)とか言ってそう
0648NAME IS NULL
2009/03/21(土) 05:12:04ID:???0649.
2009/03/21(土) 08:15:19ID:pMvyn4si0650NAME IS NULL
2009/03/21(土) 08:16:32ID:pMvyn4siなんでも知ってるけどたいしたものは作ってない器用貧乏になるよりまし
0651NAME IS NULL
2009/03/21(土) 08:22:15ID:???0652NAME IS NULL
2009/03/21(土) 11:00:03ID:???それにスレ違い
0653NAME IS NULL
2009/03/21(土) 12:10:21ID:???0654NAME IS NULL
2009/03/21(土) 12:45:10ID:???アドバイスありがとうございます
FB使ってみることにします
0655NAME IS NULL
2009/03/21(土) 16:42:09ID:8XU5+zpU0656NAME IS NULL
2009/03/21(土) 23:00:04ID:???はぁ? 使い方じゃなくてSQLiteのアーキテクチャの話だろ。
お前程度の知能のヤツがシステム開発に関わるんじゃないぞ。周りが迷惑するから。
0657NAME IS NULL
2009/03/22(日) 00:15:26ID:???0658NAME IS NULL
2009/03/22(日) 00:39:38ID:???超激軽よく出来てるじゃんSQLiteいらないかも
0659NAME IS NULL
2009/03/22(日) 02:13:12ID:???0660NAME IS NULL
2009/03/22(日) 05:41:00ID:???0661NAME IS NULL
2009/03/28(土) 09:53:48ID:???弱い犬ほどよく吠えるな
0662NAME IS NULL
2009/03/28(土) 10:21:40ID:???宿題しろよ
0663NAME IS NULL
2009/03/28(土) 10:38:16ID:???0664NAME IS NULL
2009/03/28(土) 10:57:11ID:???0665NAME IS NULL
2009/03/29(日) 00:01:12ID:???0666NAME IS NULL
2009/03/29(日) 07:29:32ID:???0667NAME IS NULL
2009/04/03(金) 01:49:54ID:???SQLite2だけど
Myやポスグレなんかより格段に楽でいい
特に鯖の引越しなんかの時
マジおヌヌメ
0668NAME IS NULL
2009/04/05(日) 06:16:15ID:???ただ、引っ越しの時楽ちんとはいうものの、
更新処理中にファイルコピーかけちゃうとやっぱり壊れちゃうから
その辺は他の DBMS と同じで注意が必要だね。
0669NAME IS NULL
2009/04/05(日) 06:53:41ID:???0670NAME IS NULL
2009/04/05(日) 07:52:33ID:???0671NAME IS NULL
2009/04/05(日) 08:01:20ID:???環境は?
0672NAME IS NULL
2009/04/05(日) 16:36:17ID:???0673NAME IS NULL
2009/04/05(日) 17:08:17ID:???0674NAME IS NULL
2009/04/05(日) 17:33:03ID:???そもそも、バックアップとるのに活性でやるのん?
0675NAME IS NULL
2009/04/05(日) 19:39:00ID:???SQLiteといえど活性バックアップするなら結局専用フロントエンドでdumpするしかないと。
0676NAME IS NULL
2009/04/05(日) 19:47:51ID:???0677NAME IS NULL
2009/04/06(月) 07:25:44ID:???0678NAME IS NULL
2009/04/06(月) 09:59:00ID:???いつのまにかこんなのできてたんだね。
sqlite3 コマンドにも .backup と .restore ってコマンドができてるし。
ttp://www.sqlite.org/c3ref/backup_finish.html
あとで読む。
0679NAME IS NULL
2009/04/06(月) 09:59:49ID:???ttp://www.sqlite.org/backup.html
0680NAME IS NULL
2009/04/06(月) 12:52:42ID:???0681NAME IS NULL
2009/04/06(月) 13:07:00ID:???LVM段階でとる
0682NAME IS NULL
2009/04/06(月) 13:45:54ID:???逆。
オンラインバックアップできる準備をDB側で済ましてから、スナップショット作成/コピーコマンドなどを実行する。
0683NAME IS NULL
2009/04/06(月) 19:36:57ID:???0684NAME IS NULL
2009/04/06(月) 19:54:39ID:???DBとして整合性あるデータをバックアップできないという意味だ。
こんなことは、SQLiteに限らず、どのDBや一般アプリのデータでも言えること。
データがファイルとして整合性がとれていることと、DBとして整合性がとれていることは、次元が違うってことだ。
0685NAME IS NULL
2009/04/06(月) 23:00:09ID:???言ってるところもあるね。
その場合>684のようにDBレベルでフリーズさせてる。
0686NAME IS NULL
2009/04/07(火) 10:10:20ID:???その程度の機能のない DB なんてあるの?というかそれを DB と呼べるの?
0687NAME IS NULL
2009/04/07(火) 19:25:54ID:???ていうか例えばSQLiteは対応してるの?
DBとしての一意性確保とファイルシステムのスナップショットAPI対応とは全く別次元の話だと思うが?
0688NAME IS NULL
2009/04/07(火) 19:28:23ID:???なんでこのスレにいるの?
0689NAME IS NULL
2009/04/07(火) 23:31:27ID:???まあ、スナップショットやらミラーなんかの機能を使えば、そんなのでも用は足りるけど。
そもそも、SQLiteレベルでオンラインバックアップなど必要なのかどうかと。
0690NAME IS NULL
2009/04/08(水) 01:38:24ID:???対応してるの?
0691NAME IS NULL
2009/04/08(水) 03:53:07ID:???>>678 とかそれだと思うんだけど、違うの?
0692NAME IS NULL
2009/04/08(水) 08:12:44ID:???ただファイルのバックアップを取る機能じゃん。
ファイルシステムのスナップショット機能と全然関係ない
0693NAME IS NULL
2009/04/08(水) 08:51:40ID:???>>692 ただの馬鹿
0694NAME IS NULL
2009/04/08(水) 10:45:43ID:???0695NAME IS NULL
2009/04/08(水) 12:56:35ID:???当然トランザクションかけてていつ電源が切れても問題ないような使い方してる前提だけど
0696NAME IS NULL
2009/04/08(水) 13:26:05ID:???0697NAME IS NULL
2009/04/08(水) 18:52:24ID:???DBへの書き込みはAPIを介している限りはアトミックに見えるだろうけど、
稼動中に外からただのデータファイルとして扱ったら
更新途中で矛盾のある状態がバックアップされちゃう可能性ないの?
トランザクションをコミットしてる真っ最中とかさ。
0698NAME IS NULL
2009/04/08(水) 19:00:14ID:???てことは(他のDBMSはともかく少なくともSQLiteに関しては)>>682が嘘つきってことでFA?
0699NAME IS NULL
2009/04/08(水) 19:07:18ID:???>更新途中で矛盾のある状態がバックアップされちゃう可能性ないの?
>トランザクションをコミットしてる真っ最中とかさ。
もしそれで問題が起きるとしたら、更新途中に突然の電源断が起きた場合にも問題が起きるってことだよね。
それはトランザクションとは呼べないような気がするんだが、違うかな?
0700NAME IS NULL
2009/04/08(水) 19:10:57ID:???トランザクションを1個コミットするたびにトランザクションログみたいのを記録して、
異常終了後には起動時にイメージを復帰して、トランザクションを矛盾しない状態まで
一個ずつ適用して・・・みたいな事やるんじゃないの?
0701NAME IS NULL
2009/04/08(水) 19:14:09ID:???0702NAME IS NULL
2009/04/08(水) 19:19:10ID:???あれば普通壊れないよね
ソースは曖昧な記憶
0703NAME IS NULL
2009/04/08(水) 20:33:27ID:???あーなんかIPAの試験でよく見るなそれw
0704NAME IS NULL
2009/04/09(木) 00:07:27ID:???再起動すると無くなるからそういう事やってるんだと思う。
0705NAME IS NULL
2009/04/09(木) 00:33:11ID:???DBファイルを整合性のとれた状態まで戻してるんだよね。
でも、スナップショット取るたびに異常終了時と同じ
回復処理が必要かもしれないなんて、無問題とは思えないけど。
毎回無作為に強制終了してるのと同じじゃん。
0706NAME IS NULL
2009/04/09(木) 00:34:26ID:???0707NAME IS NULL
2009/04/09(木) 01:48:09ID:???> 毎回無作為に強制終了してるのと同じじゃん。
それでも問題ないようにするための DB だろ。
気持ち悪いっちゃ気持ち悪いが。
0708NAME IS NULL
2009/04/09(木) 01:56:53ID:???そこでsqliteコマンドの.dumpですよ
0709NAME IS NULL
2009/04/09(木) 02:09:02ID:???0710NAME IS NULL
2009/04/09(木) 02:28:45ID:???0711NAME IS NULL
2009/04/09(木) 02:39:17ID:???少なくとも強制終了したときに実行中だったトランザクションは落ちる。
トランザクション自体は複数の操作を不可分に実行するための仕組みであって、
不慮の電源断に備えるための仕組みじゃないべ。
もちろんコミット済みの結果は保証しなきゃいけないけど。
0712NAME IS NULL
2009/04/09(木) 03:10:47ID:???普通は、パフォーマンス上、そんなことはしないけど。
0713NAME IS NULL
2009/04/09(木) 03:29:09ID:???0714NAME IS NULL
2009/04/09(木) 07:47:55ID:???0715NAME IS NULL
2009/04/09(木) 09:51:30ID:???COMMITでディスクへの書込み完了が保証される代わりに、遅いね。
0716NAME IS NULL
2009/04/09(木) 10:48:45ID:???0717NAME IS NULL
2009/04/09(木) 11:02:41ID:???選べる。
ttp://www.postgresql.jp/document/current/html/runtime-config-wal.html
0718NAME IS NULL
2009/04/09(木) 13:51:48ID:???0719NAME IS NULL
2009/04/09(木) 15:10:06ID:???0720NAME IS NULL
2009/04/11(土) 06:38:46ID:???SQLite 入門 第2版
http://www.seshop.com/detail.asp?pid=10463
0721NAME IS NULL
2009/04/11(土) 18:34:45ID:???一版そこそこ売れたんだな。
0722NAME IS NULL
2009/04/12(日) 02:47:51ID:???0723NAME IS NULL
2009/04/12(日) 04:32:32ID:???0724NAME IS NULL
2009/04/12(日) 18:59:17ID:???/template/temp//%%A1^A1F^A1F5C01F%%display.tmpl.php) [function.fetch]
: failed to open stream: No such file or directory in /YTV1/ytv/contents/
public_html/data/systemdata/Smarty/Smarty.class.php on line 1258
0725NAME IS NULL
2009/04/13(月) 00:34:08ID:???まあどの本も読んだ事ないから実際は知らんけど。
0726NAME IS NULL
2009/04/13(月) 03:23:14ID:???宣伝乙
0727NAME IS NULL
2009/04/13(月) 17:37:56ID:???すまん、買った一人。
SQLをほとんど触ったことない弩級の初心者にはなんとか助かった。
だけど、内容がとても浅いので結局はネット=ここ2chのお世話になった。
振り返るととんでもない質問してる。汗。。知らないというのは怖い。
一旦ハマると楽だよね。SQLite3。ただ、サール類が少ない?ような。
0728NAME IS NULL
2009/04/13(月) 18:31:02ID:???0729NAME IS NULL
2009/04/14(火) 07:29:56ID:???0730NAME IS NULL
2009/04/14(火) 09:36:22ID:???0731NAME IS NULL
2009/04/14(火) 10:53:16ID:???ODBC経由でいいなら汎用品も使える。
0732NAME IS NULL
2009/04/14(火) 19:29:32ID:???なにかインプレッションお願いします。
0733NAME IS NULL
2009/04/14(火) 20:26:31ID:???うぞうぞあるだろうが。
0734NAME IS NULL
2009/04/14(火) 22:49:12ID:???>>729
すません。 OS X なのが一つの原因かも。
DabaBase Browser を愛用?してるんですがちと重たいです。
>>731
ODBCの入り口に行ってないっす。
書物 & Internet くらいで回りは Access 使いはいるけどって感じで。
0735NAME IS NULL
2009/04/15(水) 01:02:29ID:???0736NAME IS NULL
2009/04/16(木) 08:28:53ID:???0737NAME IS NULL
2009/04/16(木) 16:58:21ID:???生成されたデータベースファイルを、intelアーキテクチャのPCで開くと、
データベース内の数値がおかしくなります。
温度データが27となるべきところが-0.23420という感じで壊れます。
データベースの構造自体は問題なく、文字データは壊れません。
エンディアンの違いについて調べましたが、答えは見つかっていません。
原因や対処法について何か心当たりがあれば教えてください。
0738NAME IS NULL
2009/04/16(木) 17:15:39ID:???SQLite 2 を使ってるってことはないよね?
ttp://www.sqlite.org/onefile.html
0739NAME IS NULL
2009/04/16(木) 17:24:11ID:???0740737
2009/04/16(木) 17:41:28ID:???値の格納はARMマシンでのみ行っています。ARMマシン上でのsqlite3コマンドでは
当然正しい温度データが表示されます。
dumpを利用すればアーキテクチャの垣根を越えられそうな感じなのでやってみます。
0741737
2009/04/16(木) 18:24:40ID:???すみませんよく調べたら組み込みデバイスの方はIntelのIXP4xx(たぶん16ビットCPU)でした。
数値データのビット幅の違いが、温度データが壊れる原因の模様です。
dumpしてしまえば全てテキストデータになるので、PCに持っていってreadすれば
正しい数値データとして格納できたみたいです。
0742NAME IS NULL
2009/04/16(木) 20:37:08ID:???ありがとぉ〜。ちょっと悪戦苦闘したけど立ち上がった時の感動は大きい。こんなんがあったんだ。きびきびと快適っす。
0743NAME IS NULL
2009/04/18(土) 22:26:41ID:???0744本田
2009/04/19(日) 09:16:29ID:cVrkk1OOThe Definitive Guide to Sqlite (Definitive Guide) (ハードカバー)
Mike Owens (著)
http://www.amazon.co.jp/Definitive-Guide-Sqlite/dp/1590596730/ref=pd_sim_b_3
# ハードカバー: 464ページ
# 出版社: Apress (2006/5/29)
# 言語 英語, 英語, 英語
# ISBN-10: 1590596730
# ISBN-13: 978-1590596739
# 発売日: 2006/5/29
# 商品の寸法: 23.4 x 18.4 x 3 cm
0745NAME IS NULL
2009/04/19(日) 15:43:10ID:???0746NAME IS NULL
2009/04/19(日) 17:20:23ID:???特に本が必要とされてないってことなのかな
0747NAME IS NULL
2009/04/19(日) 17:26:40ID:???0748NAME IS NULL
2009/04/19(日) 21:12:30ID:???0749NAME IS NULL
2009/04/19(日) 22:19:06ID:???ほんとに互換性有るの?
そういう話題が出たとこ見たこと無いけど。
0750NAME IS NULL
2009/04/19(日) 22:45:03ID:???0751NAME IS NULL
2009/04/19(日) 22:59:32ID:???SQLite.Netはオリジナルのを流用して、それにラッパーを被せてるだけっぽいぞ。
0752NAME IS NULL
2009/04/19(日) 23:42:44ID:???0753NAME IS NULL
2009/04/19(日) 23:50:54ID:???kwsk
0754NAME IS NULL
2009/04/19(日) 23:53:40ID:???0755NAME IS NULL
2009/04/20(月) 00:02:08ID:???ttp://sqlite.phxsoftware.com/
0756NAME IS NULL
2009/04/20(月) 00:07:48ID:???0757NAME IS NULL
2009/04/20(月) 00:10:21ID:???managedonlyってのをダウンロードして、中のexe実行してみればわかる。
0758NAME IS NULL
2009/04/20(月) 00:21:03ID:???知らなかったわ。
0759NAME IS NULL
2009/04/20(月) 02:53:13ID:???「C#とかの他言語」って他にどんなのがあるの?
0760NAME IS NULL
2009/04/20(月) 17:23:48ID:???>>749はラッパーと移植の違いが判らない可哀想な子
0761NAME IS NULL
2009/04/20(月) 17:25:53ID:???0762NAME IS NULL
2009/04/20(月) 17:33:55ID:???0763NAME IS NULL
2009/04/20(月) 17:39:23ID:???0764NAME IS NULL
2009/04/20(月) 17:40:25ID:???ネイティブに移植したやつってことだろ
何でそんな心配するのかがわからんが。
0765NAME IS NULL
2009/04/20(月) 17:59:37ID:???0766NAME IS NULL
2009/04/20(月) 19:07:53ID:???0767NAME IS NULL
2009/04/20(月) 19:08:09ID:???749じゃないけど、JAVAで書かれてるのがあるよ。
http://zentus.com/sqlitejdbc/
ラッパーとPure JAVAなのとを選べるようになってる。
0768759
2009/04/20(月) 19:18:43ID:???thx! NestedVM ってのがあるのね。なるほど。
C の SQLite → GCC → MIPS マシンコード →
NestedVM → Java バイトコード → pure Java SQLiteJDBC
って感じで変換してるのかな。これなら互換性は高そうな気はする。
0769NAME IS NULL
2009/04/20(月) 21:28:39ID:???0770NAME IS NULL
2009/04/20(月) 21:29:53ID:???0771NAME IS NULL
2009/04/21(火) 17:21:30ID:???unique (name, value)
というようにカラムの組のuniqueを設定するにはどうすればいいんでしょうか?
0772NAME IS NULL
2009/04/21(火) 18:30:49ID:???0773NAME IS NULL
2009/04/21(火) 20:46:04ID:???0774NAME IS NULL
2009/04/22(水) 10:34:04ID:???メニューから「データベース」→「インデックスの作成」を選ぶと
こんなエラーが出るんですが…
window name "check3179608976" already exists in parent
while executing
"ttk::checkbutton $tree.check[clock clicks] -style CheckInTree"
(procedure "initColumnList" line 10)
invoked from within
"initColumnList"
(procedure "initTableList" line 15)
invoked from within
"initTableList"
(procedure "initDBList" line 5)
invoked from within
"initDBList"
(procedure "_init" line 110)
invoked from within
"_init"
(procedure "::GUICmd::CreateIndex::run" line 11)
invoked from within
"::GUICmd::CreateIndex::run"
(menu invoke)
0775NAME IS NULL
2009/04/22(水) 22:54:55ID:???機能的に。
0776NAME IS NULL
2009/04/22(水) 23:22:33ID:???ttp://sourceforge.jp/magazine/09/04/22/034210
どう使い分けるのが良いかね。
0777NAME IS NULL
2009/04/22(水) 23:23:31ID:???SQLite: ファイルをSQLで操作するライブラリ群
Firebird: SQLiteと異なり、きちんとしたRDBMS
Derby: Javaなのが売りのRDBMS
全然かぶらないもの比較してどうするんだ?
0778NAME IS NULL
2009/04/22(水) 23:48:23ID:???アプリ組み込みで使えるDB 3種として。
0779NAME IS NULL
2009/04/27(月) 23:01:25ID:???0780NAME IS NULL
2009/04/27(月) 23:52:20ID:???0781NAME IS NULL
2009/04/28(火) 16:42:08ID:zIGzknAk0782NAME IS NULL
2009/04/28(火) 20:40:22ID:xISXif6/0783NAME IS NULL
2009/04/28(火) 21:44:12ID:???0784NAME IS NULL
2009/05/05(火) 02:50:15ID:???stmtのprepareについて質問です。
http://masaki.blogzine.jp/mac_prog/2005/08/sqlite3_prepare_1c07.html
を参考に、最初に1度だけ、query用のstmtをprepareして、sqlite3_clear_bindings、sqlite3_resetして、
使っています。この場合で、
1)query用のstmtでselect実行
2)selectでヒットがなかったら、新しくinsert、commit
3)selectでヒットしたら、その行の一部のカラムを更新
を行なっています。ここで、2)のinsert後、2)がヒットするような、1)のselectを実行すると、
なぜかselectがヒットしません。
2)の後に、query用のstmtをfinalizeしてprepareしなおすと、selectがヒットするようになります。
質問:
stmtは、DB更新後は、prepareし直しが必要ですか。
prepareし直さなくて良くなる方法が何かあるのでしょうか。
sqlite3_expired()と言う関数が怪しかったので、2)の前後で値を出してみたのですが、0が返却され変化無しでした。
処理は1スレッド内です。最新のwindows DLLバージョンを使用しています。
0785NAME IS NULL
2009/05/05(火) 08:06:58ID:???0786NAME IS NULL
2009/05/05(火) 19:13:59ID:???> sqlite3_expired()と言う関数が怪しかったので、2)の前後で値を出してみたのですが、
> 0が返却され変化無しでした。
sqlite3_expired() は、DB スキーマが変化した時にのみ 1 になる。
> stmtは、DB更新後は、prepareし直しが必要ですか。
スキーマを変化させない、単純な更新であれば不要。
> prepareし直さなくて良くなる方法が何かあるのでしょうか。
BEGIN TRANSACTION とか COMMIT TRANSACTION や
END TRANSACTION を明示的に実行してみるのをお勧めする。
0787NAME IS NULL
2009/05/06(水) 00:22:57ID:6uwSdSldkwsk
0788NAME IS NULL
2009/05/06(水) 02:33:04ID:???助かります。expired()など助言ありがとうございます。
BEGIN TRANSACTION、END TRANSACTION を試してみましたがだめでした。
その後調べた結果、sqlite3に問題はなく、
> 1)query用のstmtでselect実行
の処理で、select後で、sqlite3_clear_bindings、sqlite3_reset漏れが見つかりました。
sqlite3_clear_bindings、sqlite3_resetを行なったところ、prepareし直さなくても正常に
selectできました。
selectがうまくいかなかったときのエラーメッセージを書いておきます。
library routine called out of sequence
sqlite3_stepの戻り値は、SQLITE_MISUSE(21)
今度から、おかしいなと思ったらsqlite3_errmsgチェックします
0789NAME IS NULL
2009/05/06(水) 14:08:51ID:???執念深く、だが何も学ばない馬鹿だな
511+1 :NAME IS NULL [sage] :2009/02/12(木) 04:28:39 ID:???
執念深く、だが何も学ばない馬鹿だな
513 :NAME IS NULL [sage] :2009/02/12(木) 17:09:16 ID:???
執念深く、だが何も学ばない馬鹿だな
0790NAME IS NULL
2009/05/09(土) 10:39:30ID:???めんどくさいので、プライマリー以外、名前だけで済ましちゃってるんですけど、
まずいことって出てきますかね
0791NAME IS NULL
2009/05/09(土) 11:02:34ID:hQmGlj/S0792NAME IS NULL
2009/05/10(日) 01:12:39ID:???.schema で訳分からんの困るから普通に定義しといたら?
0793NAME IS NULL
2009/05/11(月) 00:10:54ID:???って思ってこのスレを開いた俺のときめきを返せ!
0794NAME IS NULL
2009/05/11(月) 04:37:29ID:???0795NAME IS NULL
2009/05/11(月) 09:03:57ID:???0796NAME IS NULL
2009/05/11(月) 11:42:24ID:0V9fcGdBみたいなカラムがあって(NULLが有効レコード)、
有効なレコードだけを参照するために、
available_xxxといったようなviewを用意しています。
SELECT * FROM available_xxx WHERE ...;
のような単純なクエリだと、
viewを参照してもパフォーマンスは変わりませんが、
次のようなクエリだと非常に遅くなります。
SELECT * FROM yyy LEFT JOIN available_xxx ON ...;
(SELECT * FROM yyy LEFT JOIN xxx ON ... WHERE xxx.is_deleted IS NULL; に比較して非常に遅くなる)
オプティマイザの限界なのかもしれませんが、何か対策はないでしょうか?
0797NAME IS NULL
2009/05/11(月) 11:44:33ID:???0798796
2009/05/11(月) 13:02:45ID:???ありがとうございます。
実はSQLiteのEXPLAIN結果の読み方が分からないもので、困っていました。
MySQLとPostgreSQLなら読めるんですが…。
0799NAME IS NULL
2009/05/11(月) 18:29:25ID:???実際の読み方まで踏み込んだ話題にまでは展開しないよね。
俺もちゃんとした読み方はわからんのだけど、
とりあえず「Idxなんとか」(IdxGEとか)ってのがインデックスを使用する命令なので、
これが適切なカラムで利用されているかをチェックするようにしている。
検索の速いクエリと遅いクエリで「Idxなんとか」の使われかたを比較すると良いかも。
と、適当なレスをしておいて詳しい人を召喚してみるテスト。
0800NAME IS NULL
2009/05/11(月) 20:22:34ID:???お呼びでしょうか?
0801NAME IS NULL
2009/05/11(月) 20:40:50ID:???0802NAME IS NULL
2009/05/11(月) 21:31:44ID:???ttp://www.machu.jp/diary/20070125.html#p01
0803本田
2009/05/11(月) 23:02:23ID:zaiC2T01* Added the optional asynchronous VFS module.
* Enhanced the query optimizer so that virtual tables are able to make use of OR and IN operators in the WHERE clause.
* Speed improvements in the btree and pager layers.
* Added the SQLITE_HAVE_ISNAN compile-time option which will cause the isnan() function from the standard math library to be used instead of SQLite's own home-brew NaN checker.
* Countless minor bug fixes, documentation improvements, new and improved test cases, and code simplifications and cleanups.
0804796
2009/05/12(火) 17:40:36ID:???>>801
参考になりました。ありがとうございます。
viewを使った検索では適切なインデックスが使われていませんでした。
viewを使わない場合の explain query plan は、
全てWITH INDEX と USING PRIMARY KEYだったので、
速度の違いは当然ですよね…。
はてさてどうしたものか…。
(とりあえず、viewを使わないでやっていますが)
0805NAME IS NULL
2009/05/12(火) 18:19:48ID:???WHERE 句の条件を入れ替える (A AND B を B AND A にするとか) だけで変わることも。
0806NAME IS NULL
2009/05/18(月) 22:50:37ID:???insert into foo values('hoge',
(select id from bar where fuga = 'ぴよ')
);
って感じのsql投げるとエラー吐くんだけど
0807NAME IS NULL
2009/05/18(月) 23:01:21ID:???エラー内容書けよ
あと、実行環境(OS, コマンドライン or メンテナンスツール)も
なんとなく、エンコーディング絡みのエラーではないかと、エスパーしてみる
0808NAME IS NULL
2009/05/19(火) 00:14:14ID:???SQLiteSpy
---------------------------
Access violation at address 004B25CB in module 'SQLiteSpy.exe'. Read of address 656D617E.
---------------------------
OK
---------------------------
WinXP, SQLiteSpy 1.8.9
0809NAME IS NULL
2009/05/19(火) 09:40:19ID:???こちらでは問題なく実行できた。by Vista
Create,InsertのSQLを書けば追試するけど。
0810本田
2009/05/19(火) 12:04:39ID:M9GfULoZChanges associated with this release include the following:
* Fix a bug in group_concat(), ticket #3841
* Fix a performance bug in the pager cache, ticket #3844
* Fix a bug in the sqlite3_backup implementation that can lead to a corrupt backup database. Ticket #3858.
0811NAME IS NULL
2009/05/19(火) 20:42:27ID:???削ってもエラーを繰り返すようなところは削ったけど、こんな感じ。
-- tables
CREATE TABLE map (
md5 TEXT NOT NULL,
name_id INTEGER NOT NULL,
PRIMARY KEY (md5, name_id),
CONSTRAINT ct_md5_length CHECK (LENGTH(md5) = 32)
);
CREATE TABLE person (
name_id INTEGER NOT NULL PRIMARY KEY,
name TEXT NOT NULL UNIQUE
);
-- triggers
CREATE TRIGGER fki_map_name_id_person_name_id
BEFORE INSERT ON map
FOR EACH ROW BEGIN
SELECT RAISE(ROLLBACK, 'insert on table "map" violates foreign key constraint "fki_map_name_id_person_name_id"')
WHERE NEW.name_id IS NOT NULL AND (SELECT name_id FROM person WHERE name_id = NEW.name_id) IS NULL;
END;
-- test data
INSERT INTO "person" (name) VALUES('foo');
ここまでテキストに書いて、
sqlite3 try.db < try.sql
ってやってdbを作成。
-- このinsertをsqlitespy上で投げると>808のエラー
INSERT INTO map VALUES ('27FF7EA9CE50076CFC8E794D64957F7C',
(SELECT name_id FROM person WHERE NAME = 'foo')
);
sqlite3.exe (v3.6.14.1)ではエラーがでないのは確認済み。sqlitespy (v1.8.9)だとエラーになる。
手元に残ってないから確認できないけど、sqlitespy (v1.8.8)だとエラーにならなかったはず。
トリガーをはずすとv1.8.9でもエラーにならない。
…ひょっとしてバグ踏んだ?
0812NAME IS NULL
2009/05/20(水) 08:39:09ID:???追試しました。
SQLiteSpy1.8.9で同じエラーが発生します。
持っている前バージョンの最新が1.8.1でしたのでそちらで試したところ
正常に動作します。
0813本田
2009/05/20(水) 09:28:22ID:p8oX8jywhttp://www.yunqa.de/delphi/lib/exe/fetch.php?cache=cache&media=http%3A%2F%2Fwww.yunqa.de%2Fdelphi%2Fdownloads%2FSQLiteSpy_1.8.8.zip
http://www.yunqa.de/delphi/lib/exe/fetch.php?cache=cache&media=http%3A%2F%2Fwww.yunqa.de%2Fdelphi%2Fdownloads%2FSQLiteSpy_1.8.9.zip
0814NAME IS NULL
2009/05/20(水) 20:41:44ID:???誰かML入ってる人いたら投げておいてくれない?
0815NAME IS NULL
2009/05/21(木) 09:31:18ID:???ウチではエラー出ませんでしたよ。
sqlite3で作ったdbでも、Spyで作ったdbでも
811のsql投げてinsertは成功しましたよ。
win xp pro sp3
SQLiteSpy 1.8.9
SQLite3 3.2.8 (XAMPP 1.7.1)
自宅のxp homeでもエラー出ませんでした。
0816NAME IS NULL
2009/05/21(木) 14:08:54ID:???0817NAME IS NULL
2009/05/21(木) 19:12:07ID:???0818NAME IS NULL
2009/05/21(木) 19:46:29ID:???0819NAME IS NULL
2009/05/22(金) 09:56:36ID:???知らないひとに説明しやすくなることがよくある。
俺の場合、初期の Ruby とかがそうだった・・・(遠い目)
0820NAME IS NULL
2009/05/22(金) 12:54:12ID:???0821NAME IS NULL
2009/05/22(金) 17:49:08ID:???大昔、Perlのらくだ本の日本語訳本が出たとき、嬉しかったなぁ
0822本田
2009/05/26(火) 08:46:03ID:MIdYoisjSQLite version 3.6.14.2 fixes an obscure bug in the code generator (ticket #3879) section of SQLite which can potentially cause incorrect query results.
The changes from the prior release consist of only this one bug fix,
check-in [6676] and a change to the version number text.
The bug was introduced in version 3.6.14.
It is recommended that users of version 3.6.14 and 3.6.14.1 upgrade to this release.
Applications are unlikely to hit this bug,
but since it is difficult to predict which applications might hit it and which might not,
we recommend that all users of 3.6.14 and 3.5.14.1 upgrade to this release.
0823本田
2009/05/26(火) 23:05:21ID:MIdYoisjSQLiteSpy1.8.9は3.6.14を使っているので使用を中止して、
とりあえず3.6.10を使ってるSQLiteSpy1.8.8に戻すのが良い。
0824NAME IS NULL
2009/05/29(金) 21:24:37ID:py1Xlk8HみなさんPDO使ってますか?
それともSQLite3クラス使ってますか?
0825NAME IS NULL
2009/05/30(土) 18:26:01ID:???0826NAME IS NULL
2009/05/30(土) 19:37:43ID:???0827NAME IS NULL
2009/05/30(土) 20:25:26ID:???0828NAME IS NULL
2009/05/30(土) 20:45:58ID:???でも覚えた事は無駄にはならない。
0829NAME IS NULL
2009/05/30(土) 22:27:49ID:???0830NAME IS NULL
2009/05/31(日) 01:10:08ID:???0831NAME IS NULL
2009/06/02(火) 09:31:54ID:???そう思っていた時期が俺にもありました
0832NAME IS NULL
2009/06/02(火) 10:01:46ID:???詳しく
0833NAME IS NULL
2009/06/02(火) 22:48:32ID:???基本構文は共通だけど、プラットフォームごとにライブラリがバラバラだから
結局書き直す羽目になるという
0834NAME IS NULL
2009/06/03(水) 08:30:26ID:???0835NAME IS NULL
2009/06/03(水) 12:04:37ID:???0836NAME IS NULL
2009/06/03(水) 19:55:24ID:???0837NAME IS NULL
2009/06/03(水) 20:01:36ID:???0838NAME IS NULL
2009/06/06(土) 17:48:40ID:???拡張無効モードとか拡張警告モードとかあるといいのにと思うけど、
移行性を上げる手助けを各DBMSがするはずないか。
0839NAME IS NULL
2009/06/07(日) 00:34:31ID:???さっきゲットした SQL Database Console (¥115) は iPhone の中で普通に動く。素晴らしい。
で、これにはドキュメントがついてるのでちょっとしたハンドブックみたい。
SQLステートメント初心者には嬉しい。
0840NAME IS NULL
2009/06/07(日) 02:38:47ID:???0841NAME IS NULL
2009/06/07(日) 03:12:44ID:???0842NAME IS NULL
2009/06/07(日) 08:24:10ID:???SQLite 入ってるってことならそうなんだろうけど、ユーザー側に遊べる?アプリとして色々と出てきたって事なんだよね。
で、Android とか Palm Pre? ではどんなアプリがあるん?
後 iPhone では SQLite Editor とか、SqlTool とかもあった。 SqlTool もおもしろそう。
0843NAME IS NULL
2009/06/07(日) 09:26:17ID:???0844NAME IS NULL
2009/06/10(水) 19:20:22ID:izq1V+jd'DELETE FROM quicktag WHERE url = file://C:\folder\file.txt'
という事がしたいんですが、
これを正しくエスケープする方法が分からなくて、分かる方いましたら教えて下さい。
0845NAME IS NULL
2009/06/10(水) 19:30:48ID:???0846NAME IS NULL
2009/06/10(水) 19:46:32ID:???SQLとかプログラム初心者で調べてたら\でエスケープ
とか書いてあったりしてすごい悩んでたんですが、
それで試したらあっさり動きましたw本当ありがとうございます!
0847NAME IS NULL
2009/06/11(木) 08:24:41ID:???0848NAME IS NULL
2009/06/11(木) 12:17:05ID:???つーか、おまいら、プレースホルダー使おーよー!
0849本田
2009/06/16(火) 07:16:05ID:hPXMm7qHChanges associated with this release include the following:
* Refactor the internal representation of SQL expressions so that they use less memory on embedded platforms.
* Reduce the amount of stack space used
* Fix an 64-bit alignment bug on HP/UX and Sparc
* The sqlite3_create_function() family of interfaces now return SQLITE_MISUSE instead of SQLITE_ERROR when passed invalid parameter combinations.
* When new tables are created using CREATE TABLE ... AS SELECT ... the datatype of the columns is the simplified SQLite datatype (TEXT, INT, REAL, NUMERIC, or BLOB) instead of a copy of the original datatype from the source table.
* Resolve race conditions when checking for a hot rollback journal.
* The sqlite3_shutdown() interface frees all mutexes under windows.
* Enhanced robustness against corrupt database files
* Continuing improvements to the test suite and fixes to obscure bugs and inconsistencies that the test suite improvements are uncovering.
0850NAME IS NULL
2009/06/18(木) 13:40:46ID:???C#の単体アプリなんだけど危険?
0851NAME IS NULL
2009/06/18(木) 14:39:51ID:???どんな場合でも危険だろう。
0852848
2009/06/18(木) 15:24:23ID:???煽りじゃなくて全くもって >>851 の言うとおり。
文字列のエスケープって初心者が思ってるよりずっと難しい (トラップが沢山ある) ので、
「危険?」とか言っている時点で正しいエスケープは絶対無理だと思う。
プレースホルダを利用したバインド機構を使うべき。
あとは C# であれば LINQ が利用できるかも。
0853NAME IS NULL
2009/06/18(木) 15:40:04ID:???普通に文法みて実装してればそんなことはない。
が初心者にありがちな「俺様にはこれでokそうにみえる」って感じのなんちゃってな実装だと
ダメかも。
0854848
2009/06/18(木) 15:58:30ID:???> 普通に文法みて実装してればそんなことはない。
初心者には無理だね。断言できる。絶対無理。
初心者に「正しくエスケープしましょう」などと言うのは危険極まりない暴挙。
0855NAME IS NULL
2009/06/18(木) 16:07:56ID:???0856NAME IS NULL
2009/06/18(木) 16:25:50ID:???いんちきエスケープへの誘導になってる気がする。
言語書いたりプロトコル扱った経験があればそんなもの使おうと思わないか
使っても問題ないものが書けるだろうけど。
0857NAME IS NULL
2009/06/18(木) 16:39:54ID:???そもそも処理系自体、正しく使えば安全だという保証はないし。
0858NAME IS NULL
2009/06/18(木) 18:00:31ID:???2行目は意味不明。
0859NAME IS NULL
2009/06/18(木) 18:03:00ID:???0860NAME IS NULL
2009/06/18(木) 21:11:44ID:???今その環境で問題なかろうが、ミドルウェアを更新せざるを得なくなった時に死ぬ
バインドしろ
0861NAME IS NULL
2009/06/19(金) 03:46:53ID:???プレースホルダを使う場合に対して
* エスケープ処理のオーバーヘッド
* エスケープ解除処理のオーバーヘッド
この2つが余計にかかるわけ。
その上で、エスケープ処理自体にも脆弱性がありえるし
エスケープ処理のバグをつぶすコストも必要になる。
まさに百害あって一利なし。
0862NAME IS NULL
2009/06/19(金) 03:54:03ID:???どうせお手軽スクリプト言語でテキトーな単語連結でSQLを組んで
「俺って天才w」とか思っちゃうような痛い奴なんだろうな。
>>858-859
プレースホルダでなくエスケープ処理を採用するメリットが
何か1つでもあるなら教えてくれませんかねwwww
0863NAME IS NULL
2009/06/19(金) 04:49:46ID:???ご存知の方いましたら教えてください。
Mozilla Firefox 3.0.10のブックマークファイル(SQLite)から特定の履歴(閲覧)を削除したいです。
やりたい事の詳細は、まず [moz_historyvisits] テーブルの |place id| に格納されている番号を、
[moz_places] テーブルの |id| と比較して、その [moz_places] テーブルの行を削除したいのです。
色々調べて下記の通り試して見たところ、|place id| の一番上の番号(レコード?)分しか [moz_places]
から削除されていませんでした。
※|place id| は、重複データが有ります。
DELETE FROM moz_places WHERE id = (SELECT place_id FROM moz_historyvisits)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
更に、削除する際の絞込み条件として、[moz_places] の |url| に特定の文字列を ”含まない” もの
のみ削除したいです。
そこで、上のクエリに続けて下記の文も追加してみましたが、繰り返し作業の方法が分からず上と同じく1行分
しか削除できませんでした。
NOT LIKE 'http://www.example.com/%' AND NOT LIKE 'http://%.sqlite.localhost/%'
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
また、[moz_historyvisits] テーブルの |place id| が [moz_places] テーブルの |id| と一致し、
削除したら、[moz_historyvisits] テーブルからもその行を削除したいです。
※|place id| の重複行も [moz_historyvisits] テーブルから削除。
長文で読み辛いかもしれず申し訳ありませんが、ご存知の方がいましたら上記の事ができるクエリ(その他方法)
を教えていただければ幸いです。
何かありましたら補足しますので、どうかよろしくお願いします。
0864863
2009/06/19(金) 04:51:02ID:???=================================================================================================================
●places.sqlite [SQLiteデータベースファイル]
-----------------------------------------------------------------------------------------------------------------
■moz_historyvisits [テーブル] ※|place id| は、重複データが有ります。
| id | from visit | place id | visit date | visit type | session |
-----------------------------------------------------------------------------------------------------------------
■moz_places [テーブル]
| id | url | title | rev host | visit count | hidden | typed | favicon id | frecency |
=================================================================================================================
●places.sqlite テーブル情報等
http://builder.japan.zdnet.com/sp/firefox-3-for-developer-2008/story/0,3800087566,20380782,00.htm
■moz_historyvisits フィールド情報等
http://builder.japan.zdnet.com/sp/firefox-3-for-developer-2008/story/0,3800087566,20382307,00.htm
■moz_places フィールド情報等
http://builder.japan.zdnet.com/sp/firefox-3-for-developer-2008/story/0,3800087566,20380856,00.htm
●パソコン環境:Windows XP Professional SP3 (32bit版)
●使用GUIソフト:PupSQLite、TkSQLite。
●私の知識レベル:SQLiteは昨日あたりから調べ始めました。
(また、データベース自体も初めてで、C/PHP/JavaScript/VBSについても全く分からない状態です。
ただ、JavaScriptとVBSは、なんとか調べて基本的な事だけは若干理解できる程度です。)
2レスに渡ってしまいすみませんが、どうしてもこれらの事を行いたいため、どうかよろしくお願いします。
0865863
2009/06/19(金) 04:57:54ID:???>>863の2個目のクエリについて、[moz_places] テーブルの |url| に ”含まない” という部分が抜けていました。
(1個目のクエリに続けて2個目の条件を書く方法をメモしておいたのですが、未保存で忘れてしまいました。)
以上、どうかよろしくお願いします。
0866NAME IS NULL
2009/06/19(金) 04:58:10ID:???データの入力経路、文字コード、HTTPDの設定、PG言語、DBエンジン等によって2重3重4重に行われるエスケープや変換処理を
その組み合わせ、それぞれのバージョンによる動作の違いを過去から未来に渡って完璧に把握し正しく動かすコストなんて払えるのか?
そしてシングルバイトな文化圏の奴らが作ったマルチバイト処理のバグの多さも酷いもんなんだが、それに付き合うのか?
0867NAME IS NULL
2009/06/19(金) 05:03:16ID:???全部読んでないが複数削除したいなら
WHERE id = (略)
WHERE id in (略)
にしとけ
後は要点纏まってなくて長すぎ
読むのめんどい
0868NAME IS NULL
2009/06/19(金) 05:08:09ID:???>>862 なんて自分がそうだから相手もそうだと思っちゃう痛い自己紹介までつけちゃって。
0869850
2009/06/19(金) 05:59:07ID:???使うの自分だけでネットも繋がないので適当に作ってみたんですが
一応気をつけて作るようにしてみます。
プレースホルダはなんとなく分かりました。
LINQも言葉は聞いた事はあったので調べて作ってみます。
ありがとうございました。
0870863
2009/06/19(金) 06:54:40ID:???レスありがとうございます。
WHERE id INにしたところ、複数削除できるようになりました。
よろしければ、あといくつか回答いただければ幸いです。
●クエリA
DELETE FROM moz_places WHERE id IN (SELECT place_id FROM moz_historyvisits)
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
1.上の削除条件に追加で、moz_placesテーブルのurlフィールドに、下記の二つの文字列を含まない場合の式。
(ANDの位置や括弧等、条件の追加方法が分からないのです。)
-----------------------
http://www.example.com/*
http://*.sqlite.localhost/*
-----------------------
※*は複数の文字です。
2.最初に書いたクエリA+1.を合わせて実行した時に削除される行の、moz_placesテーブルのidフィールドと
同じ値がmoz_historyvisitsテーブルのplace idに存在したら、このテーブルの行も一緒に削除したいのです。
要は、メインのテーブルAから、削除したいリストが載っているテーブルBを元に、テーブルAから行の削除を
した後に、そのテーブルAから削除した部分のテーブルBの行も削除したいのです。
説明というか文章を書くのが下手ですみません。
よろしければ、再度レスをいただけると幸いです。
どうかよろしくお願いします。
0871NAME IS NULL
2009/06/19(金) 07:48:21ID:???エスケープミスってる状態でファイル名に' or 1;が含まれてただけでそのテーブル全削除になるわけだが
0872863
2009/06/19(金) 21:32:43ID:???あれから色々試していたところ、>>870の1.については適切かどうかは分からないですが、
実行できるようになりました。(添削していただければ幸いです。)
●クエリB
DELETE FROM moz_places WHERE id IN (SELECT place_id FROM moz_historyvisits)
AND (url LIKE 'http://www.test/%'
OR (url NOT LIKE 'http://www.example.com/%' AND url NOT LIKE 'http://%.sqlite.localhost/%'))
moz_placesテーブルのurlフィールドに・・・・・
・http://www.test/を含む場合は削除。
・http://www.example.com/*または、http://*.sqlite.localhost/*を含まない場合は削除。
あとは2.を同時に行いたいのですが、これは未だ分からずにいます。
時間のある時で構いませんので、ご存知の方いらっしゃいましたら教えていただけると助かります。
どうかよろしくお願いします。
0873NAME IS NULL
2009/06/19(金) 21:44:44ID:???普通の SQL の質問スレに行った方が返事が早いと思われ。
(俺はヘタレなので答えられません・・・orz)
0874863
2009/06/20(土) 04:20:16ID:???SQL質疑応答スレへ移動したいと思うので、一旦こちらで書いた質問は締め切りさせていただきたいと思います。
※上に書いた通り一旦締め切りとさせていただきますが、念のためこちらのスレも確認はしたいと思います。
回答・アドバイスいただいた方、どうもありがとうございました。
>>873
レスありがとうございます。
SQLの質問板に行ってみます。
アドバイスありがとうございました。
0875NAME IS NULL
2009/06/20(土) 05:23:49ID:???一度、検索条件に合致するplace_idからなる一時テーブルをCREATE TEMP TABLEしておき
そのplace_idを元に両テーブルにDELETE掛けたあとDROP TABLEするしかないな。
うん、間違いない。
0876NAME IS NULL
2009/06/20(土) 05:25:36ID:???じゃ、どうでもいいや。
0877もる
2009/06/22(月) 15:26:41ID:NNF6um22外部参照の設定の見当たらないのですが、ないのでしょうか?
0878NAME IS NULL
2009/06/22(月) 19:42:56ID:???なさそうだね
直接SQLを発行するしか無いんじゃないの(alter table ~ add constrint ~)
0879NAME IS NULL
2009/06/24(水) 01:37:52ID:???0880NAME IS NULL
2009/06/24(水) 02:47:16ID:???0881NAME IS NULL
2009/06/24(水) 04:51:16ID:???0882NAME IS NULL
2009/06/24(水) 07:51:23ID:???prepare*, bind_*, executeな。
0883NAME IS NULL
2009/06/24(水) 08:22:35ID:???0884NAME IS NULL
2009/06/24(水) 08:56:07ID:???0885NAME IS NULL
2009/06/24(水) 18:45:38ID:???0886NAME IS NULL
2009/06/24(水) 18:52:13ID:???どうせデータを暗号化もしてないんだろ。
injection対策以前にDBファイルを盗まれないように気をつけた方が良いよ。
0887NAME IS NULL
2009/06/25(木) 14:39:59ID:???こういう奴がセキュリティホールを作るんだろうなぁ。
SQLiteのDBファイル以外でも(CGIの吐き出すログや
CSVファイル等)Webから見える位置に置かねーのは基本じゃね?
そういう基本の前に暗号化とか、何故出てくるのか?
0888NAME IS NULL
2009/06/25(木) 14:46:52ID:???0889NAME IS NULL
2009/06/25(木) 17:42:58ID:???コンピュータ犯罪で一番多いのが内部犯行だって事は知ってるのか?
0890NAME IS NULL
2009/06/25(木) 18:03:04ID:???知ってたらどうだというの?
0891NAME IS NULL
2009/06/25(木) 18:17:22ID:???いきなり >>886 みたいなレスは余計な御世話だろう。
0892NAME IS NULL
2009/06/25(木) 18:41:57ID:???WEBからinjectされないように配慮する以前にファイルの管理が大事じゃないの?
と言っただけ。
余計なお世話なら、それは失礼しました。
0893NAME IS NULL
2009/06/25(木) 18:51:10ID:???暗号化されてれば、そんな環境でもセキュリティ問題無しなのか???
0894NAME IS NULL
2009/06/25(木) 18:55:42ID:???MySQL だって PostgreSQL だって単一のファイルでこそないけど
単なるファイルなわけだし脆弱性はそれほど変わらんと思うよ。
SQLite なら暗号化しろとかいうのは適切なリスク評価ができてないんじゃないかと。
0896NAME IS NULL
2009/06/25(木) 21:55:30ID:???DBファイルが暗号化されてれば、全ての内部犯行を防げるのか。
そりゃー知らなかったな。
つーか内部犯行ならDB暗号化してたって意味ないし、
DBファイル以外にも機密情報なんていくらだってある。
>>892
単なるファイルだから、持ち運ぶ時は他の機密情報と一緒に
暗号化すればいいだけ。
あんごうかwがセキュリティの銀の弾丸だと思ってる馬鹿乙w
0897NAME IS NULL
2009/06/26(金) 00:10:43ID:???もう>>886のライフはゼロだ、勘弁してやれw
0898本田
2009/06/30(火) 23:14:54ID:DT70mROv* Fix a bug (ticket #3929) that occasionally causes INSERT or UPDATE operations to fail on an indexed table that has a self-modifying trigger.
* Other minor bug fixes and performance optimizations.
0899NAME IS NULL
2009/07/05(日) 20:38:22ID:jibUJHYPただの\0切りバイト列として扱ってれば問題ない?
後ろに16のついたAPIが俺を不安にさせる
0900NAME IS NULL
2009/07/11(土) 03:27:13ID:???「SQLiteを制する者がスマートフォンを制する」と言われるようになったりして・・・
0901NAME IS NULL
2009/07/11(土) 19:53:21ID:???SQLite制した程度でなんもできんよ
でもHTML5のローカルDBとか、SQLiteの未来は明るいな
0902NAME IS NULL
2009/07/11(土) 21:00:17ID:???まずいとおもう。
0903NAME IS NULL
2009/07/11(土) 22:31:07ID:???先日、Videoコーデックの標準が各社の足引っ張りで消えたからな。DBもどうなることやら。
0904NAME IS NULL
2009/07/12(日) 03:53:55ID:???映像CODECと違って、組み込みDBでは特許関連が問題にはならないでそ。
0905NAME IS NULL
2009/07/12(日) 16:34:22ID:???HTML5のローカルDBって何すか?
0906NAME IS NULL
2009/07/12(日) 17:02:39ID:???0907NAME IS NULL
2009/07/15(水) 22:36:29ID:???その知人にMySQLを使えるように出来ないかと聞いたところ、SQLiteを使うように言われましたが、NetCommons2では標準でSQLiteをサポートしていません。
MySQL用に設計されているCMSをSQLite用に動作させるツールはあるのでしょうか?
または、コードを書き換えるなどして動作させられるのであれば、その方法を紹介しているサイトや本はありますか?
よろしくおねがいします。
0908NAME IS NULL
2009/07/16(木) 07:35:24ID:???0909NAME IS NULL
2009/07/16(木) 20:30:15ID:???XREA で稼働しなかった理由は明白なのか?
MySQLの使えるレンタルサーバを探した方が早い。
0910NAME IS NULL
2009/07/17(金) 13:33:48ID:???0911910
2009/07/17(金) 23:02:25ID:???0912NAME IS NULL
2009/07/17(金) 23:14:07ID:???0913NAME IS NULL
2009/07/17(金) 23:17:47ID:???0914NAME IS NULL
2009/07/18(土) 00:17:51ID:???0915907
2009/07/18(土) 00:38:30ID:???好意で借りているのであまり何度も言いづらいのですが、聞いてみますね。。。
>>909
PHPのセーフモードを.htaccessでCGI動作させて何とかインストール完了。
しかし、ファイルをアップロードするためのディレクトリが何故かパーミッション変更できなくなる。
複数のソフトウェアでパーミッション変更を試みてもそのディレクトリだけがアクセスのエラーになる。
そのため、バナーや写真など、ファイルをアップロードしようとしても、ファイルが書き込めずエラーは出ないけど404な状態に。
自分が持ってる有料のスペース3箇所と無料のスペース3箇所(それぞれ別仕様)で同じ症状です。
0916NAME IS NULL
2009/07/18(土) 10:21:10ID:???0917NAME IS NULL
2009/07/18(土) 11:02:24ID:???0918NAME IS NULL
2009/07/18(土) 11:39:57ID:???0919NAME IS NULL
2009/07/18(土) 16:47:01ID:???NetCommons2 がセーフモードに対応できていないように見えるんだが…。
>ディレクトリが何故かパーミッション変更できなくなる。
「特定のディレクトリのパーミッションがそもそも変更できない」のか
「パーミッション変更したはずなのに、書き込みができない」のか
「パーミッション変更したはずなのに、稼働させるとパーミッションが
再変更されてしまう」のかどれだ?
0920907
2009/07/18(土) 18:14:27ID:???説明が足りなかったです。
例えばアップローダで写真うp→書き込み権限が無く書き込めない
→エラーは出なくリンクは張られる→リンクをクリックするとファイルが無いので404
こんなかんじです。
>>918
アップロード用ディレクトリ(何故かパーミッション変更できない)の階下にアップローダや掲示板などの機能ごとで
ディレクトリが作られるのですが、そのディレクトリが書き込み権限が無く自動作成されず、
手動でフォルダを作って、そのディレクトリのパーミッションを変更しようとするとエラーが出ます。
>>919
なるほど。
.htaccessでインストール時にCGI動作するようにし、インストール後にエラーが出るので.ataccessを解除していました。
セーフモード出ない環境で利用することを前提としていると言うことでしょうか。
他のFTPソフト(Windows/MacOSX/Linuxなどで複数)の場合は、パーミッションを変更しようとするとエラーが表示されます。
FFFTPだけは、パーミッション変更できたような雰囲気になるのですが、
ディレクトリを再読み込みして再確認すると変更されていなかったことが確認できます。
0921NAME IS NULL
2009/07/18(土) 19:32:56ID:???0922NAME IS NULL
2009/07/18(土) 20:03:31ID:???WebProg板行って質問が吉。
0923NAME IS NULL
2009/07/18(土) 20:57:39ID:JHuFvc1aというウンコな開発方針をなんとかしてください。
あと、他要因のエラー(非バグ)と内因のエラー(バグ)が
なんとなくでいいので区別できるような採番してほしいです。
0924NAME IS NULL
2009/07/18(土) 21:53:43ID:???ここはSQLiteスレだから、もうお帰り
0925907
2009/07/18(土) 21:54:46ID:???ネットを調べてると、XREAのPHPは2階層以上のディレクトリをサポートしてない
ようなことを書いているBlogがありました。本当だとしたらムリですね。。。
他の方法を考えてみることにします。
みなさん相談に乗っていただいてありがとうございました。
0926NAME IS NULL
2009/07/21(火) 17:01:35ID:???あら、そんなにエラー粒度が荒かったか。
こんなんあるみたいだけどこれでも足りないっすかね?
Extended Result Codes
ttp://www.sqlite.org/c3ref/c_ioerr_access.html
0927NAME IS NULL
2009/07/21(火) 20:14:21ID:???は?
SQLITE_BUSY を返す状況ってのはロック関連だけなんだが。
お前の糞アプリのバグが特定できないからって
勝手に捏造してんじゃねーよバーカ
0928NAME IS NULL
2009/07/22(水) 08:30:26ID:???夏休みか・・・はあ。
0929NAME IS NULL
2009/07/22(水) 13:17:31ID:???仕事で使うようになればわかるよ。
学生のうちはただ楽しむだけでいい。
がんばれ。
0930NAME IS NULL
2009/07/23(木) 00:30:30ID:???0931NAME IS NULL
2009/07/23(木) 00:55:44ID:???0932NAME IS NULL
2009/07/23(木) 02:32:53ID:???具体的に、ロック以外のどんな状況でSQLITE_BUSYが
返されたのか、説明していただけませんか?
0933NAME IS NULL
2009/07/23(木) 02:34:06ID:???0934NAME IS NULL
2009/07/23(木) 03:39:04ID:???closeなんて無条件におkだろjk と思っていた時期が俺にもありました
あとは思いつかんな
0935NAME IS NULL
2009/07/23(木) 19:48:53ID:???0936NAME IS NULL
2009/07/23(木) 20:29:51ID:???板住人の大多数を敵に回したようだな。
0937NAME IS NULL
2009/07/24(金) 12:11:03ID:???それなりに大変そうではある。
0938NAME IS NULL
2009/07/24(金) 18:17:18ID:???0939NAME IS NULL
2009/07/24(金) 18:36:39ID:???0940NAME IS NULL
2009/07/24(金) 18:56:13ID:???0941NAME IS NULL
2009/07/24(金) 22:12:38ID:???0942NAME IS NULL
2009/07/25(土) 01:13:44ID:???0943NAME IS NULL
2009/07/25(土) 06:22:36ID:???0944NAME IS NULL
2009/07/25(土) 11:24:16ID:???痺れるほどベストアンサーだ
0945NAME IS NULL
2009/07/25(土) 12:47:06ID:vPpVsBrEUPDATE stocks t1 SET category_id = (SELECT category_id FROM categories t2 WHERE t1.category_name = t2.category_name);
↓
near "t1": syntax error
0946NAME IS NULL
2009/07/25(土) 13:07:17ID:???0947NAME IS NULL
2009/07/25(土) 16:15:16ID:???無理なのかな?ありがとう。
updateで複数テーブルの選択も出来ないみたいだし、
sqliteは俺には難しすぎるみたいだわ。
0948NAME IS NULL
2009/07/26(日) 11:58:19ID:???ファイル操作時に確実にロックをするってのは
シビアじゃない環境だろうと必ず考慮すべきことです。
それをライブラリが用意してくれてるならラッキーだけど
用意してくれてないなら自分でなんとかするだけです。
ライブラリが用意してるロック機構があてにならない というのは
ライブラリ全体の信用問題の話であって
出来てもいないことを実装しますた などと言うような人は
信用できない ということです。
0949NAME IS NULL
2009/07/26(日) 15:49:56ID:???それを短く一行で
0950NAME IS NULL
2009/07/26(日) 15:54:28ID:???0951NAME IS NULL
2009/07/26(日) 16:28:07ID:???「確実なロック」とか「ロック機構があてにならない」っていうレベルの話なの?
ロックの粒度がデカくてパフォーマンスが出ないとか、デッドロックしまくるとかの
話題だと思っていたんだけど、それ以前ってこと?
0952NAME IS NULL
2009/07/26(日) 16:46:15ID:eGiecw6Mネットワーク経由のアクセスについてロックを保証できないのは既知の
問題点となっているけど、この問題についてSQLite側で対処するのは
現在無理で将来も無理だと思われます。
では何故、他のDBMSで同様の問題が起こらないかといえば、ネットワー
ク越しの直接的なファイルアクセスを行わないからです。
個人的な意見というか要求ですが、SQLiteはこの問題に対処しない方が
良いと考えます。
ネットワーク越しのファイルアクセスを必要としない多くのアプリケー
ションに余計なオーバーヘッドを負担させることになるからです。
0953NAME IS NULL
2009/07/26(日) 18:32:06ID:???そりゃSQLiteで絶対にやってはいけない事の一つだろ
自称プロの中の人は輝いてるな いろいろと
0954NAME IS NULL
2009/07/26(日) 20:22:58ID:???SQLiteってそもそもネットワーク経由では使えないよね?NFSとかSMBとかの話?
0955NAME IS NULL
2009/07/26(日) 20:39:39ID:???そうだよ。
NFSの方はLinuxだともう少しでロックが完全に出来るようになるから
待ってればなんとかなる。
SMBやCIFSの方は知らん。
0956NAME IS NULL
2009/07/26(日) 21:52:57ID:???SQLite で DB ファイルをネットワークファイルシステム上に置く話って、
レイヤーが違い過ぎててごっちゃにして語っちゃいけなくないか?
そりゃおまえいくらなんでも無茶すぎるだろう。
自称でもプロを騙るなよ。
0957NAME IS NULL
2009/07/26(日) 22:05:29ID:???>>951 への回答の >>952 で唐突にネットワークの話が出してきたりと、
レスの内容は難解だしコンテキストも支離滅裂だし、大丈夫か?
0958NAME IS NULL
2009/07/26(日) 22:11:53ID:???0959NAME IS NULL
2009/07/26(日) 22:19:09ID:???0960NAME IS NULL
2009/07/26(日) 22:46:24ID:eGiecw6Mそれ以外にロックの問題は発生しないので>>952を回答としました。
質問に回答すると煽られるようですので、以降は見るだけにしときます。
でわでわ。
0961NAME IS NULL
2009/07/26(日) 22:52:53ID:???0962NAME IS NULL
2009/07/27(月) 00:57:52ID:???0963NAME IS NULL
2009/07/27(月) 01:59:41ID:???いやいや、そうじゃなくって >>952 が残念な人ってことなんだけど…
0964NAME IS NULL
2009/07/27(月) 03:16:29ID:???0965NAME IS NULL
2009/07/27(月) 18:28:21ID:???スレ終わるまでオススメの書籍でも書いといて。
0966NAME IS NULL
2009/07/27(月) 19:10:54ID:???http://www.amazon.co.jp/dp/479811944X
和書で SQLite のみにフォーカスした書籍はこれ一択か。
入門用にはとりあえずこの一冊。
Amazon.co.jp: PHP+SQLite実践サンプルブック: 豊崎 直也: 本
http://www.amazon.co.jp/dp/4883374297
(内容不明。補足よろ)
Amazon.co.jp: Pocket詳解 SQL辞典: 堀江 美彦: 本
http://www.amazon.co.jp/dp/4798018619
各種 RDBMS 対応の SQL のリファレンス本で、 SQLite にも対応。
が、ざっと見たところ SQLite に関してはあまり緻密に調べられておらず
不正確なところもあるように見受けられる。
Amazon.co.jp: 基礎から学ぶWebデータベースプログラミング: 堀川 久: 本
http://www.amazon.co.jp/dp/4274065294
前半は SQL の基礎について、後半は Ruby で Web アプリの作成についての説明。
PostgreSQL, MySQL, SQLite の仕様の違いにも触れられている。
が、 SQLite は SQLite2 ベースなので情報が古いかも。
説明は適当なので言いたいところのある方はツッコミや補足よろ。
0967NAME IS NULL
2009/07/27(月) 21:28:18ID:???0968NAME IS NULL
2009/07/28(火) 22:30:07ID:???SQLITE_BUSY を返してはならないコンテクストで
SQLITE_BUSY を返すようなサンプルを提示してください。
0969NAME IS NULL
2009/07/28(火) 22:44:10ID:???0970NAME IS NULL
2009/07/28(火) 22:54:33ID:???0971NAME IS NULL
2009/07/29(水) 03:51:42ID:???0972NAME IS NULL
2009/07/29(水) 08:07:05ID:???0973NAME IS NULL
2009/07/29(水) 10:48:59ID:???馬鹿げてるのはロックが〜ロックが〜とか呻いてるTPO考えない自称プロ
0974NAME IS NULL
2009/07/29(水) 20:48:51ID:???幼なじみの女の子が親の転勤で自宅に居候する事になった・・・
みたいなシチュエーションではよく使用される。
0975NAME IS NULL
2009/07/29(水) 23:21:25ID:???えっ、何で?
0976NAME IS NULL
2009/07/29(水) 23:35:47ID:???そりゃ困るわな
0977NAME IS NULL
2009/08/03(月) 21:51:45ID:pSx5VvBpPHP5.2で、SQLite3を扱いたいのですが、
PDOクラスから、特定のテーブルのカラム名と型を取得する
sqlite_fetch_column_types();
を実行するにはどうすればいいでしょうか。
MySQLでしたら、
SHOW COLUMNS FROM テーブル名
というSQL文を発行すればいいのですが、
SQLiteでは関数でしか取得できないのでしょうか。
最悪、sqlite_master テーブルのSQLカラムの値を正規表現等で分割して
取得する手もあるかもしれませんが。
0978NAME IS NULL
2009/08/03(月) 23:42:11ID:???適当に書いてみたぞ
エラーチェックは適宜やってくれ
あと、インデントは全角スペースなので注意
<?php
function getColumns(PDO $pdo, $tableName) {
$stmt = $pdo->query("select * from {$tableName} limit 1");
$count = $stmt->columnCount();
$columns = array();
for ($i = 0; $i < $count; ++$i) {
$columns[] = $stmt->getColumnMeta($i);
}
return $columns;
}
0979978
2009/08/04(火) 00:29:35ID:???少なくとも、一件はレコードを返さないと、カラム情報をとれないみたいだ
列数は取れるみたいだから、泥臭いけど
<?php
function getColumns(PDO $pdo, $tableName) {
$sql = "select * from {$tableName}";
$stmt = $pdo->query("{$sql} limit 1");
$count = $stmt->columnCount();
$sql2 = sprintf('select %s', implode(',', array_fill(0, $count, 1)));
$stmt = $pdo->query("{$sql} union all {$sql2} limit 1");
$columns = array();
for ($i = 0; $i < $count; ++$i) {
$columns[] = $stmt->getColumnMeta($i);
}
return $columns;
}
としたら、結果セットが空でも列情報はとれた
0980NAME IS NULL
2009/08/04(火) 17:17:10ID:???詳しい人がいたら教えてほしい。
private void doupdate(string flag, object data)
{
string query;
if (flag[0] == '@')
query = "UPDATE flags SET data=? WHERE name=?";
else
query = "UPDATE flags SET data=? WHERE name=? AND owner=?";
_db.setCommnad(query);
_db.setParam(flag);
if (data is int)
_db.setParam((int)data);
else if (data is string)
_db.setParam((string)data);
if (flag[0] != '@')
_db.setParam(accountid);
_db.doQuery();
}
言語:C#
(下は全てのソース)
http://www10.ocn.ne.jp/~mitinoie/Downloads.7z
0981NAME IS NULL
2009/08/11(火) 13:27:44ID:???読めるようになる(もちろん、データは空っぽ)ことがよくあるんだけど、PHPないしPDOの
バージョンと依存関係が強いのだろうか。開発が止まっているせいか、sqlite2のファイルは
いくらPHPをバージョンアップしても問題ないので、結局sqlite2を使うことになってしまう。
0982NAME IS NULL
2009/08/11(火) 14:38:40ID:???PHPからアクセスって誰がアクセスしてるんだよ。
一般ユーザか?apacheか?
0983NAME IS NULL
2009/08/11(火) 15:33:34ID:???「読めなくて」だけでエラーメッセージも何も確認しないようではどうしようもない。
ところで、 >>1-3 以外に次スレのテンプレで必要なものがあれば、
あと 17レス以内でよろしく。
0984NAME IS NULL
2009/08/11(火) 15:42:32ID:???原因を決め打ちしてると本当の原因を見つけられなくて結局なおらない。
0985NAME IS NULL
2009/08/12(水) 15:29:59ID:???「2」で.dumpコマンドを発行したんだが、一部の文字列が「'」でくくられておらず
「3」の.readでエラーになってしまうのだが、これってSQLite2のバグなのか?
それともデータベースファイルの方がおかしいのか?
0986NAME IS NULL
2009/08/12(水) 17:53:17ID:???文字コードがおかしい (Shift_JIS とか) ってことはないよね?
レス数が950を超えています。1000を超えると書き込みができなくなります。