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

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

SQLite 8

1 :NAME IS NULL:2009/08/14(金) 13:51:26 ID:UlUB4lFJ
サーバの要らない軽量データベース SQLite についてのスレです。

SQLite Home Page
http://www.sqlite.org/

2 :NAME IS NULL:2009/08/14(金) 13:52:04 ID:???
過去スレ

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/
SQLite 7
http://pc11.2ch.net/test/read.cgi/db/1220581676/

3 :NAME IS NULL:2009/08/14(金) 13:52:23 ID:???
ツール等

Management Tools
ttp://www.sqlite.org/cvstrac/wiki?p=ManagementTools

【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/

【JDBC】 SQLiteJDBC
ttp://www.zentus.com/sqlitejdbc/

【ADO.NET provider】 System.Data.SQLite
ttp://sqlite.phxsoftware.com/

【GUI管理ソフト】 PupSQLite
ttp://www5.plala.or.jp/Pup/

【Firefox add-on】 SQLite Manager
ttp://code.google.com/p/sqlite-manager/
ttps://addons.mozilla.org/ja/firefox/addon/5817

4 :NAME IS NULL:2009/08/14(金) 13:52:40 ID:???
ネタ

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

5 :NAME IS NULL:2009/08/14(金) 13:53:44 ID:???
和書

SQLite入門 第2版 (西沢直木 著)
ttp://www.amazon.co.jp/dp/479811944X
和書で SQLite のみにフォーカスした書籍はこれ一択か。
入門用にはとりあえずこの一冊。

PHP+SQLite実践サンプルブック (豊崎直也 著)
ttp://www.amazon.co.jp/dp/4883374297
(内容不明。補足よろ)

Pocket詳解 SQL辞典 (堀江美彦 著)
ttp://www.amazon.co.jp/dp/4798018619
各種 RDBMS 対応の SQL のリファレンス本で、 SQLite にも対応。
が、ざっと見たところ SQLite に関してはあまり緻密に調べられておらず
不正確なところもあるように見受けられる。

基礎から学ぶWebデータベースプログラミング (堀川久 著)
ttp://www.amazon.co.jp/dp/4274065294
前半は SQL の基礎について、後半は Ruby で Web アプリの作成についての説明。
PostgreSQL, MySQL, SQLite の仕様の違いにも触れられている。
が、 SQLite は SQLite2 ベースなので情報が古いかも。


洋書

The Definitive Guide to Sqlite (Mike Owens 著)
ttp://www.amazon.co.jp/dp/1590596730

SQLite (Developer's Library) (Chris Newman 著)
ttp://www.amazon.co.jp/dp/067232685X

6 :1:2009/08/14(金) 13:55:46 ID:???
レビューの質が悪いのでやめとこうかとも思ったけど、
書籍の紹介が全然無いのも寂しいので一応 >>5 を載せてみますた。

7 :NAME IS NULL:2009/08/16(日) 13:03:22 ID:ot9ThzR+
>>1

SQLite最近使い始めたんだけどinsert文がちょくちょく失敗して困る。
過去に一度insertしてその後deleteして現在は無いデータなのに
sqlite_execのエラー文字列見るとcolumn 〜 is not uniqueとかが代入されてた。
毎回失敗するならいいけど時々だから余計に原因が分からない。

今はみれないけど>>4にある「SQLiteへの大量のINSERT処理が厳しい」の記事に
そういうこと書いてあったのかな。
誰かこんな症状に悩まされてるって人いる?

8 :NAME IS NULL:2009/08/16(日) 14:36:46 ID:???
firebird embedded にするのがよいよ。

9 :NAME IS NULL:2009/08/16(日) 16:18:55 ID:???
>>7
deleteした人がトランザクション持ったままとか幼稚なミスは無いとして
NFSの先にファイルがあるとか

10 :NAME IS NULL:2009/08/17(月) 07:28:26 ID:???
SQLite Release 3.6.17 On 2009 Aug 10 (3.6.17)

Changes associated with this release include the following:

* Expose the sqlite3_strnicmp() interface for use by extensions and applications.
* Remove the restriction on virtual tables and shared cache mode. Virtual tables and shared cache can now be used at the same time.
* Many code simplifications and obscure bug fixes in support of providing 100% branch test coverage.

11 :4:2009/08/17(月) 10:48:04 ID:???
すみません、リンク先の確認してなかった。でも、大したこと書いてないような・・・

SQLiteへの大量のINSERT処理が厳しい (CodeZine編集部ブログ)
ttp://codezine.jp/blog/2007/10/sqliteinsert.php

本当に「現在は無いデータ」かどうか確認してみるとか?
例えば「column 〜 is not unique」のエラーを捕捉して、
そのデータを SELECT してみる処理を入れてみて確認してみては。

12 :NAME IS NULL:2009/08/18(火) 02:06:36 ID:???
>>11
「SQLiteへの大量のINSERT処理が厳しい」は基本、トランザクションを使わないアホ記事
ttp://journal.mycom.co.jp/special/2004/php5/007.html と、それに対する指摘の
ttp://www.randynetwork.com/blog/87 の件しか書かれていないので、情報量ゼロに
等しいからねい。

13 :NAME IS NULL:2009/08/18(火) 03:06:17 ID:???
どうせならsqlite3_clear_bindings、sqlite3_resetまでやって、これだけ早くなりました
っていうの書いてほしいな

14 :NAME IS NULL:2009/08/18(火) 12:06:13 ID:???
つまりSQLiteはトランザクション処理が遅すぎってことだろ
もうちっと速くなんないもんかね

15 :NAME IS NULL:2009/08/18(火) 14:21:06 ID:???
トランザクション処理が遅いというか、データが更新されていることを保証するから遅いんだろう。

16 :NAME IS NULL:2009/08/18(火) 21:13:44 ID:zw0wFllC
これ、昔はまったな。

トランザクションの開始と終了を明示しない時は、1SQLを1トランザクションと
みなしてコミットするっていうのは安全方向な解釈なわけで、
ごもっともって思ったけどね。

17 :NAME IS NULL:2009/08/19(水) 01:06:29 ID:???
1ファイルで直接アクセスする手軽さを捨てれば、もう少し良くなりそうだけどね。

ttp://www.atmarkit.co.jp/flinux/rensai/watch2009/watch05a.html
これ読むと、毎回全部書き直すように読めるんだけど、
auto commitの場合に毎回これが行われるとしたら、かなり性能が劣化しそうだね。

18 :NAME IS NULL:2009/08/19(水) 01:26:17 ID:???
>>16
BerkeleyDBとかだとindexとかは複数ファイルに分かれているわけだし、
SQLiteもそういう設計にしてもいいはずだよねい。

あと、ちょっとスレ違いだけど、FirefoxではSQLiteなDBファイルを
一切reindexやvacuumしないので、SQLite OptimizerなどのAddon使わないと
Firefoxの起動や終了が遅くなる一方なんだよなぁ。その辺、Firefoxは
DBの挙動やメンテについて無頓着すぎると思う。

19 :NAME IS NULL:2009/08/19(水) 19:10:22 ID:???
設計思想として1db=1ファイルって手軽さをとったんだろう。
あと、fxは次のバージョンでそこらに手を入れるとかなんとか。

20 :NAME IS NULL:2009/08/20(木) 01:55:40 ID:UUp3k2LM
dhRichClient3 (旧dhSqlite)で、VBAからSqlite利用しようとしています。
「COPY」コマンドを使用したいのですが、古くて使えないようなので
「.import」をVBAから実行したいのですが、普通のSQL文と同じ方法では実行できませんでした。(当然?)
「.import」のような管理コマンドの実行方法が分かる方いたらお教えください。

リファレンスにもそれらしいコマンド見当たりません…
http://www.datenhaus.de/RC-Help/dhRichClient3.htm


21 :NAME IS NULL:2009/08/20(木) 12:14:43 ID:???
'.' で始まるコマンドって、 SQL 文ではなくて、 sqlite コマンドの機能なんだよね。
(ソースコードでいうと src/shell.c 内で実装)

sqlite コマンドを実行するか、
.import 相当の機能を別途実装するしかないんじゃなかろうか。

22 :前スレ985:2009/08/20(木) 14:38:09 ID:???
しばらく来ることができなくて、やっと来れたら前スレが落ちてたorz 

申し訳ないのですが、前スレ985へのレスがありましたら教えていただけないでしょうか

>985 NAME IS NULL [sage] Date:2009/08/12(水) 15:29:59  ID:??? Be:
>    SQLite version 2.8.17からSQLite3にデータベースを変換しようと思って
>    「2」で.dumpコマンドを発行したんだが、一部の文字列が「'」でくくられておらず
>    「3」の.readでエラーになってしまうのだが、これってSQLite2のバグなのか?
>    それともデータベースファイルの方がおかしいのか?

23 :NAME IS NULL:2009/08/20(木) 14:55:28 ID:???
うちの環境 (2.8.17 & 3.6.14) ではうまく再現しないんだけど、
何か再現するデータの例はある?

24 :NAME IS NULL:2009/08/20(木) 22:47:58 ID:???
>>21
やっぱりそうなりますか…
とりあえず後者の方法でしのごうと思います。
ありがとうございました。

25 :NAME IS NULL:2009/08/21(金) 00:04:12 ID:???
>>22

986 名前:NAME IS NULL[sage] 投稿日:2009/08/12(水) 17:53:17 ID:???
むむむ、そんなことあるのか。
文字コードがおかしい (Shift_JIS とか) ってことはないよね?


のみだな。

26 :前スレ985:2009/08/21(金) 00:11:18 ID:???
>>22
ぶっちゃけるとコミケカタロムっていうのに入っているデータベースファイルなんですよ

>>25
テキストデータはShiftJISで入っているみたいです。これが原因なんでしょうか・・・

27 :NAME IS NULL:2009/08/21(金) 11:54:27 ID:???
sqlite db .dump | nkf -w | sqlite3 db

28 :NAME IS NULL:2009/08/21(金) 12:05:57 ID:???
>>23 = 前スレ986 ですが。

コミケカタログ持ってないからなあ・・・
SQLite2 のバグのような気もするけど、エラーの出る行とか見てみたい。

>>27
nkf -xm0 --ic=CP932 --oc=UTF-8 とかのが良いかな。

29 :NAME IS NULL:2009/08/21(金) 13:06:51 ID:???
.dumpの結果の一部ですが、3つ目のINSERTがおかしくなっています

create table ComiketMap (
       comiketNo INTEGER not null, -- コミケ番号
       id INTEGER not null,    -- 地図ID
       name VARCHAR(10),           -- 地図名
       filename VARCHAR(10),       -- 地図ファイル名基幹部
       x INTEGER,   -- 印刷用範囲
       y INTEGER,   -- 印刷用範囲
       w INTEGER,   -- 印刷用範囲
       h INTEGER,   -- 印刷用範囲
       allfilename VARCHAR(10),       -- 略地図ファイル名基幹部
       x2 INTEGER,   -- 印刷用範囲ハイレゾ用
       y2 INTEGER,   -- 印刷用範囲ハイレゾ用
       w2 INTEGER,   -- 印刷用範囲ハイレゾ用
       h2 INTEGER,   -- 印刷用範囲ハイレゾ用
       rotate INTEGER,    -- 配置に対する回転方向 0:正 1:逆
       PRIMARY KEY (comiketNo,id)
);
INSERT INTO ComiketMap VALUES(76,1,'東123','E123',0,0,1270,540,'A1',0,0,2540,1080,0);
INSERT INTO ComiketMap VALUES(76,2,'東456','E456',0,0,1270,540,'A2',0,0,2540,1080,1);
INSERT INTO ComiketMap VALUES(76,3,西12,'W12',0,0,1000,800,'A3',0,0,2000,1600,0);

30 :NAME IS NULL:2009/08/21(金) 17:04:50 ID:???
こう並べてみると、西の文字が東より左に寄ってるじゃないか
これで気がつくことがあるべ

31 :28:2009/08/21(金) 18:32:42 ID:???
そのデータを「西12」をクオートして sqlite 2.8.17 に突っ込んで .dump したけど、
ちゃんとクオートされて出力されてしまった。

sqlite 2.8.17 の dump のコードを見た感じだと、
クオートされずに出力される可能性があるとすると、
そのカラムのデータが数値として判定された場合が考えられるんだけど、
「西12」だしなあ・・・

.dump を実行してるのはどんな環境なのかな?
OS とかロケール (環境変数 LANG や LC_* など) とかが知りたい。

>>30
何か気づいたの?

32 :NAME IS NULL:2009/08/22(土) 13:29:25 ID:???
データベースを作るアプリと参照するアプリの二つを
開発しています。

データベースを作るアプリが遅いので、
(transaction は使用しています)
メモリ内に作ってファイルに書き出すことを検討していますが、

Data Source = :memory で、メモリ内に作ったデータベースを
ファイルに保存することはできますか?


33 :NAME IS NULL:2009/08/22(土) 21:12:38 ID:???
>>32
シリアライズすれば出来るよ。
というかInsertで一件ずつコミットとかしてないよな?

34 :NAME IS NULL:2009/08/22(土) 21:30:11 ID:???
「RAMディスク」というソリューション

35 :前スレ985:2009/08/22(土) 21:39:05 ID:???
>>30
ごめんなさい、わかりません。

>>31
環境変数ですか?
OS=Windows_NT
LANG や LC_* などはありませんでしたが、
コンパネの「地域と言語のオプション」ではすべて「日本語」になっていました

36 :28:2009/08/22(土) 23:23:13 ID:???
>>35
Windows っすか・・・
Windows XP で試したら確かに再現しますね。

> そのカラムのデータが数値として判定された場合が考えられるんだけど、
がどうやらビンゴのようです。
数値判定している箇所の関数 isdigit() が、「西」の文字で真を返していました。

ちょっと俺には Windows のプログラムのことはよくわからないのでお手上げです。
UNIX で実行する環境があるならばそこで実行するのが手っ取り早いと思います。

37 :NAME IS NULL:2009/08/23(日) 01:53:15 ID:???
>>35
お前、quoteされているかどうかすら確認できないのかよ…

38 :28:2009/08/23(日) 10:46:28 ID:???
>>30 >>35
最初 (>>22) から読み直された方がよろしいかと存じますが、いかがでしょうか?

39 :NAME IS NULL:2009/08/23(日) 21:31:34 ID:???
ttp://pc12.2ch.net/test/read.cgi/software/1249816402/825
これ、原因わかる人いる?

40 :NAME IS NULL:2009/08/24(月) 09:51:33 ID:???
再現性あるね。なんだろう。
ダンプを読み込ませて作ったDBから作ったダンプと、元のダンプをdiffしても差はなかった。

41 :28:2009/08/24(月) 13:31:57 ID:???
>>39
Firefox 固有の問題みたいなので向こうで答えるね。

42 :41:2009/08/24(月) 13:33:12 ID:???
あ、名前欄に深い意味は無いです。ミスった。

43 :NAME IS NULL:2009/08/27(木) 10:25:07 ID:???
SQLITEのトリガーでストアドもどきのことをやろうと思ってるんだけど、DECLAREがsyntax errorになって通らない。
やりたいのはただ単純にトリガ内で変数を宣言して値を格納したりしたいだけなんだけど、
SQLITEでは何か特殊な書き方でもあるんですか?

44 :NAME IS NULL:2009/08/27(木) 17:48:52 ID:???
トリガーの構文
ttp://www.3rd-impact.net/Document/SQLite/Translation/Current/lang_createtrigger.html

45 :NAME IS NULL:2009/08/28(金) 00:01:21 ID:???
しょうがないからcreate tableでテンポラリー作ろうとしても、DDL弾かれちゃうのな。
一体どうしろと。

46 :NAME IS NULL:2009/08/28(金) 13:54:57 ID:???
LIKEで"%"検索って出来ないの?
末尾%のレコードとして、
SELECT * FROM テーブル WHERE カラム名 LIKE '%@%' ESCAPE'@';
こんなかんじですか?

SQL error: near "ESCAPE": syntax error

こんなエラーでるんですけど

ちなみにxampp内蔵のSQLiteで、バージョンは2.8.17です。


47 :NAME IS NULL:2009/08/28(金) 14:12:43 ID:???
>>46
いや、できるでしょ。親切にエラーメッセージ出てるけど、読まないの?

SELECT * FROM テーブル WHERE カラム名 LIKE '%@%' ESCAPE '@';

48 :NAME IS NULL:2009/08/31(月) 11:36:22 ID:???
HTML5のDBのデファクトスタンダードだね
これからがんがん使うぞ

49 :NAME IS NULL:2009/09/02(水) 16:45:27 ID:???
助けてー。
SQLITEのトリガで、今まで動いてたトリガがエラーになってるのかどうか知らないけど突然動作しなくなった。
DROP TRIGGERして空のトリガを作ってみるとそっちは動くんだけど、
もう一回エラーが出るトリガを作っても、作成には成功してもトリガの実行には失敗する。
UPDATEに対して引っかけてるトリガなんだけど、そもそもどこでエラーが出てるのかわからん。
とにかくトリガ内で行われている処理が全く反映されない。
元のUPDATE文がロールバックされてしまう。
トリガが吐くエラーってどこでトラップするのよ!助けてママン

50 :49:2009/09/02(水) 16:55:42 ID:???
今まで動いていたトリガだと思っていたが、気のせいだったぜ!
一回トリガを変更したときにすでに動かなくなっていたらしい。
で、原因はともかくとして、エラーをトラップするには
元のトリガに対して引っかけてるSQL文のerror_info()を取ってやればトリガのエラーも検出できるみたい。
お騒がせしましたです。

51 :NAME IS NULL:2009/09/09(水) 21:08:54 ID:???
バイナリエディタで中見たらデータ読めるんだけど
暗号化するようなオプションってないのかな?


52 :NAME IS NULL:2009/09/10(木) 01:00:01 ID:???
>>51
暗号化して積めばよくね?

53 :51:2009/09/10(木) 16:15:19 ID:???
>>52
.netでsystem.data.sqlite使ってパスワードかけたらdbまるごと暗号化できた!


54 :NAME IS NULL:2009/09/11(金) 15:27:08 ID:???
  イ`ヘ
 /: :| ヽ
/ : :/  ヽ ___   _,,,:. .-: :´彡フ
_ノ\_∠: : : : : : : : :`: :-: :,:_:/彡 /
      ( : : : : : : : : : : : : : : `ゝ  /
  マ  r::/: /: : | : : : : : : : : ::\ /
      //: /: : : |: : | |: : |: _: : : :ヽ
  ジ  {/ 7|`\/i: /|:|/|´: : : : :|ヽ
     〉 ,‐-‐、`|7 || |_::|,_|: : :|:::|: |
  で / r:oヽ`    /.:oヽヽ: :|: | :|
     { {o:::::::}     {:::::0 }/: :|N
  っ  | ヾ:::ソ     ヾ:::ソ /|: : |
 !? ヽ::::ー-.. /ヽ ..ー-::: ヽ::| r--ッ
-tヽ/´|`::::::::::;/   `、 ::::::::::: /: i }  >
::∧: : :|: |J   \   /   /::i: | /_ゝ
. \ヾ: |::|` - ,, ___`-´_ ,, - ´|: : :|:::|
   ヽ: |::|\     ̄/ /|  |: : :|: |

55 :NAME IS NULL:2009/09/11(金) 21:27:18 ID:???
>>54
マジでって前スレで概出だけどな。

614 名前:NAME IS NULL[sage] 投稿日:2009/03/01(日) 07:35:00 ID:???
パスワードでファイルにロックかけたり
暗号化って出来ますか?

617 名前:NAME IS NULL[sage] 投稿日:2009/03/01(日) 17:54:33 ID:???
>>614
ttp://d.hatena.ne.jp/tateisu/20070117/p2

56 :NAME IS NULL:2009/09/12(土) 18:07:47 ID:iH3YOqOI
2009 Sep 11 (3.6.18)

* Versioning of the SQLite source code has transitioned from CVS to Fossil.
* Query planner enhancements.
* The SQLITE_ENABLE_STAT2 compile-time option causes the ANALYZE command to collect a small histogram of each index, to help SQLite better select among competing range query indices.
* Recursive triggers can be enabled using the PRAGMA recursive_triggers statement.
* Delete triggers fire when rows are removed due to a REPLACE conflict resolution. This feature is only enabled when recursive triggers are enabled.
* Added the SQLITE_OPEN_SHAREDCACHE and SQLITE_OPEN_PRIVATECACHE flags for sqlite3_open_v2() used to override the global shared cache mode settings for individual database connections.
* Added improved version identification features: C-Preprocessor macro SQLITE_SOURCE_ID, C/C++ interface sqlite3_sourceid(), and SQL function sqlite_source_id().
* Obscure bug fix on triggers ([efc02f9779]).


57 :NAME IS NULL:2009/09/16(水) 23:51:25 ID:???
3.6.18 でオプティマイザが相当賢くなったな


58 :NAME IS NULL:2009/09/17(木) 09:23:44 ID:???
最新版のSQLiteってまだPEAR::DB_DataObjectやPEAR::Authは使えないのですか?
もし出来ないのならばやっぱSQLite2を使用しないといけないのでしょうか?

59 :NAME IS NULL:2009/09/17(木) 10:12:12 ID:???
DataObjects_Book: find:
DataObjects_Book: CONNECT: Checking for database specific ini ('') : database_ in options
DataObjects_Book: CONNECT: NEW CONNECTION TP DATABASE :
DataObjects_Book: CONNECT: sqlite://localhost/C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/samples/chap6/chap6.sqlite 38c4cf3d8597fe519549815f422b1075
DataObjects_Book: CONNECT: a:1:{s:32:"38c4cf3d8597fe519549815f422b1075";O:9:"
DB_sqlite":7:{s:8:"dbsyntax";s:6:"sqlite";s:3:"dsn";a:9:s:7:"phptype";s:6:"sqlite";s:8:"dbsyntax";s:6:"sqlite";s:8:"
username";b:0;s:8:"password";b:0;s:8:"protocol";s:3:"tcp";s:8:"hostspec";s:9:"localhost";s:4:"port";b:0;s:6:"socket";b:0;s:8:"
database";s:87:"C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/samples/chap6/chap6.sqlite";}s:8:"
features";a:7:{s:5:"limit";s:5:"alter";s:8:"new_link";b:0;s:7:"numrows";b:1;s:8:"pconnect";b:1;s:7:"prepare";b:0;s:3:"ssl";b:0;s:12:"
transactions";b:0;}s:9:"fetchmode";i:1;s:22:"fetchmode_object_class";s:8:"stdClass";s:7:"options";a:8:
{s:16:"result_buffering";i:500;s:10:"persistent";b:0;s:3:"ssl";b:0;s:5:"debug";i:0;s:14:"seqname_format";s:6:"%s_seq";s:8:"autofree";b:0;s:11:"portability";i:0;s:8:"optimize";s:11:"performance";}s:13:"was_connected";b:1;}}
DataObjects_Book: databaseStructure: Missing ini file: C:/Program Files/Apache Software Foundation/Apache2.2/htdocs/samples/chap6/chap6.sqlite.ini
DataObjects_Book: databaseStructure: Cant find database schema: chap6.sqlite/book
in links file data: Array
(
)

DataObjects_Book: ERROR: Unable to load schema for database and table (turn debugging up to 5 for full error message)
DB_DataObject Error: Unable to load schema for database and table (turn debugging up to 5 for full error message)
こういうエラーが出たのですが、自分にはどこを直せばいいのか分かりません
どなたか直すべき点を指摘していただけたらと思います


60 :NAME IS NULL:2009/09/28(月) 21:02:40 ID:???
FireFox 3.5 はページ履歴の管理に SQLite 使ってるのか?
何日も起動しっぱなしでガンガン使った後に PC 終了しようとすると
ガリガリガリガリ 30 分経っても終わんねぇ。アフォかと。

61 :NAME IS NULL:2009/09/28(月) 21:09:56 ID:???
ウィルスでも仕込まれたんじゃないの

62 :NAME IS NULL:2009/09/29(火) 02:16:10 ID:???
それは SQLite のせいなのか?

63 :NAME IS NULL:2009/09/29(火) 21:39:53 ID:???
違うw

64 :NAME IS NULL:2009/09/30(水) 00:58:41 ID:???
>>60
前提が憶測な上に、起きている現象と SQLite の動作の因果関係が
何ら提示されてない電波っぷりがイカスw

死ね。氏ねじゃなくて死ね。


65 :NAME IS NULL:2009/09/30(水) 02:53:40 ID:???
Firefox関連で明らかになったSQLiteのまずいところって
ttp://www.atmarkit.co.jp/flinux/rensai/watch2009/watch05a.html にある
fdatasync()を使うべきところを fsync()使っていたことぐらいで、あとは
Firefox側の問題だ罠。

ちなみに、FirefoxではDBのreindexすらしないので、
SQLite Optimizer ttp://miyafx.blogspot.com/2009/03/sqlite-firefox.html
というアドオンを使ってreindexとvacuumeをすると気持ちよくなる。

66 :NAME IS NULL:2009/09/30(水) 22:57:31 ID:???
そんなことで死なんならんのやったら地球の総人口1万人ぐらいになるやろね。

67 :NAME IS NULL:2009/10/01(木) 03:08:32 ID:???
本人が馬鹿であればあるほど、周囲の人間を馬鹿と認識しやすいってどっかのおっさんが言ってたわ

68 :NAME IS NULL:2009/10/01(木) 21:39:10 ID:???
俺は馬鹿なんだが、周囲の人間はみんな馬鹿じゃないぞ。どういうことだ?

69 :NAME IS NULL:2009/10/01(木) 23:42:04 ID:???
本人は自分をバカと思っていないこと前提。

70 :NAME IS NULL:2009/10/02(金) 02:38:37 ID:???
自分の馬鹿さを自覚できるのは相当賢い部類

71 :NAME IS NULL:2009/10/02(金) 08:22:13 ID:???
まず馬鹿の基準を作らないと、どちらに分類されるか分からないな。

72 :NAME IS NULL:2009/10/03(土) 00:40:39 ID:uaCgXGJD
>>65
PRAGMAで指定できる。
ページ遷移ごとに2.5MB書き込むブラウザもかなり変だが、2.5MB程度書き込む
だけで数分固まるOSもかなり変。
SQLiteへ責任転嫁してくるのはDRHがOSSと一緒にしてほしくないって言ったのが
原因だろか。
MSのせいにしとけばいいのに。

73 :NAME IS NULL:2009/10/03(土) 12:26:21 ID:???
>>72
後半を日本語で。

74 :NAME IS NULL:2009/10/03(土) 16:51:18 ID:???
>>73
DRHは人名です

75 :NAME IS NULL:2009/10/03(土) 20:04:11 ID:???
>>74
いやいやいや、それはわかっとるちうねん。

76 :NAME IS NULL:2009/10/04(日) 20:41:10 ID:???
なぜSQLiteを使うの?

77 :NAME IS NULL:2009/10/04(日) 21:43:52 ID:???
そこに SQLite があるから。
というよりむしろ、そこに SQLite しかなかったから。

78 :NAME IS NULL:2009/10/04(日) 22:41:58 ID:???
ほかに選択肢があれば使ってみたいけど
フットプリントが小さくてタダで使えるDBライブラリって
あんまり無いよね

79 :NAME IS NULL:2009/10/04(日) 23:39:10 ID:???
定番のBerkleyDBがあるやん。

80 :NAME IS NULL:2009/10/05(月) 08:17:00 ID:???
それでいい場合もあるけど、SQL使いたいことも多い。

81 :NAME IS NULL:2009/10/06(火) 02:14:50 ID:???
GUIの管理ツールを使いたいが多すぎて
どれを使ったらいいのかわからない
http://www.sqlite.org/cvstrac/wiki?p=ManagementTools

82 :NAME IS NULL:2009/10/06(火) 03:20:22 ID:???
調べる気も無いカスはtkでも使ってろ

83 :NAME IS NULL:2009/10/06(火) 22:37:50 ID:???
>>82
ありがとう。愛してる

84 :NAME IS NULL:2009/10/06(火) 23:41:10 ID:???
>>82
ぼくも調べる気も無いカスです
日本語のGUI管理ツール教えて

85 :NAME IS NULL:2009/10/07(水) 06:16:02 ID:???
そういう塵蟲はこれでも使ってろ
https://www.eonet.ne.jp/~pup/software.html

86 :NAME IS NULL:2009/10/07(水) 19:04:43 ID:???
>>85
ありがd。。。大好き♥

sqlitecc3j.exeは窓から捨てるね

87 :NAME IS NULL:2009/10/09(金) 15:13:02 ID:???
俺様メモ
select datetime(unix_time/86400.0 + 2440587.875);
select strftime('%Y年%m月%d日 %H時%M分%S秒',unix_time/86400.0+2440587.875);

88 :NAME IS NULL:2009/10/09(金) 15:16:39 ID:???
追加
select date(unix_time/86400.0 + 2440587.875);
select time(unix_time/86400.0 + 2440587.875);

89 :NAME IS NULL:2009/10/09(金) 20:40:36 ID:???
select datetime(unix_time,'unixepoch');?

90 :NAME IS NULL:2009/10/09(金) 23:07:29 ID:???
select datetime('now');

91 :87:2009/10/10(土) 07:20:19 ID:???
>>89
こうすりゃいいのか! ありがトン
select datetime(unix_time, 'unixepoch', 'localtime');

92 :NAME IS NULL:2009/10/10(土) 13:30:24 ID:???
select datetime('now','localtime');

93 :NAME IS NULL:2009/10/15(木) 23:18:15 ID:d2PUdHCm
SQLite Release 3.6.19 On 2009 Oct 14 (3.6.19)
Changes associated with this release include the following:
* Added support for foreign key constraints. Foreign key constraints are disabled by default. Use the foreign_keys pragma to turn them on.
* Generalized the IS and IS NOT operators to take arbitrary expressions on their right-hand side.
* The TCL Interface has been enhanced to use the Non-Recursive Engine (NRE) interface to the TCL interpreter when linked against TCL 8.6 or later.
* Fix a bug introduced in 3.6.18 that can lead to a segfault when an attempt is made to write on a read-only database.

94 :NAME IS NULL:2009/10/16(金) 00:25:36 ID:???
> * Added support for foreign key constraints.
正直永遠にサポートしないつもりかと思ってた。
でも欲しかったから来て嬉しい。

95 :NAME IS NULL:2009/10/16(金) 20:32:00 ID:/wq/v8jR
初歩的な質問なんだけどテーブル作成でPK設定したら自動的にIndexは張られるの?
やっぱり後でindexを作らないと駄目?

96 :NAME IS NULL:2009/10/23(金) 09:22:01 ID:???
INSERTとかするときって、テーブルロックされるんだっけ?
それともデータベース全体ロック?

97 :NAME IS NULL:2009/10/23(金) 10:53:12 ID:???
>>96
ttp://www.3rd-impact.net/Document/SQLite/Translation/Current/sharedcache.html

98 :NAME IS NULL:2009/10/23(金) 10:53:56 ID:???
あ、あと
ttp://www.3rd-impact.net/Document/SQLite/Translation/Current/lockingv3.html

99 :NAME IS NULL:2009/10/27(火) 11:22:47 ID:???
PHP+SQLite を用いたダウンロードカウンター「X-File Access Counter」
ttp://works.xworks.org/script/01php/xfile-access-counter/

これの非公開バージョンb090909
http://kissho.xii.jp/1/src/1jyou93396.zip.html

・DBにSQLiteを用いているのが特徴。
・ベータ版のため、簡単に使える状態では無い。

誰か、使用方法、教えて下さい・・・。

100 :NAME IS NULL:2009/10/27(火) 13:03:02 ID:???
>>99
xfac.phpに全部書いてあったよ

101 :NAME IS NULL:2009/10/28(水) 21:52:27 ID:???
CSVファイルとかをimportするとき、INTEGER PRIMARY KEYのカラムを
自動で入れてほしいんだけど どうしたらいいですか?

102 :NAME IS NULL:2009/11/05(木) 16:57:40 ID:???
SQLiteって日本語の全文検索ってできる?
Firefox3とかfts3モジュールとかいってるサイトを見つけたけど
詳しい解説がなくて何のことやらさっぱり

103 :NAME IS NULL:2009/11/06(金) 00:09:28 ID:???
>>102
そういう関数を作って呼んだ方が速い

104 :NAME IS NULL:2009/11/08(日) 01:59:03 ID:JaE5+7v3
2009 Nov 4 (3.6.20)

* Optimizer enhancement: prepared statements are automatically re-compiled when a binding on the RHS of a LIKE operator changes or when any range constraint changes under SQLITE_ENABLE_STAT2.
* Various minor bug fixes and documentation enhancements.

105 :NAME IS NULL:2009/11/15(日) 14:35:57 ID:???
SQLiteManagerがPHP5.3にあげたら使えなくなってしまいましたので
・EUC、SJIS、UTF-8が扱える。
・SQLite2系とSQLite3系が扱える。
GUI管理ツールってSQLiteManager意外にいいの無いですか?

106 :NAME IS NULL:2009/11/16(月) 19:12:04 ID:???
無い

107 :NAME IS NULL:2009/11/16(月) 22:37:23 ID:???
>>106
無いか。
とりあえず
.htaccessに
php_flag log_errors On
php_value error_log "./log.txt"
php_flag display_errors off
を追加して無理矢理動かすことにしたけど
警告エラーのたびに修正がめんどくさいので
SQLite2は問題なく使えるけどSQLite3のデータベースの追加(新規も既存のデータベースファイルの追加)ができなくなった。

環境としたらXAMPPだが古いの入れ直せば良いだけだけど
開発環境は最新状態にしてテスト環境CentOSで下のバージョンでも問題ないかテストしたいんだよな。


108 :NAME IS NULL:2009/11/17(火) 00:12:54 ID:???
>>105
tksqliteを知らんのか

109 :NAME IS NULL:2009/11/18(水) 11:22:23 ID:XgJDmvNS
Blob型はファイルサイズの制限はありますか
また、Blob型で音楽 動画などをバイナリで保存できますか

110 :NAME IS NULL:2009/11/18(水) 13:37:22 ID:???
ファイルシステム依存

111 :NAME IS NULL:2009/11/18(水) 14:20:03 ID:???
>>109
まあいいからまずはここ見れ
http://www.sqlite.org/limits.html

112 :NAME IS NULL:2009/11/21(土) 21:29:08 ID:???
>>111
読めねーよアホ

113 :NAME IS NULL:2009/11/21(土) 22:21:05 ID:???
>>111
じゃあ使うなアホ

114 :NAME IS NULL:2009/11/21(土) 22:46:08 ID:???
>>113
アンカー間違えてね?

115 :NAME IS NULL:2009/11/21(土) 22:49:38 ID:???
>sqlitedll-3_6_20.zip
> The only external dependency is MSVCRT.DLL.
MSVCRTってシングルスレッドとマルチスレッド用で分かれてた気がするんだが
これはどっちをインクルードしてるんだ?

116 :NAME IS NULL:2009/11/22(日) 22:02:25 ID:???
msvcrt.dllはマルチスレッドしかない

117 :NAME IS NULL:2009/11/23(月) 17:12:29 ID:???
>>116
えっ

118 :NAME IS NULL:2009/11/23(月) 22:52:35 ID:???
シングルスレッドとマルチスレッドがあるのは
スタティックリンク版のlibcだけだから、>>116 で正しいのでは?

119 :115:2009/11/24(火) 00:02:58 ID:???
なるほど、libは分かれてるけどdllはマルチスレッドのみということですね。
考えてみればdllが2つあるとは考えられにくいですよね・・・・・・
ならVC++のプロジェクト設定はマルチスレッド使用のほうがいいのでしょうか?

120 :115:2009/11/24(火) 00:05:19 ID:???
いやいやいやいや
sqliteがDLLをロードしてるならアプリをスタティックリンクにする意味は無いですよね・・・

121 :NAME IS NULL:2009/11/24(火) 03:27:15 ID:???
いまどきVCの設定でシングルスレッドなんて使う奴は真性の基地外だろ


122 :NAME IS NULL:2009/11/26(木) 17:50:02 ID:???
質問です。sqliteでpostgreに存在するGENERATE_SERIES()のような機能が欲しいため、以下のようなクエリを書きました。
SELECT
CAST(桁1.番号||桁2.番号||桁3.番号 as INTEGER)as 番号
FROM
(SELECT '0' as 番号
UNION SELECT '1' as 番号
UNION SELECT '2' as 番号
UNION SELECT '3' as 番号
UNION SELECT '4' as 番号
UNION SELECT '5' as 番号
UNION SELECT '6' as 番号
UNION SELECT '7' as 番号
UNION SELECT '8' as 番号
UNION SELECT '9' as 番号
)as 桁1,
(SELECT '0' as 番号
UNION SELECT '1' as 番号
UNION SELECT '2' as 番号
UNION SELECT '3' as 番号
UNION SELECT '4' as 番号
UNION SELECT '5' as 番号
UNION SELECT '6' as 番号
UNION SELECT '7' as 番号
UNION SELECT '8' as 番号
UNION SELECT '9' as 番号 )as 桁2,
(SELECT '0' as 番号
UNION SELECT '1' as 番号
UNION SELECT '2' as 番号
UNION SELECT '3' as 番号
UNION SELECT '4' as 番号
UNION SELECT '5' as 番号
UNION SELECT '6' as 番号
UNION SELECT '7' as 番号
UNION SELECT '8' as 番号
UNION SELECT '9' as 番号 )as 桁3
ORDER BY 番号 ASC
目的には適っているのですが、流石に冗長過ぎると思うので、もうちょっとスマートになりゃしませんでしょうか。


123 :NAME IS NULL:2009/11/29(日) 20:44:17 ID:???
>>72
> ページ遷移ごとに2.5MB書き込むブラウザもかなり変だが、2.5MB程度書き込む
> だけで数分固まるOSもかなり変。
固まるのはFx。書き込まれるまでUIを止めてしまう。



124 :NAME IS NULL:2009/11/29(日) 21:24:20 ID:UjTGwFXV
エラーチェックみんなしてる?
sqlite3_prepare()とかsqlite3_bind_int()とか
デバッグ中はエラーチェック大事だけどさ、すごい面倒なんだけど
ソースくそ読みづらくなるし

125 :NAME IS NULL:2009/11/30(月) 03:27:39 ID:???
>>123
システムコールが返ってこないから固まるんだろ。
結局OSが悪いだろ。
たかだか2.5MB書き込むだけで数分固まるっておかしいだろ。

126 :NAME IS NULL:2009/11/30(月) 09:38:17 ID:???
>99 名前:NAME IS NULL[sage] 投稿日:2009/10/27(火) 11:22:47 ID:???
>PHP+SQLite を用いたダウンロードカウンター「X-File Access Counter」
>ttp://works.xworks.org/script/01php/xfile-access-counter/
>
>これの非公開バージョンb090909
>http://kissho.xii.jp/1/src/1jyou93396.zip.html
>
>・DBにSQLiteを用いているのが特徴。
>・ベータ版のため、簡単に使える状態では無い。
>
>誰か、使用方法、教えて下さい・・・。

これ、使えている人いる?
機能的に気に入ったので試してみたけど、動きそうで動かない。

127 :NAME IS NULL:2009/11/30(月) 14:52:58 ID:???
どう動きそうで動かないんだよ
エラーが出てるならそこまで書けクズ

128 :NAME IS NULL:2009/12/01(火) 01:07:53 ID:???
A TEXT NOT NULL
B TEXT
UNIQUE(A, B)
この場合って、B=NULLでAが同じ値のデータって許されるの?
っていうかINSERTできちゃったんだけど?

129 :NAME IS NULL:2009/12/01(火) 01:29:28 ID:???
>>128
null = null は真か偽か

130 :NAME IS NULL:2009/12/01(火) 01:35:25 ID:???
NULL == NULL はNULLですよね。
UNIQUE(A, B) <=> A==A AND B==B <=> TRUE AND NULL <=> NULL
ということでINSERTできてしまうのですか・・・
B=NULLでAが同じ値をINSERT出来なくする方法はあるのでしょうか?

131 :NAME IS NULL:2009/12/01(火) 02:43:26 ID:???
uniqueキーにnullを許すのがそもそも間違いなんじゃないの?

132 :NAME IS NULL:2009/12/01(火) 07:12:24 ID:???
UNIQUE 制約があっても複数の NULL を挿入できるのは SQL標準で保証されている。
NULL は UNKNOWN と読み替えたほうが良い。複数の未知の値が一致するとは限らないでしょ?

条件付きインデックスとか式インデックスが使えれば対処方法もあるんだけど、
SQLite だと B にほかで使わない適当なNULL以外の値を入れるくらいしかないのでは。

133 :NAME IS NULL:2009/12/01(火) 10:07:15 ID:???
>>130
NULL==NULLって成立すんの!?
知らんかった

134 :NAME IS NULL:2009/12/01(火) 21:01:30 ID:???
成立ってなんだよ?
NULL=NULL → NULL。true でも false でもない。
たいていは IS NULL との間違いだがね。

135 :NAME IS NULL:2009/12/01(火) 21:08:34 ID:???
>>134
>NULL == NULL はTRUEですよね
って空耳しちゃったんだよ!

136 :NAME IS NULL:2009/12/05(土) 21:05:02 ID:???
sqlite3でupdateとかDB更新すると高い確率でjournalというファイルができてDB本体に書き込まれていないのですがどんな原因が考えられるでしょうか?何回かに1回は正常に更新できてjournalもできません。

137 :NAME IS NULL:2009/12/05(土) 23:31:11 ID:???
>>136
DBに書き込めないって、何を持って書き込めないって言っているの?
sqlite上からSELECTした結果が出ていれば、DB的には書き込めているのだけど?

journalファイルだけしか更新されていないよんという話なら、VACUUMしてみ。

138 :NAME IS NULL:2009/12/06(日) 01:06:10 ID:???
journalファイルだけできていて本体のDBはupdateされてないという状態です。selectしても更新前の値のままです。
なぜか知らないけどjournalファイルをエクスプローラ上で削除するとDBが更新されてる。

何回かやってたらjournalファイルができずに普通に更新されるようになったりとわけがわからないです。

139 :NAME IS NULL:2009/12/06(日) 01:21:34 ID:???
基本的なことかもしれませんが、journalファイルができずに更新できる場合とjournalファイルができてしまう場合はどのように違うのでしょうか?
journalファイルができて残ってしまうということは正常にdb書き込みができていないという理解で正しいでしょうか?
sqliteはpythonからたたいているのですが
db open -> update -> commit -> db close
という順番で、commitは呼び出しています。

140 :NAME IS NULL:2009/12/06(日) 02:08:55 ID:???
beginしてないがな
あとupdateとcommitでエラーが発生していないのは確かか?

141 :NAME IS NULL:2009/12/06(日) 05:45:42 ID:???
馬鹿は使うな

142 :NAME IS NULL:2009/12/06(日) 09:06:51 ID:???
>>140
コメントありがとうございます。
pythonのsqlite3モジュールではconnectionオブジェクトがトランザクションを管理しているのでbeginは呼び出す必要がないと思います(実際そういうメソッドもないです)。
ただ、auto commit modeにしてないときはDB書き込み時だけcommit()を呼ぶのが決まりだそうです。
参考:ttp://xania.org/200711/python-sqlite-gotcha

非常に短いコードですが下でも問題の現象が再現します。journalができて書き込みできてない場合とjournalができず正常に書き込める場合があります。
もしご存知ないようでしたらpython特有の問題かもしれないのでpythonスレ行きます・・・

import sqlite3

db = sqlite3.connect("test.db", isolation_level=None)
db.execute("CREATE TABLE test (id INTEGER, data VARCHAR(10));")
db.commit()

db.execute("INSERT INTO test VALUES (1, 'hello');")
db.execute("INSERT INTO test VALUES (2, 'bye');")
db.commit()

db.close()


143 :NAME IS NULL:2009/12/06(日) 09:24:02 ID:???
Pytonからではなく、sqliteコマンド使った際はどうなるの?

144 :NAME IS NULL:2009/12/06(日) 09:38:02 ID:???
>>143
sqlite3.exe test.db
CREATE TABLE test (id INTEGER, data VARCHAR(10));
INSERT INTO test VALUES (1, 'hello');
INSERT INTO test VALUES (2, 'bye');

まったく問題なく書き込めてます。
ためしに別のマシンで上のpythonスクリプトを走らせてみましたがまったく問題なく書き込めました。

しばらく前にWindows起動時にchkdskが走ってたことがあったからHDDが破損しているのかも。
ちょっとスキャンディスクやってみます。


145 :NAME IS NULL:2009/12/06(日) 16:08:47 ID:???
一応ご報告まで

あれからプロジェクトのフォルダを別のパスへ移動したり別のドライブへ移動したりしましたがその場合はjournalができずに正常に書き込めました。
やはりハードディスクに何か原因があるようです。
コメントくださった方ありがとうございました。

146 :NAME IS NULL:2009/12/06(日) 18:12:14 ID:???
いいえ、どういたしまして。

147 :NAME IS NULL:2009/12/06(日) 18:19:25 ID:???
いいえ、こちらこそ。

148 :NAME IS NULL:2009/12/09(水) 21:14:21 ID:+arAhXjQ
SQLite Release 3.6.21 On 2009 Dec 07 (3.6.21)

Changes associated with this release include the following:

* The SQL output resulting from sqlite3_trace() is now modified to include the values of bound parameters.
* Performance optimizations targetting a specific use case from a single high-profile user of SQLite.
A 12% reduction in the number of CPU operations is achieved (as measured by valgrind).
Actual performance improvements in practice may vary depending on workload. Changes include:
o The ifnull() and coalesce() SQL functions are now implemented using in-line VDBE code
rather than calling external functions,
so that unused arguments need never be evaluated.
o The substr() SQL function does not bother to measure the length its entire input string if it is only computing a prefix
o Unnecessary OP_IsNull, OP_Affinity, and OP_MustBeInt VDBE opcodes are suppressed
o Various code refactorizations for performance
* The FTS3 extension has undergone a major rework and cleanup.
New FTS3 documentation is now available.
* The SQLITE_SECURE_DELETE compile-time option fixed to make sure that content is deleted even
when the truncate optimization applies.
* Improvements to "dot-command" handling in the Command Line Interface.
* Other minor bug fixes and documentation enhancements.

149 :NAME IS NULL:2009/12/11(金) 16:22:16 ID:???
System.Data.SQLite 1.0.65.0 を使用しています。

PRIMARY KEY (id, name, comment)

という制約を CREATE TABLE 時に指定したのですが
id のレコードが重複しただけでエラーになります。

id, name, comment の3つすべてが重複した時点でエラーになる
記述方法はあるのでしょうか?

150 :149:2009/12/11(金) 16:35:55 ID:???
すいません気のせいでした。

151 :NAME IS NULL:2009/12/11(金) 21:44:26 ID:hA6Gai8K
pupsqliteで作成したBOOLEAN型のtestというキーがあります。
NULL OKのキーです。

以下のSQLを実行すると構文エラーが発生します。
select * from test_db where delete != ''

TEXT型に同じことを実行した場合はエラーとなりません。
どこが間違えているのでしょうか?

152 :NAME IS NULL:2009/12/12(土) 09:27:44 ID:???
deleteなんてカラム名がやばいンじゃね?

153 :NAME IS NULL:2009/12/12(土) 09:37:37 ID:???
select * from "test_db" where "delete" != ''


154 :NAME IS NULL:2009/12/16(水) 12:52:24 ID:Kj2cXgn5
sqlite3_exec() で、".read hoge.sql"みたいなのが使えないけど
どうすれば使えるようになるかな

155 :NAME IS NULL:2009/12/16(水) 14:56:52 ID:???
.read 'hoge.sql'

156 :NAME IS NULL:2009/12/17(木) 11:35:41 ID:???
sqlite3_execってSQLいてコマンドもつかえるの?

157 :NAME IS NULL:2009/12/17(木) 14:48:04 ID:???
Sqlite 2.8.17なんだけど、AUTOINCREMENTって使えないの?

INTEGER PRIMARY KEY AUTOINCREMENTだと
SQL error: near "AUTOINCREMENT": syntax error
って怒られるんだけど

INTEGER PRIMARY KEY で同じIDが再利用されないようにするには論理削除するしかないってことっすかね?

158 :NAME IS NULL:2009/12/17(木) 15:00:32 ID:???
INTEGER PRIMARY KEY でオートインクリメントになるよ
そういうことでなくて?

159 :NAME IS NULL:2009/12/17(木) 15:03:43 ID:???
あぁ、ゴメンなさい。
判りにくいですね。

オートインクリメントでINSERTした最新のレコードをDELETEして、
またINSERTすると、同じ番号になっちゃうので、それを避けたいということです。



160 :NAME IS NULL:2009/12/17(木) 15:20:28 ID:???
論理削除って削除フラグ付けるって話か
オートインクリメントだけの別テーブル作ってそっちからキーもらってくるとか

161 :NAME IS NULL:2009/12/18(金) 15:47:33 ID:???
>>155
使えないじゃねーか。

162 :NAME IS NULL:2009/12/18(金) 16:38:33 ID:???
すまん、sqlite3.exeと間違えた。

163 :NAME IS NULL:2009/12/18(金) 19:36:09 ID:???
たしかに

164 :NAME IS NULL:2009/12/19(土) 08:03:04 ID:???
このソフト最近知りました。
ところで皆さんはSQLite用のDAO、DTOとかレコードセット(データテーブル)クラスなどは自作ですか?
私も作りたいんですが何か参考になるようなオープンソースなどのソフトは無いでしょうか?


165 :NAME IS NULL:2009/12/19(土) 09:41:35 ID:???
ぐぐって探した

166 :NAME IS NULL:2009/12/19(土) 10:14:42 ID:???
>>164
一通りの言語でDAO/DTO関連の自動生成整ってると思うけど・・・
「IDE SQLite 好きなO/Rマッピングツール」で検索かければ?

167 :NAME IS NULL:2009/12/21(月) 11:00:18 ID:???
SELECT * FROM A;
ってデータベースロックするの?

168 :NAME IS NULL:2010/01/06(水) 22:33:09 ID:awKYQKBZ
最大同時接続数なんチョン?

169 :NAME IS NULL:2010/01/07(木) 00:57:27 ID:???
>>168
同時は無いな。ulimitの上限いっぱいまでいけるだろ。1万くらいだっけ?

170 :NAME IS NULL:2010/01/07(木) 15:21:14 ID:???
>>167
フロントエンドのコマンドプロンプトからだとロックしてるっぽいなぁ
SELECTだけなら大丈夫だろうと安易に実行してたら、
裏で動いてるINSERTとかが失敗してることが偶にある
とりあえず.timeoutとかで逃げてるけど


171 :NAME IS NULL:2010/01/08(金) 00:57:37 ID:VM6S2FNA
SQLite Release 3.6.22 On 2010 Jan 06 (3.6.22)
Changes associated with this release include the following:
* Fix bugs that can (rarely) lead to incorrect query results
when the CAST or OR operators are used in the WHERE clause of a query.
* Continuing enhancements and improvements to FTS3.
* Other miscellanous bug fixes.

172 :NAME IS NULL:2010/01/09(土) 20:32:50 ID:???
次のリリースでsqlite3.dllが500KB超えそうだな

173 :NAME IS NULL:2010/01/09(土) 20:54:34 ID:???
500KBだろうが1MBだろうがいくつでも構わない

174 :VIPPPPP:2010/01/09(土) 23:05:15 ID:s0u/5x2j
□□□□□□□□□□□□□□□□□□□□□□□□□□
□■■■■■□□□□□■■■□□□□■□□□□□■□
□■□□□□■□□□■□□□■□□□■□□□□□■□
□■□□□□■□□■□□□□□■□□□■□□□■□□
□■□□□□■□□■□□□□□■□□□□■□■□□□
□■■■■■□□□■□□□□□■□□□□□■□□□□
□■□□□□■□□■□□□□□■□□□□□■□□□□
□■□□□□■□□■□□□□□■□□□□■□■□□□
□■□□□□■□□■□□□□□■□□□■□□□■□□
□■□□□□■□□□■□□□■□□□■□□□□□■□
□■■■■■□□□□□■■■□□□□■□□□□□■□
□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□


175 :NAME IS NULL:2010/01/15(金) 07:45:37 ID:???
他のテーブルのデータで更新したいのですが
update a
set
item1=(select b.item1 from b where a.key=b.key),
item2=(select b.item2 from b where a.key=b.key)
これをもっとスマートにできないでしょうか?

oracleだと
update a
set
(item1, item2)=(select b.item1,b.item2 from b where a.key=b.key)
こんな感じになると思うんですけど

176 :NAME IS NULL:2010/01/16(土) 00:14:34 ID:???
>>175
SQLite Query Language: UPDATE
ttp://www.sqlite.org/lang_update.html

177 :NAME IS NULL:2010/01/16(土) 11:21:22 ID:???
SQLiteとOracleを比べちゃう男の人って・・・

178 :NAME IS NULL:2010/01/17(日) 07:58:19 ID:???
突然何言ってんだこいつと思ったら>>175にカッ飛んだレスしてたんだな

179 :NAME IS NULL:2010/01/17(日) 10:18:02 ID:???
SQLiteのデータベースを大量に作成する運用って、現実的でしょうか?
Webサービスでユーザーごとにデータベースファイルを作成するようなケースです。

180 :NAME IS NULL:2010/01/17(日) 18:26:25 ID:???
へんてこりんな設計だな。好きにしたら。。。


181 :NAME IS NULL:2010/01/17(日) 19:36:34 ID:???
>>179
それぞれのDB間にほぼ関連性が無いのなら、大いに現実的な実装でしょう。

182 :NAME IS NULL:2010/01/17(日) 21:11:31 ID:???
>>179
むしろそういう実装にすべき
SQLiteはデータベースロックをしちゃうんだから、ほかのユーザがロック中でも
影響無くアクセスが出来るようにDBファイルをきちんとわける

183 :NAME IS NULL:2010/01/17(日) 22:16:20 ID:???
Webサービスで使うならばMySQLとかの良くね?

184 :NAME IS NULL:2010/01/18(月) 01:57:25 ID:???
(1) SELECT してレコードの存在チェック(必要に応じて行Lockも行う)
(2) レコードが無ければ INSERT
(3) レコードがあれば UPDATE

じゃなく一文でやるような方法はsqliteにありますか?(mysqlでいうとreplaceのような)
または、前述の方法は妥当ですか?


185 :NAME IS NULL:2010/01/18(月) 02:00:14 ID:???
それともう一つ
とりあえずinsertする→unique制約で怒られる→updateする
とうのもあるんですがこれもありですか?

186 :NAME IS NULL:2010/01/18(月) 09:57:17 ID:???
>>184


187 :NAME IS NULL:2010/01/18(月) 09:58:40 ID:???
途中で書いちゃったぜ

>>184
replace into はsqliteにもあるよ

188 :NAME IS NULL:2010/01/19(火) 13:56:13 ID:???
>>187
ありがとう

189 :NAME IS NULL:2010/01/19(火) 21:27:11 ID:???
System.Data.SQLite 1.0.65.0 を使ってCSVファイルをインポートしたいんですが、可能です?
一行ずつinsertしかないですかね?

190 :NAME IS NULL:2010/01/21(木) 10:11:40 ID:???
哲学的なことに聞こえるかもしれないけど
可能です?とか聞いてくる人には不可能。

191 :NAME IS NULL:2010/01/26(火) 19:03:04 ID:???
REPLACE INTO でレコードを更新した時、更新後のレコードのrowidは
last_insert_rowid()で得られますが、更新前のrowidを取得する方法はありますか?
REPLACEする前にSELECTで取得するしかないでしょうか?

192 :NAME IS NULL:2010/01/27(水) 16:18:21 ID:???
>>191
rowidって更新されるの?しらんかったわ

193 :NAME IS NULL:2010/01/31(日) 03:28:33 ID:???
rowidが更新されるって話は誰もしてないと思うんだが

194 :NAME IS NULL:2010/01/31(日) 04:34:44 ID:???
>>193
更新されることが前提の花氏でしょ?
更新されないならREPLACE後に取ればよくね?

195 :NAME IS NULL:2010/01/31(日) 10:14:25 ID:???
そらそうだ

196 :NAME IS NULL:2010/01/31(日) 12:09:51 ID:???
REPLACEに失敗した時に取りたいとか
にしても書き方が悪いが

197 :NAME IS NULL:2010/01/31(日) 17:22:12 ID:???
System.Data.SQLite 1.0.65.0 を使用しています。
C#のプログラム上からDBファイルを File.Deleteで消そうとすると
まだアクセスしてますって怒鳴られます。

プログラム上から削除する方法やコマンドなどありますか?

198 :NAME IS NULL:2010/01/31(日) 17:24:19 ID:???
DBをcloseしてから削除

199 :NAME IS NULL:2010/01/31(日) 17:42:24 ID:???
>>198
SQLiteConnection を new して
すぐ Close してから
File.Delete したら消えました。

いつも SQLiteConnection のインスタンスを using でくくってるので
自動的に Close してくれてるものだとばかり・・

ありがとうございました。

200 :NAME IS NULL:2010/02/01(月) 21:38:58 ID:???
PupSQLite使ってる方、
「フィールドの編集」画面の
インデックスのチェック欄と実際の設定ちゃんと合ってます?
何か設定してあるのにチェックが入ってないですけど・・・。

ver.1.8.7です。

201 :NAME IS NULL:2010/02/07(日) 18:55:16 ID:???
INSERT って一行ずつしか無理なんだな

202 :NAME IS NULL:2010/02/08(月) 01:13:36 ID:???
うん

203 :NAME IS NULL:2010/02/09(火) 00:56:39 ID:???
>>201
INSERT INTO People(Name, Age) SELECT '田中', 20 UNION ALL SELECT '佐藤', 22 UNION ALL SELECT '山田', 21;


204 :NAME IS NULL:2010/02/09(火) 03:13:57 ID:???
テーブルとかid?の名前って半角の方が無難?

205 :NAME IS NULL:2010/02/09(火) 22:20:18 ID:???
>>204
経験的に半角英数字記号(_とか)を使うことが無難

206 :NAME IS NULL:2010/02/10(水) 02:00:31 ID:???
SQLite的には関係ねえが、糞みたいなラッパーとか糞みたいな環境から
使うときに問題になる可能性があるだけだ。

207 :NAME IS NULL:2010/02/10(水) 02:45:22 ID:???
>>205-206
やっぱそうなんだね、ありがと

208 :NAME IS NULL:2010/02/10(水) 04:09:30 ID:???
あと、当然ながらコードには気を付ける必要あり。

209 :NAME IS NULL:2010/02/11(木) 19:42:58 ID:???
なんかUPDATEに失敗するときがたくさんあるんだけど
気のせい?

210 :NAME IS NULL:2010/02/11(木) 21:11:42 ID:???
ああロックなんとかってエラーがでてたわ
select でループ中にUPDATE しちゃいけないのねorz

211 :NAME IS NULL:2010/02/11(木) 21:23:47 ID:???
そのスキルでよく使えたな

212 :NAME IS NULL:2010/02/11(木) 21:29:42 ID:???
コピペだもん

213 :NAME IS NULL:2010/02/16(火) 10:27:31 ID:???
もうすぐSQiLLってのがでるぞ

214 :NAME IS NULL:2010/02/16(火) 19:06:30 ID:???
DSかっ

215 :NAME IS NULL:2010/02/17(水) 10:06:57 ID:TLiI1xWz
SQLiteManagerで、SQLite3のDBにアクセスしたときに次のエラー
出る人います?

Fatal error: Cannot redeclare class sqlite3 in
/hoge/hoge/SQLiteManager-1.2.3/include/sqlite3.class.php on line 311

SQLite2のDBだと普通に表示される。例のDeprecatedエラーじゃないから
対処方法を捜索中です。

使用環境:
OS:FreeBSD7.1
SQLiteManagerへようこそ バージョン 1.2.3
SQLite バージョン 2.8.17 - 3.6.19 / PHP バージョン 5.3.1

Cannot redeclareでぐぐってみると、インクルードの再定義によるエラーだとか。
includeを探してinclude_onceにするフラグ?

216 :215:2010/02/17(水) 10:38:07 ID:???
あげてスマンかった。

ちょっとXDebugでCall Stackをちぇっくしてみた。
1 0.0007 388352 {main}( ) ../main.php:0
2 0.0096 999752 SQLiteDbConnect->SQLiteDbConnect( ) ../main.php:90
3 0.0097 999780 SQLiteAutoConnect->sqliteGetInstance( ) ../SQLiteDbConnect.class.php:78

main.phpのインクルードは、
include_once "include/defined.inc.php";
include_once INCLUDE_LIB."config.inc.php";

defined.inc.phpのインクルードは、
include_once "./include/user_defined.inc.php";

config.inc.phpのインクルードは、
include_once INCLUDE_LIB."grab_global.php";
include_once INCLUDE_LIB."SQLite.i18n.php";
include_once INCLUDE_LIB."SQLiteAutoConnect.class.php";
include_once INCLUDE_LIB."common.lib.php";

ふえるわかめ並みにわけわかめ。




217 :NAME IS NULL:2010/02/17(水) 10:54:18 ID:???
>>215
DBのテーブル名とかカラム名にmysqlの予約語が
混じってんじゃないの?

218 :NAME IS NULL:2010/02/17(水) 10:55:07 ID:???
mysqlの予約語じゃねーよphpの予約語だよ

219 :215:2010/02/17(水) 16:34:57 ID:???
>>217>>218
使っていない。というか、sqlite3で新たに作ろうとするとエラーは出ないが
データベースが作られない…orz
うごいてないっぽい・・・・(;~;)



220 :215:2010/02/17(水) 16:41:52 ID:???
追加で言うと、PHP5.2.9では問題なく動いていた。
その時に登録されたDBを開こうとするとこのエラーになる・・・。



221 :NAME IS NULL:2010/02/18(木) 22:32:00 ID:??? ?2BP(2)
データの中身に、ピリオド使えたっけ?
出勤管理するんだけど、入力にコロンを使うと年寄が各自で入力なんで無理っぽい。
9:35出勤なら9..35とテンキー入力させて、sqlからデータを吐かせてエクセルで加工しようと思ってる。
だからピリオドは通るのかな?と思ったんだけど、どう?
通らない場合、なにかテンキーにある、通るキーで、エクセルが計算しちゃわないキー教えてほしい

222 :NAME IS NULL:2010/02/18(木) 22:35:39 ID:???
>>221
データベースなんだから、当然データの中身は何でもあり


223 :NAME IS NULL:2010/02/19(金) 01:56:22 ID:???
>>221
エクセル使うなら現在時刻入力ボタンでも作っとけ

224 :NAME IS NULL:2010/02/19(金) 10:34:48 ID:yDgPgBKP
C++でアプリを作成しています。
ローカルデータの管理にsqlliteを使用しようとしていろいろ勉強しています。
データのデータの書き込み読込み、クエリ実行など基本的なことはできました。

基礎的な質問かも知れませんが、テーブルの行数をカウントしたいのですがどのようにすればよいでしょうか?
select文で指定テーブルを、sqlite3_step()で1行ずつカウントするのは可能なのですが、
どうもスマート方法に思えません。 よい関数などありましたらご教授おねがいしたいです。

225 :NAME IS NULL:2010/02/19(金) 10:47:22 ID:???
SELECT COUNT(*) FROM foo WHERE xxx=yyy;

はずしてる?

226 :NAME IS NULL:2010/02/19(金) 10:48:12 ID:???
>>224
select count(*) from hoge;
ってことになると思うが、C++より先にSQLを勉強すべきだよな

227 :NAME IS NULL:2010/02/19(金) 11:23:48 ID:yDgPgBKP
>>225, 226
ありがとうございます。
確かに今回のアプリ作成で急遽SQLの勉強も始めたので、SQLに関する知識も低いですm(_ _)m

最後に質問なのですが、
select count(*) from hoge;
でステートメントを作成後に、
sqlite3_prepare()
sqlite3_step()
sqlite3_data_count()で行数を取得できるのでしょうか?


228 :NAME IS NULL:2010/02/19(金) 13:11:46 ID:???
>>227
sqlite3_data_count()は、sqlite3_step()呼び出した後では
レコード数(行数)ではなくてsqlite3_column_count()の値と
同じカラム数を返すのではないでしょうか?

参考
ttp://www.3rd-impact.net/Document/SQLite/Translation/Current/capi3ref.html#sqlite3_data_count

229 :NAME IS NULL:2010/02/19(金) 15:48:28 ID:???
>>227
sqlite3_step() の後

const int nCount = sqlite3_column_int( statement, 0);

で取れると思う


230 :NAME IS NULL:2010/02/19(金) 16:46:47 ID:???
>>229
constつける意味は?

231 :NAME IS NULL:2010/02/19(金) 18:02:39 ID:???
ん?不用意な変更防止のためなるべく付けるようにしているだけ
絶対間違わない自信があるんならつけなくてもいいんじゃね?


232 :NAME IS NULL:2010/02/20(土) 10:54:37 ID:???
正直C++のconstは汚い

233 :NAME IS NULL:2010/02/20(土) 21:44:42 ID:??? ?2BP(2)
>>223
残念ながらスキルなし・・・
今年初めてWordだのエクセルだの触り始めた。
SQLだってさっぱりわからない。
これから本を買ったり読んだりして覚えたいけど、とりあえずやっつけで
年度末までに出退勤管理ツールつくらなきゃいけない。
開発言語は「なでしこ」しかない。今から理解できるのコレくらい・・・

234 :NAME IS NULL:2010/02/20(土) 23:15:10 ID:???
なんでそんな仕事引き受けたw

235 :NAME IS NULL:2010/02/21(日) 09:15:43 ID:???
>>233
フリーソフトでも探せば有るんじゃないか?EXCELとかで。

236 :NAME IS NULL:2010/02/21(日) 09:20:24 ID:??? ?2BP(2)
出退勤だけじゃないのでorz
仕事は受けるものではなく、押しつけられるもの、という勤め人です。
さすがにVPNはNTTのサービスにしてもらおうと思ってる。構築しようと試行錯誤したけど無理だ。
Win機しかない上にネットワークの知識もない・・・

237 :NAME IS NULL:2010/02/21(日) 11:25:31 ID:???
>>236
素直に外注しろ
通常業務もあって最初から勉強しながらじゃ、動く物ができるまでに3ヶ月はかかるだろ

C++選んでるのも最悪
ビジネスアプリでC++とか不要すぎ
例えるならカラーボックス組立てるために建築重機の免許取ろうとするようなもん

238 :NAME IS NULL:2010/02/21(日) 12:07:26 ID:???
スポーツ選手と同じで才能のない奴はプログラミングできないよ

239 :NAME IS NULL:2010/02/21(日) 12:12:17 ID:???
>>236
Linux+OpenVPNですぐに張れるよ。ネットワークの知識があれば、結構簡単。
出退勤じゃー、もっとスクリプタブルな言語の方がいいんじゃまいか?
Wind○wsしかないんだとしても、PHPくらいは動かせるだろ?Webアプリにしとけって。

240 :NAME IS NULL:2010/02/21(日) 13:27:37 ID:???
そんなスキルがあれば上のような事情にはならないと思うが・・・

おれも外注に頼んだ方が結局コストが安くすむと思うね。

241 :NAME IS NULL:2010/02/21(日) 16:43:45 ID:??? ?2BP(2)
>>224のひとではない
「なでしこ」はたしかDelphi系だったと思う
外注はまったく考えてない模様。いっそ自分で外注出してこっそり始末をつけたくなってきた

242 :NAME IS NULL:2010/02/21(日) 18:29:34 ID:???
>>241
別人か
それじゃ外注以外完全に手遅れじゃね
要件が全く見えてこないからいい加減だが、普通の奴なら半日で作っちまいそうな話だけどな

243 :NAME IS NULL:2010/02/21(日) 19:02:35 ID:???
>>236
C++できるならxamppをDLしてphp覚えつつで適当にやるのが一番楽だけどね。
(最低限のhtmlができるなら?という条件付き&DBがmysqlになりそうけど)

ただ、xampp知らなそうなのでhtmlもできないとして、現実的なのはVBS覚えて
エクセルのマクロを書く。

sqliteとのコネクトがあってオフィスアプリと連携で言語を覚えるのが面倒なら
「なでしこ」が以外とおすすめ。(コピペで動く)

入力はドットもなしの4or3桁数字を正規表現でやればよくね?

webアプリ経験者の初心者以外なら環境構築から作成まで半日でできるな。

244 :NAME IS NULL:2010/02/22(月) 08:54:50 ID:eX4n3ie9
VPNって言ってるから拠点は複数あるんだろうし、出退勤と言ってるくらいだから
まだ何も無いのだろうね。
この場合、SharePointで構築するのがお勧めなんじゃないかな。
タイムカードのような有りがちな物を外注するメリットは無いと思う。

245 :NAME IS NULL:2010/02/22(月) 14:22:09 ID:???
>>244
少しは質問者の要件見てやれよw
:の入力も不安視される年寄りにSharepointは使えないし
なでしこしかやった事無い奴じゃ1ヶ月で年寄も使えるようなSharepoint環境を構築するのも無理
それにSharepoint一本で行こうとすると、その内数百万の出費と言う壁に阻まれる

246 :NAME IS NULL:2010/02/22(月) 21:28:26 ID:??? ?2BP(2)
なんとか見た目つくってきました
データ押し込めるような見た目とそれをcsvに保存して開くものと。
あとはエクセルでマクロ使って時間計算をできるかな・・・とそっちの方になやむことになりそうです。
タブキー付テンキーとプルダウンメニューをマウスか矢印キーだけで入力させる方向でなんとか。

プログラムの才能とかネットワークを理解する才能が欲しいですorz
ネット関連は10年くらい前にISDNのころAnHttpdで鯖立ててcgi設置練習した程度のものなので

247 :NAME IS NULL:2010/02/23(火) 06:09:22 ID:???
興味のある要件だから今後も報告してほしいな
すれ違いかな?

248 :NAME IS NULL:2010/02/23(火) 11:35:49 ID:??? ?2BP(2)
今知ったけどSQLの構文で置換とか計算できるのか・・・
なんかリファレンスとか本とかかったほうが良いよね
今後何やらされるかわからないし

249 :NAME IS NULL:2010/02/23(火) 14:09:13 ID:???
SELECT 4 * 5;

とか

SELECT REPLACE('ABCDEF', 'AB', 'XY')

なんかのこと?

250 :NAME IS NULL:2010/02/24(水) 15:57:07 ID:??? ?2BP(2)
さきほどSQLITE入門 という本を購入しました
ついでになでしこ公式本も手に入れました
作りかけデータは会社のPCにあるので明日チャレンジしますー
とりあえずできたものを半月〜一カ月、誰かに入力してもらい、
色々と変更するべきところを変更し、と言う作業になりそうです。

どこの会社もその業界ならではの形式があるので、誰かそういうものをフリーソフトで出してほしいものです。
出退勤+入出庫時間+燃料+行先 現状ここまで作り込みました。
行先別給与自動計算をつけたいが実装に悩んでます(給与一覧がないw)

basicの方が簡単じゃないのかって気分になるのがとってもいやですorz

251 :NAME IS NULL:2010/02/25(木) 08:18:21 ID:???
そういやSQLiteの新しい本が出てたな
買った人いる?

252 :NAME IS NULL:2010/02/25(木) 16:59:51 ID:???
>>251
自著宣伝乙

253 :NAME IS NULL:2010/02/25(木) 22:35:42 ID:???
SQLiteがサーバクライアント方式になるラッパーを作った。

254 :NAME IS NULL:2010/02/28(日) 17:09:30 ID:???
SQLiteをWEBで使ってるけどトラブルがぜんぜんないのな
年に1回TKSQLite使ってバキュームするだけ
データ5万件くらいならこんなもんか

255 :NAME IS NULL:2010/03/03(水) 01:22:12 ID:7qgMi6Uf
>>254
5万件ならExcelでも余裕だしな。

256 :NAME IS NULL:2010/03/03(水) 01:42:51 ID:???
エクセルわらた

257 :NAME IS NULL:2010/03/03(水) 10:06:50 ID:???
たしかにテーブルがいっこなら5万件程度エクセルで十分だけどさ

258 :NAME IS NULL:2010/03/03(水) 11:47:35 ID:???
Webでエクセル使うの難しい

259 :NAME IS NULL:2010/03/03(水) 14:26:31 ID:???
まぁ難しいというか面倒くさいけど出来ない話ではないな

260 :NAME IS NULL:2010/03/03(水) 22:12:33 ID:???
開発案件でsqliteを使ってみたいが金にならんから止めておこうという話になったw

261 :NAME IS NULL:2010/03/04(木) 00:34:43 ID:???
バックアップ系をオラクルで固めてメインはSqliteにすればいいんだよ

262 :NAME IS NULL:2010/03/05(金) 16:55:52 ID:???
初めまして。当方、日曜プログラマのSQLite初心者です。
「作業ファイルにためた更新データをマスターファイルに反映させたい」
のですが、うまくSQLが組めません。

たとえば

*MasterFile(主キー,ID)
 ID, 氏名, 住所
 1, 伊藤, 東京都
 2, 田中, 埼玉県
 3, 越智, 京都
*WorkFile(主キー,ID)
 ID, 氏名, 住所
 1, 田中, 岐阜県

とあった時に、
マスターファイルの2番目の行の住所を「岐阜県」に置き換える
場合、どういうSQLを組めばいいのでしょうか?

  UPDATE MasterFile SET MasterFile.住所 = WorkFile.住所

とまでは、直感的で浮かんだのですが、
後半のWHERE句の書き方がまったく分かりません。

開発環境は、FireFoxアドオン版のSQLite Managerで、
MasterFileとWorkFileは同一のファイルにあります。

場違いな質問かもしれませんが、よろしくお願いします。

263 :NAME IS NULL:2010/03/05(金) 17:51:16 ID:???
>>262
例えると
物理のスレで、数字の読み書きが出来ないのですが、足し算をするにはどうすればいいでしょうか?
と聞いてるようなものです。

264 :NAME IS NULL:2010/03/05(金) 18:31:51 ID:???
>>263
 やっぱりそうでしたか。
 該当する場所へ移動します。レスをありがとうございました。

265 :NAME IS NULL:2010/03/08(月) 11:32:39 ID:???
いや聞くんじゃなくてちょっと調べりゃわかるだろう
WHERE句はSELECTと同じなんだから、まずSELECTできるように書いてみては

266 :NAME IS NULL:2010/03/08(月) 14:12:06 ID:???
試行錯誤という言葉をしらないんだな.

267 :NAME IS NULL:2010/03/11(木) 14:57:30 ID:???
ケチケチしてんなや
と思ったけど、この場合考えられる用件は二種類あるんだよな
「重複する氏名を見つけて住所を書き換える」作業をSQLiteのSQL文だけでやるんだとしたら、ちょっと面倒だな

268 :NAME IS NULL:2010/03/11(木) 15:48:50 ID:???
超基本構文でやれるが・・・

269 :NAME IS NULL:2010/03/11(木) 21:15:49 ID:???
ならケチケチしてんなや

270 :NAME IS NULL:2010/03/12(金) 04:46:50 ID:???
>>269
いいからお前が答えとけ
「ちょっと面倒」で済むんだろ?
ケチケチしてんなや

271 :NAME IS NULL:2010/03/12(金) 04:54:19 ID:???
厨房もSQLite使えるんだ

272 :NAME IS NULL:2010/03/12(金) 05:13:16 ID:???
>>261
なるほど
案外変なトラブルがなくていいかもね

273 :NAME IS NULL:2010/03/12(金) 06:22:30 ID:obqGxIVQ
SQLite Release 3.6.23 On 2010 March 09 (3.6.23)

Changes associated with this release include the following:

* Added the secure_delete pragma.
* Added the sqlite3_compileoption_used() and sqlite3_compileoption_get() interfaces as well as the compile_options pragma and the sqlite_compileoption_used() and sqlite_compileoption_get() SQL functions.
* Added the sqlite3_log() interface together with the SQLITE_CONFIG_LOG verb to sqlite3_config(). The ".log" command is added to the Command Line Interface.
* Improvements to FTS3.
* Improvements and bug-fixes in support for SQLITE_OMIT_FLOATING_POINT.
* The integrity_check pragma is enhanced to detect out-of-order rowids.
* The ".genfkey" operator has been removed from the Command Line Interface.
* Updates to the co-hosted Lemon LALR(1) parser generator. (These updates did not affect SQLite.)
* Various minor bug fixes and performance enhancements.

274 :NAME IS NULL:2010/03/14(日) 20:58:13 ID:???
dll500kb超えたか

275 :NAME IS NULL:2010/03/16(火) 12:39:54 ID:???
もうだめポ

276 :NAME IS NULL:2010/03/17(水) 09:05:47 ID:???
っ Linux, *BSD

277 :NAME IS NULL:2010/03/21(日) 18:59:04 ID:??? ?2BP(2)
web鯖がsqliteに対応してないといわれてしょぼーん・・・
MySQLでつくれって殺生な・・・

278 :NAME IS NULL:2010/03/21(日) 19:03:46 ID:???
そんな殺生かい?

279 :NAME IS NULL:2010/03/21(日) 22:57:15 ID:???
MySQLみたいなカスライセンスのカスDBなんて触れたくも無い

280 :NAME IS NULL:2010/03/21(日) 23:24:29 ID:???
えっ、そうなの?

281 :NAME IS NULL:2010/03/22(月) 11:32:29 ID:???
WebでSQLiteは使えなくはないけど、見極めは大切
数百アクセス/hみたいなアクセスが少なければ十分SQLiteでいける。

282 :NAME IS NULL:2010/03/22(月) 22:38:22 ID:???
数千アクセス/sは何がいい?

283 :NAME IS NULL:2010/03/22(月) 22:45:44 ID:???
Oracleじゃね?
ていうか、分散させるから普通そこまでいかんと思う

284 :NAME IS NULL:2010/03/23(火) 00:25:46 ID:???
ttp://www.ddbank.net/cgi-bin/webapp/wiki.cgi?page=mixi%A5%CD%A5%C3%A5%C8%A5%EF%A1%BC%A5%AF%8E%A5%A5%B2%A1%BC%A5%E0%A4%CE%B1%BF%CD%D1%B4%C4%B6%AD
キャッシュ(KVS)、パーティショニング、レプリケーション(スレーブ参照系)、クラスター

DBがメモリーに載っちゃうぐらいのサイトなら関係ないとおもう。

285 :NAME IS NULL:2010/03/23(火) 01:21:26 ID:???
数千アクセス/sを捌けるシステムは無いだろ
滅茶苦茶単純かつ小規模なテーブルへのクエリならどのDBMS(Postgre除く)でも捌けるが
実用レベルの処理なら全部で無理

286 :NAME IS NULL:2010/03/23(火) 10:41:54 ID:???
Postgreって表記で使ったこと無いのがわかるw

287 :NAME IS NULL:2010/03/23(火) 10:45:08 ID:???
アクセスっていうか更新が多いWebアプリでSQLiteだとすぐ辛くならないか?
並列処理が前提のWeb系でSQLiteを好き好んで使うやつの気持がまったくわからんのだが…

288 :NAME IS NULL:2010/03/23(火) 11:02:20 ID:???
SQLiteは何度もガイシュツのようにファイル操作用のライブラリに過ぎないからねい。
同時アクセスに対してはOS提供のファイルロックしかやりようがないので、
性能云々言える話じゃなくなる。

289 :NAME IS NULL:2010/03/23(火) 13:05:44 ID:???
>>286
なにこいつ

290 :NAME IS NULL:2010/03/23(火) 13:34:33 ID:???
iteとかMyって言うのかよw

291 :NAME IS NULL:2010/03/23(火) 14:11:09 ID:???
なにこいつ

292 :NAME IS NULL:2010/03/23(火) 14:23:38 ID:???
要するに、略すなら”Postgres”ってことでしょ

293 :NAME IS NULL:2010/03/23(火) 16:06:48 ID:pSbKS93z
>>287
規模の問題。
YahooがSQLiteで構築されていたら「この人たち大丈夫だろうか?」と思っても
無理はないだろうけど、個人や中小企業のサイトならメリットがある。
特に専用のサーバーを持たずレンタルサーバーでの運用なら、バックアップが
単純で何かあってもすぐメインテナンス出来るのが良い。
よくオープンソース系の放置気味サーバーで、「データぶっ飛びました復旧の
見込みはありません」と書いたまま数年そのままというのを目にするけど、
彼らがSQLiteを採用してたらどうだっただろう?
cronで単純にバックアップしていて、次の日にはたとえ一週間分のデータが
消えたとしても残りは復旧出来ていたと思う。
こういう手軽さがSQLiteの強みだと思う。
そして、同時書き込みはそれほど発生せず、たとえ発生することによって100ms
待たされてもユーザーは思ったほど気にしないものだ。

294 :NAME IS NULL:2010/03/23(火) 16:39:43 ID:???
プロセスごとにボコボコDB作って1h毎に集約すればよいのだよ

295 :NAME IS NULL:2010/03/23(火) 17:44:05 ID:???
PosなんたらSQLの存在意義が分からない
遅いしできない事多いし日本以外じゃ使われてないしでほんと不思議
GPLがイヤなら素直にSQLite使えばいいやん
どうせ大した事せんくせに

296 :NAME IS NULL:2010/03/23(火) 22:03:00 ID:???
Firebirdも忘れないで><

297 :NAME IS NULL:2010/03/23(火) 22:22:05 ID:???
FirebirdはPなんたらの五倍位普及してるでしょ

298 :NAME IS NULL:2010/03/23(火) 22:49:53 ID:???
>>293
SQLite使ったってバックアップ自体しなければ意味がない。
SQLiteだって他だってバックアップ&レストアなんてほとんど手間や技術は変わらない。

299 :NAME IS NULL:2010/03/23(火) 22:51:34 ID:???
何いってんのこの人

300 :NAME IS NULL:2010/03/23(火) 23:57:17 ID:???
>>293
差分バックアップやらバイナリログやらは
他のDBの方がらくちんだろ

301 :NAME IS NULL:2010/03/24(水) 00:17:25 ID:???
何いってんのこの人
差分バックアップなんて問題にされて無いだろ

302 :NAME IS NULL:2010/03/24(水) 00:32:34 ID:???
>cronで単純にバックアップしていて、次の日にはたとえ一週間分のデータが
>消えたとしても残りは復旧出来ていたと思う。
>こういう手軽さがSQLiteの強みだと思う。

>SQLite使ったってバックアップ自体しなければ意味がない。
会話になってないwww

303 :NAME IS NULL:2010/03/24(水) 06:21:53 ID:???
ヒント:Lite

304 :NAME IS NULL:2010/03/24(水) 10:11:56 ID:???
>>293
毎日丸ごとバックアップするのは容量がもったいなくないか?
毎日差分バックアップした方がリソースも食わないしいいんじゃないか?
手軽だし。

305 :NAME IS NULL:2010/03/24(水) 11:42:30 ID:???
>>293
cronで単純にバックアップって、たとえばcpするのとpg_dumpするのとで
手間に差があるとは思えないけどなぁ。

306 :NAME IS NULL:2010/03/24(水) 13:19:04 ID:???
>>293
cpでコピーするのは危険だからやめた方がいい気がする。
コピー中にアクセスされたらやばいっしょ

307 :NAME IS NULL:2010/03/24(水) 13:53:27 ID:???
>>306
でも、SQLiteではdumpだろうがcpだろうがOSのファイルロックに全面依存なのは
変りないからなぁ。その辺はOSのファイルロックを信頼するしかないかと。

308 :NAME IS NULL:2010/03/24(水) 15:42:16 ID:???
cpでのコピーだと、ファイルロックしないから。

309 :NAME IS NULL:2010/03/24(水) 16:14:22 ID:???
昨日から会話が成立してないのはpgユーザーか
迷惑な存在だ

310 :NAME IS NULL:2010/03/24(水) 16:35:20 ID:???
迷惑なのはお前一人だろ

311 :本田:2010/03/27(土) 00:33:56 ID:qqcAE8kL
>>293
zfsは任意の時間のファイルシステム自身のスナップショットを取れるようになっている。
バックアップ機能の貧弱なDBMSはそれ自身のバックアップ機能に頼らす、
新しいファイルシステムのバックアップ機能を使ったほうがベターかもしれない。

312 :NAME IS NULL:2010/03/29(月) 02:44:54 ID:???
delete from hoge a where exists (select 1 from hoge b where a.id = b.id) が怒られるんだけどなんでじゃろ…?

313 :NAME IS NULL:2010/03/29(月) 08:29:02 ID:???
>>312
delete文のテーブルにエイリアスが使えないとかじゃね?知らんけど

314 :NAME IS NULL:2010/03/29(月) 20:46:41 ID:???
>>312
delete from hoge a where a.id in (select b.id from hoge b)

多分これは通ると思う。

詳細な理由は分かりません。多分、セミ結合が関係してるんでしょう。

315 :NAME IS NULL:2010/03/29(月) 20:50:14 ID:???
>>313 >>314
うぎぎありがとう… 一位制約かけてCONFLICTのときREPLACEする方向でいいやにすることにしました…

316 :NAME IS NULL:2010/03/30(火) 09:09:50 ID:???
これってファイルシステムもOSも無いシステム(要するにメモリのみ)でも使えるの?

317 :NAME IS NULL:2010/03/30(火) 09:32:25 ID:???
メモリだけでどうやって使うの?

318 :NAME IS NULL:2010/03/30(火) 10:08:51 ID:???
>>317
ファイル名を「:memory:」と指定するとインメモリDBとして動作するじゃない
じゃぁ、ファイルシステム無しでメモリヒープだけで動いてくれないかと


319 :NAME IS NULL:2010/03/30(火) 21:19:43 ID:???
sqlite自体がOS上で動くソフトウェアなのにOSも無しにどうやってsqlite動かすの?
ハイパーバイザー型のsqliteとか聞いたこと無いし

320 :NAME IS NULL:2010/03/31(水) 00:38:57 ID:???
OSっつってもファイルシステムとmutexぐらいでしょ、使うの
で、ファイルシステム使わないオプションが既にあって、
OS無しならそもそも排他制御も不要だから、コンパイルスイッチで
ちょいちょいとすれば静的リンクできないかなと思って

321 :NAME IS NULL:2010/03/31(水) 01:30:46 ID:???
そういえば知り合いがファイルシステム無しで動かしてたわ。
OSはitronっぽい何かを使ってるらしいのでようわからんけど
FATすら高くて買えない小さいプロジェクトって言ってたな。

322 :NAME IS NULL:2010/03/31(水) 01:33:31 ID:???
発言が間抜けすぎ

323 :NAME IS NULL:2010/03/31(水) 08:50:26 ID:???
コンピュータというかプログラムの動作原理を理解していない人が混じっているのは
春先のせいなのか

# 釣りだよね?釣りと言ってくれ

324 :NAME IS NULL:2010/03/31(水) 09:18:28 ID:???
釣り以外のなにものでもないだろ

325 :NAME IS NULL:2010/03/31(水) 09:44:20 ID:???
uITRONで動くならなんとかなるかな
よし、ソース眺めてコンパイル頑張ってみる

まぁ最近は何でもOS載ってるしね
想像できないのも無理ないさ

326 :NAME IS NULL:2010/03/31(水) 10:22:52 ID:???
メモリだってOSからもらう
組み込みでこれのソース使うならそれもエミュレートした関数用意しないとね

327 :NAME IS NULL:2010/03/31(水) 10:25:05 ID:???
uITRONだってOSだろ

328 :NAME IS NULL:2010/03/31(水) 10:38:11 ID:???
C/C++のライブラリなんだからソースぐらい眺めてからモノ言えよとは思う
OSありき前提のシステムコールをバリバリ使ってる時点でもうね…

329 :NAME IS NULL:2010/03/31(水) 11:32:54 ID:???
システムコールなんて代表的なのが30個くらい
マイナーなの入れてもせいぜい300程度だし
自分でOSのフリをすればなんとでもなるよ

330 :NAME IS NULL:2010/03/31(水) 11:35:22 ID:???
>>326
いや、組込み屋なら自分で作ったの持ってるだろ

331 :NAME IS NULL:2010/03/31(水) 12:08:02 ID:???
>>329-330
そんな自力でなんとかしちゃうコア層がエンジニア全体の何割いるんだか

332 :NAME IS NULL:2010/03/31(水) 12:14:33 ID:???
組込み系では簡単OSぐらいなら自分でこさえる場合もままある

ちなみに仮想メモリを使わないシステムならメモリ確保にOSは関係ない
強いて言えばリンカとスタートアップルーチンとmallocのお仕事か

まぁこれ以上は板違いだね

333 :NAME IS NULL:2010/03/31(水) 12:16:39 ID:???
SQLiteのくせに会話が全然ライトじゃなくてついていけない

334 :NAME IS NULL:2010/03/31(水) 22:41:55 ID:???
そんなに簡単なら自分でOS不要のsqlite作れば良いのに

ただ316を見る限り現行のsqliteをOS無しで動かそうとしてるみたいだけど


335 :NAME IS NULL:2010/03/31(水) 23:17:48 ID:???
>>332は「簡単“な”OSぐらいなら」と書こうとしたんじゃないか、文脈から察するに。

336 :NAME IS NULL:2010/03/31(水) 23:24:45 ID:???
簡単レシピっていうのは、簡単なレシピのことだよな

337 :本田:2010/04/01(木) 00:57:14 ID:njYnAK3+
SQLite Release 3.6.23.1 On 2010 March 30 (3.6.23.1)
Changes associated with this release include the following:
* Fix a bug in the offsets() function of FTS3
* Fix a missing "sync" that when omitted could lead to database corruption
if a power failure or OS crash occurred just as a ROLLBACK operation was finishing.

338 :NAME IS NULL:2010/04/02(金) 17:00:51 ID:kjEmh5Hv
MFC上でSqliteを使用しています。
UNICODEで日本語の文字列を使用した場合、どうも文字化けを起こしているようなのですが
原因を教えていただけないでしょうか?


・書き込み
CString strBuf = _T("あいうえお");
sqlite3_bind_text16(xxx,1,(void*)(LPCWSTR)strBuf,-1,SQLITE_STATIC);


・読込み
const void* pVal = sqlite3_column_text16( xxx, 1 );
CString strBuf = CString( (WCHAR*)pVal );

TkSQLite で見たところ書き込みの段階で文字化けしているようです。

339 :NAME IS NULL:2010/04/07(水) 22:06:04 ID:???
UnicodeとUTF-8の区別はついてる?

340 :NAME IS NULL:2010/04/07(水) 23:04:37 ID:cFdqstGp
ついてるだろな。
SQLITE_TRANSIENTでどうなるか試してみてほしいな。

341 :NAME IS NULL:2010/04/13(火) 01:52:09 ID:???
WindowsMobileで使うならsqliteとsqlceのどちらがいいんだろう

342 :NAME IS NULL:2010/04/13(火) 06:35:40 ID:???
その両方を査定したことのある人って少ないだろうし
ム板か携帯コンテンツ板かどっかにあるだろうWM開発スレで聞いた方が、人に当たる確率高いんじゃないの

343 :NAME IS NULL:2010/04/13(火) 17:11:50 ID:???
カラム数6つ、データ数4万ぐらいのDBがあります。メモリDBとして使用してます。
SELECT で4つのカラムに該当(全てINT型)するデータを取得するという処理を複数回(10万回ぐらい)します。

これと、上記のデータをリストで作成して、ループ文で回して取得する2種類の実行時間を測定してみたところ、
4倍ほどリストのループ検索の方が早かったのですが、これぐらいの単純なDBなら自作の方が早いのでしょうか?

http://www.sutosoft.com/room/archives/000482.html
こういうのも実験後で見つけました。


344 :NAME IS NULL:2010/04/13(火) 17:17:27 ID:???
少ないクエリで複雑な条件のものを手早く持ってくる、ほうが得意

345 :求む勇者:2010/04/16(金) 14:14:10 ID:C4ymkbtz
ヒマで親切な勇者求む
jqueryのflexigridを使おうとしています。
mysqlからphpでjson形式で出力してものを読んでいるようですが、これをsqlite3を使うように改造しようとしています。
が!できないんです。負け犬です・・・。

flexigrid
http://www.flexigrid.info/
上記の Show sample PHP code for JSON にコードがあります。

教えてくれた人には50000ペリカ差し上げます。

346 :NAME IS NULL:2010/04/16(金) 17:59:27 ID:???
スレ違い
失せろ

347 :NAME IS NULL:2010/04/16(金) 20:11:30 ID:C4ymkbtz
そんなこと言わないで教えてくださいよ

348 :NAME IS NULL:2010/04/16(金) 20:39:56 ID:???
スレ違い

349 :NAME IS NULL:2010/04/17(土) 08:39:28 ID:???
50000ペリカっていくらだよ?

350 :NAME IS NULL:2010/04/17(土) 09:06:42 ID:???
スレ違いですれ違ってるな・・・


351 :NAME IS NULL:2010/04/17(土) 13:22:36 ID:???
2〜3万件のテーブルでも重くならなくて
フィルタが使えて(もしくはSELECTの結果から編集可)
列の幅をテーブルごとに保存できて
セルに画像表示できるsqliteのフロントエンドありませんか?

352 :NAME IS NULL:2010/04/17(土) 13:49:17 ID:???
無ければ自分で作ればよろし

353 :351:2010/04/17(土) 14:06:58 ID:???
そうですね
そのほうが早そうです

354 :NAME IS NULL:2010/04/17(土) 17:27:09 ID:???
>>351
sqliteコマンドが使えるんじゃないか?
出力にフィルタもかけられるし

355 :NAME IS NULL:2010/04/17(土) 19:28:49 ID:???
画像表示無理だろ

356 :NAME IS NULL:2010/04/17(土) 19:58:25 ID:???
>>355
そういうフィルタ書けばよくね?

357 :NAME IS NULL:2010/04/17(土) 20:48:25 ID:???
こんなもん1時間もありゃ書けるだろ
作れよ

358 :NAME IS NULL:2010/04/17(土) 21:46:32 ID:???
もうすぐ一時間だけど出来た?

359 :NAME IS NULL:2010/04/28(水) 00:29:12 ID:IcHPXx21
>357 の1時間て長いな

360 :NAME IS NULL:2010/04/28(水) 01:35:56 ID:???
ずっと待ってたのかよ
暇人だなぁ

361 :NAME IS NULL:2010/04/28(水) 02:14:49 ID:???
なぜこの流れで作ってもらえると勘違いできるんだろう

362 :NAME IS NULL:2010/04/28(水) 10:42:36 ID:???
なぜこの流れで>>357が叩かれている事に気付かないんだろう

363 :NAME IS NULL:2010/04/28(水) 10:49:56 ID:???
.NETでならマジに1時間で作れるが

364 :NAME IS NULL:2010/04/28(水) 12:52:58 ID:???
まあこのくらいなら使い捨てでもさっくり自分で作った方がいいね

365 :NAME IS NULL:2010/04/28(水) 13:46:54 ID:???
さすがに1時間は無理だが連休使えば作れるな・・・
よし、ちょっと待ってろ

366 :NAME IS NULL:2010/04/28(水) 21:45:47 ID:???
いや別にいらんし

367 :NAME IS NULL:2010/05/03(月) 20:48:04 ID:???
そろそろ諦めたか。DataGridViewは細かいことやろうと思うと、そこそこスキルが要求されるからな。

368 :NAME IS NULL:2010/05/04(火) 07:56:56 ID:???
コントロールの継承とかオーナードローとか基本中の基本じゃないの

369 :NAME IS NULL:2010/05/04(火) 09:55:23 ID:???
元の要求仕様は単純なんだからDataGridView使うことも無いわ

370 :NAME IS NULL:2010/05/04(火) 15:51:16 ID:???
>>369
それじゃ1時間じゃ作れんな

371 :NAME IS NULL:2010/05/04(火) 17:00:04 ID:???
君はそうなのかもしれんね

372 :NAME IS NULL:2010/05/04(火) 17:26:58 ID:???
おれなら53分あれば十分

373 :NAME IS NULL:2010/05/04(火) 17:34:11 ID:???
マダーチンチン

374 :NAME IS NULL:2010/05/05(水) 00:19:03 ID:???
>>371
なら1時間で作りきるプランを示せよ
成果物はイラネ

375 :NAME IS NULL:2010/05/05(水) 18:32:44 ID:???
GTK使えば1分で出来るな。

376 :NAME IS NULL:2010/05/05(水) 20:47:55 ID:???
>>375
まだぁ?

377 :NAME IS NULL:2010/05/06(木) 16:40:09 ID:???
ブラウザベースなら5分で出来るわな。
まぁ俺の5分はやる気出すまでが長いんだが。

378 :NAME IS NULL:2010/05/06(木) 16:46:01 ID:???
>>377
>2〜3万件のテーブルでも重くならなくて
で無理
ページングとかの糞UIはありえないから

379 :NAME IS NULL:2010/05/06(木) 18:49:10 ID:???
口だけ番長

380 :NAME IS NULL:2010/05/06(木) 22:57:42 ID:???
いくらSQLiteでもたかだか3万件で重くなることはないだろ。

381 :NAME IS NULL:2010/05/06(木) 23:15:39 ID:???
>>380
馬鹿乙

382 :NAME IS NULL:2010/05/06(木) 23:56:22 ID:???
>>378
要はスクロールで画面遷移なしに2〜3万件のエンティティが表示されりゃいいんだろ?
ちゃんとそこまで考えて5分だぜ。
まぁ・・・IEに対応すると60分くらいは必要になるけど・・・。

383 :NAME IS NULL:2010/05/07(金) 07:07:34 ID:???
>>382
よろしく

384 :NAME IS NULL:2010/05/07(金) 12:13:12 ID:???
まーだ誰かが作ってくれるって幻想抱いてんのかよ

385 :NAME IS NULL:2010/05/07(金) 15:05:57 ID:???
Linuxなら実際5分で出来るけどな。

386 :NAME IS NULL:2010/05/07(金) 18:35:30 ID:G5v/kBgC
> 【ADO.NET provider】 System.Data.SQLite

のVS2010版はやくしろ

387 :NAME IS NULL:2010/05/08(土) 10:48:54 ID:???
>>385
※ Linux ※ って凄いなぁ・・・笑
OS なのにデーターベース機能もあるんだぁ。。

388 :NAME IS NULL:2010/05/08(土) 10:54:31 ID:???
>>387
今時OSにデータベース機能があるのは当たり前だろ
MacOS XやAndroidなんかもデータベース機能(SQLite)持っているし


389 :NAME IS NULL:2010/05/08(土) 11:57:09 ID:???
>>388
ごめんごめん。
俺てっきり Linux には DB が組み込まれてるんだと思ったわ。
なるほどねぇ。そういうレベルの話かぁ。

390 :NAME IS NULL:2010/05/08(土) 12:18:53 ID:???
俺のWindows98SEもデータベース機能持ってるぜ?sqlite.dllダウンロードしたからな

391 :NAME IS NULL:2010/05/08(土) 14:12:57 ID:???
組み込まれてるだろ
Androidだってそうだ

392 :NAME IS NULL:2010/05/08(土) 18:08:30 ID:???
揚げ足取りでごめんな。
「Linux ならできるぜっ」って言い回しに反応してしまった。(性格がちっちゃいので)
「(おれば)Sqlite3 で5分でできる」ってならなんともおもわなかったんだけどさ。

というのもLinux といえば Kernel 2.6.xxとかの部分を指すんじゃないかいな?

実際は PC-Linux, Vine, Ubuntu, CentOS, Fedra, Android,...etc...
の形になるからそんな尺治定規な事いうなよっ・・・って言われるとそれまでだが、喧嘩ウルキはさらさら無いので誤解しないでくだされ。


393 :NAME IS NULL:2010/05/08(土) 22:08:03 ID:???
カーネルだけインストールして「Linux入れた」って人は最近じゃ珍しい希少な硬派。

394 :NAME IS NULL:2010/05/08(土) 22:45:32 ID:???
ま、そなんだけど、ディストリビュータで使い勝手や構成も変わってくるから Linux というより Fedra 10 だけどとか、Kubuntu なんだがって方がしっくり来る。
Linux といってもどれやねんって Linux 使いは思わないのかな。
中には Android よろしく Embedded Linux ってやつもいるだろ?

395 :NAME IS NULL:2010/05/08(土) 22:47:14 ID:???
Fedra .. Fedora うーん、なんでこんなタイプミスを。
フィドーラな Linux 使いに怒られるわ。

396 :NAME IS NULL:2010/05/08(土) 22:56:30 ID:???
別にtypoはどうでも良いけど>>395にイラっときた

397 :NAME IS NULL:2010/05/08(土) 23:10:24 ID:???
うっ、
かな書きのところか、言い回しか?
後者ならしかたないな。

昨年 Fedora をちょっといじってたとき「はて、これってどう発音するんだろ?」と語学に弱い私のオツムを刺激。
フェドラ?かなと思い、気になって調べてみたらフィドーラが表現的に一番近いのかな。

しかし SQlite 3 は iPhone でも動くし空気みたいな存在だねぇ。

398 :NAME IS NULL:2010/05/09(日) 09:37:11 ID:???
typoってなに?チンポ?

399 :NAME IS NULL:2010/05/09(日) 13:59:42 ID:???
SQLiteはオープンソースなんだから、iPhoneで使ったらダメだろ。
使いたいならiPhoneも無料にしろ。

400 :NAME IS NULL:2010/05/09(日) 14:05:45 ID:???
>>399
失せろ

401 :NAME IS NULL:2010/05/09(日) 19:53:29 ID:???
>>399
カワイソ頭っすね

402 :NAME IS NULL:2010/05/10(月) 21:56:12 ID:???
入れないと金魚が死んじゃうよ

403 :NAME IS NULL:2010/05/11(火) 23:29:07 ID:???
ここでの質問が不適切であれば、対応するスレッドをお教えください。

質問事項
たとえば以下のような3つのテーブルがあるとします。


person_name_table (人の名前のテーブル)
PID PNAME
1  麻生
2  海部
3  鳩山

attr_name_table (人の属性のテーブル)
AID ANAME
1  自○党
2  民○党
3  漫画好き
4  指導力疑問

person_attrname_table (人(ID)と属性(名前)の組のテーブル)
PID ANAME
1  自○党
1  漫画好き
2  自○党
3  民○党
3  指導力疑問


このとき、人(ID)と属性(ID)のテーブル「person_attr_table」を新たに
作ろうとしたときはどのようなコマンドを用いればよいでしょうか。
感覚的には person_attrname_tableのANAME列をAID列に置換できれば
よいと思っていくつか試してみたのですが、うまくいかず。
(そもそもこのような操作をsqliteでやることが間違いでしょうか?)

よろしくお願いします。

404 :NAME IS NULL:2010/05/12(水) 00:23:38 ID:???
>>403
今すぐ死ね

405 :NAME IS NULL:2010/05/12(水) 00:52:31 ID:???
>>403
「insert 〜 select 〜」を調べてこい

406 :NAME IS NULL:2010/05/12(水) 00:56:14 ID:???
新規で作るなら、
create table 〜 as select〜か....

407 :NAME IS NULL:2010/05/12(水) 03:22:51 ID:???
態々政治ネタで例を作る奴は何なの?何の意図があるの?

408 :403:2010/05/12(水) 06:44:23 ID:???
>>404-407
相手をしていただいてありがとうございました。
こちらで自己解決しました。
insert/select/joinを使って実現できました。
特に、joinの存在に後から気づきました。
以上、ご報告でした。

409 :NAME IS NULL:2010/05/12(水) 07:44:31 ID:???
>>408
死んじゃえよお前

410 :NAME IS NULL:2010/05/12(水) 09:31:07 ID:???
政党と趣味嗜好と能力を同じ属性テーブルに入れるのには抵抗がある

411 :NAME IS NULL:2010/05/19(水) 17:20:08 ID:???
sqlite3_finalize()を実行すべき条件がよくわからん
とくにエラー発生時にclose()したいときとか

412 :NAME IS NULL:2010/05/27(木) 23:31:37 ID:???
ヘルプおながいします。
掲示板プログラムで、スレッド番号10に各IDが何個書き込みをしているかを調べるために、

$thread = 10;
$sth = $hDB->prepare("SELECT id,COUNT(*) FROM テーブル名 where thread = ? GROUP BY id");
$sth->execute($thread);
while( my($id,$cnt) = $sth->fetchrow_array ) {
print "$id $cnt\n";
}

とやったのですが、全く表示されません。
PupSQLite(v1.9.0.2) でSQLを実行する(where節の ? の部分は10を入れて実行)と意図通り
id cnt
-----
1 5
2 3
3 9
などと表示されます。
上の perl はどこが間違っているのでしょーか?SQLiteは3.6.22です。

413 :NAME IS NULL:2010/05/27(木) 23:42:08 ID:???
↑すみません
もうちょっと自分で確認してから質問します...

414 :教えてください:2010/06/10(木) 23:01:20 ID:???
すいません。教えてください。
xampp+sqlite3+PHPで施設の予約をするプログラムを作っています。

club       date      jikan

yakyu      2010-05-01    AM
handball     2010-05-01    PM
yakyu      2010-05-02    AM
rikujo      2010-05-02    PM
rikujo      2010-05-03    AM
handball     2010-05-04    PM

のようなテーブルがあります。

          01  02  03  04  05.....

yakyu       AM  AM
handball     PM   PM
rikujo      AM  AM

それを上記のようなカレンダーの形で出力したいのです。

select jikan as '01' from yotei where date='2010-05-01'
UNION
select jikan as '02' from yotei where date='2010-05-02'
......
group by club;

としてみたのですがうまくいきません。
MYSQLの本を見て
case..when..then..else とかを試してみたのですが、やはりうまくいきません。
こういう場合はどのように考えたら良いのでしょうか。


415 :NAME IS NULL:2010/06/11(金) 01:03:35 ID:???
日付とAM/PM の表に使用者を入れるような DB にすればいいんじゃない?
って、別の提案したらだめか。

416 :NAME IS NULL:2010/06/11(金) 01:37:00 ID:???
SELECT DISTINCT y1.club,
(SELECT jikan FROM yotei y2 WHERE date_ = '2010-05-01' AND y2.club = y1.club) AS "01",
(SELECT jikan FROM yotei y2 WHERE date_ = '2010-05-02' AND y2.club = y1.club) AS "02",
(SELECT jikan FROM yotei y2 WHERE date_ = '2010-05-03' AND y2.club = y1.club) AS "03",
(SELECT jikan FROM yotei y2 WHERE date_ = '2010-05-04' AND y2.club = y1.club) AS "04"
FROM yotei y1

417 :NAME IS NULL:2010/06/12(土) 21:37:33 ID:???
>>414
PHP 側で整形したほうがいいよ。

そもそも、同じ人が同一日の AM/PM 両方に予約したらどう表示するんだ?

418 :NAME IS NULL:2010/06/12(土) 23:08:23 ID:???
>>417
> そもそも、同じ人が同一日の AM/PM 両方に予約したらどう表示するんだ?

それ以前に、施設予約が目的なのに、同一日時予約に対する排他制御がなさそうな
テーブル構造がとっても気になった。

野球とハンドボールと陸上は仲良く共用できるのか?

419 :NAME IS NULL:2010/06/13(日) 08:41:01 ID:???
合同練習だろ

420 :NAME IS NULL:2010/06/13(日) 10:22:02 ID:???
>>418
排他をどこでやるか (そもそもやるべきか) は、別の問題だと思うが。

予約だけばんばんさせといて、抽選で使える奴を決めるとかのシステムかも
知れんし。

421 :NAME IS NULL:2010/06/23(水) 13:53:32 ID:???
このSQLiteのver2.x系列のって、javaで使うことって出来ないんでしょうか?

422 :NAME IS NULL:2010/07/05(月) 10:38:56 ID:JbkhIGME
手軽さに惹かれてSQLite使おうとしてるんですが、
数十ギガのデータベースファイルでも問題なく動作するでしょうか?
もっと大きくなる可能性もあって、スケールへの態勢を心配しています。


423 :NAME IS NULL:2010/07/05(月) 11:38:14 ID:???
>>422
動作する。
大して遅くもない。

424 :NAME IS NULL:2010/07/05(月) 11:56:47 ID:???
数10GiBのデータを扱うのに手軽さでSQLiteを選ぶとは・・・ただでかいだけのデータなの?

425 :NAME IS NULL:2010/07/05(月) 12:24:14 ID:???
そういやそうだなw

426 :NAME IS NULL:2010/07/05(月) 15:10:15 ID:pwlENpuN
>>423
ありがとうございます。大丈夫ですか。
とりあえず使ってみます。

>>424
サイズが大きくなっても大丈夫でパフォーマンスもでるなら手軽なのが一番ですよー
バックアップとかも楽でいいです。


427 :NAME IS NULL:2010/07/05(月) 17:08:18 ID:???
単に他を知らなくて勉強する気も無いだけだろ
単一のファイルでその大きさだとかえってバックアップ面倒だし

428 :NAME IS NULL:2010/07/05(月) 17:48:30 ID:???
10GiB超って何のデータなのかな?
イメージなんかだったら場所と名前をDBで管理した方がよさそうだし,
テキストデータだったらSQLiteじゃ荷が重そうだし.


429 :NAME IS NULL:2010/07/05(月) 20:16:06 ID:???
SQLiteってデータがオンメモリにあることを前提でチューニングされていそうだけど、
数10GBでI/Oが出る状態でも大丈夫なんだろうか? 誰か試した人いる?

430 :NAME IS NULL:2010/07/05(月) 22:29:10 ID:???
やっぱどんなにおっきくても100M単位ぐらいじゃyないのか?


431 :NAME IS NULL:2010/07/06(火) 02:24:00 ID:???
数十GBは試したことないが10GBぐらいのメールサーバのログ集計になら使ったことある。
問題なく動いたよ。

ただ、INDEX作ってある状態でINSERTするとみるみる遅くなっていって使い物にならなかった。
INDEXない状態でINSERTし終わってからINDEX作成なら何とかなったんだけど、最後のCREATE INDEXに相当待った。
うろ覚えだけどINSERTに3時間、CREATE INDEXに12時間とかそういうオーダー。

ひとたびINDEXができてしまえばその後のSELECTは快適そのものだったな。

432 :NAME IS NULL:2010/07/06(火) 10:44:51 ID:???
>>431と同じくログ集計で20GBくらいなら使ったことあるな…
手順は同じで INSERT 終ってから CREATE INDEX の順でやったけど
うちでは INSERT で14時間、CREATE INDEX で4時間とかだった。
まぁ使ってるマシンやテーブル構成が違うんだろうけど…
あとやっぱりSELECT自体は普通に使える速度だった。

433 :NAME IS NULL:2010/07/06(火) 11:59:31 ID:???
数十ギガになった時はやっぱりMySQLやPostgreSQLの方が良いんですかね?

434 :NAME IS NULL:2010/07/06(火) 12:17:59 ID:???
暗号化しようかなと思ってSQLCipherを使ってみたんだけど使った事ある人いる?
ReadMeにあるとおりPRAGMA key = 'passphrase';を入れてみてもLitaから丸見えなんだが。

435 :NAME IS NULL:2010/07/06(火) 12:22:17 ID:???
連投すいません。
phpのSQlite3のコンストラクタにもオプションでencryption_keyってのがあるけどこれって意味無し?
これも同じように設定しても丸見えなんだが。


436 :431:2010/07/06(火) 13:26:12 ID:???
>>433
ケースバイケース。
一概には言えない。
ちなみに>>431と同じ処理を当時(4年くらい前)MySQLやPostgresでも試してみたけど、INSERTはSQLiteの方が断然速かった。
CREATE INDEXはSQLiteの方が断然遅かった。
いずれも詳しい数値は忘れたけど、時間を総合するとどれでも大差ない結果になった希ガス。
だから自分が慣れてる方法でやればいいと思う。

437 :NAME IS NULL:2010/07/06(火) 14:24:51 ID:???
じゃあだいじょいぶかな。
100GB超える可能性もあるんだ。

438 :NAME IS NULL:2010/07/06(火) 18:11:43 ID:???
みんな凄いね。そんなにでかくなるもんですか...

439 :NAME IS NULL:2010/07/07(水) 02:27:23 ID:???
ファイルでもっときゃいいようなデータもすべて入れてくれという案件もある。
jpegのデータをBLOBでつっこむとか。
こりゃどういうことだとクライアントに問い合わせたけどとにかくそうしてくれの一点張り。

440 :NAME IS NULL:2010/07/07(水) 06:59:52 ID:???
巨大なデータだと、たとえ性能は満足できたとしても、バックアップでハマらないか?
更新可能なままでバックアップはできないよね?

441 :NAME IS NULL:2010/07/07(水) 10:54:20 ID:eywZHyww
Insertもインデックスはってからだと劇的に速くなる事あるよ。
ファイル一つしかないんだからバックアップは簡単でしょ。


442 :NAME IS NULL:2010/07/07(水) 12:46:15 ID:???
>>440
以前絶賛INSERT中にDBファイルコバックアップしたら破損して開けないものが取れた。
いかにSQLiteといえど更新しながらは無理だね。
更新しながらバックアップ取るならファイルコピーではなくSQLでexportということになるが、
場合によってはロックかかって更新側がかなり待たされることになるかもな。
それでもなお完全性を重視するならBLOB使うのも仕方ないな。

>>441
並行して更新かけてるプロセスがなければ簡単だけど今しているのはそういう話じゃない。
インデックスない方が速いINSERTって例えば?

443 :NAME IS NULL:2010/07/07(水) 18:27:28 ID:???
>>441
INSERTとUPDATE混同してるだろ

444 :NAME IS NULL:2010/07/07(水) 18:29:00 ID:???
1ファイルに複数テーブル(10個とか20個程度)を作成すると、
パフォーマンス落ちたりしますか?

445 :NAME IS NULL:2010/07/08(木) 01:06:58 ID:???
>>444
落ちます。上がることもあります。

446 :NAME IS NULL:2010/07/08(木) 12:36:25 ID:???
>>443
あ、そうだww

447 :NAME IS NULL:2010/07/08(木) 15:14:25 ID:???
でかいファイル一つだとFAT32のフラッシュメモリに入れようとしてはまるw

448 :名無しさん@そうだ選挙に行こう:2010/07/11(日) 22:34:33 ID:???
>>447
そのDB、4GB以上もあるのか?w

449 :NAME IS NULL:2010/07/12(月) 08:39:27 ID:???
数10GB超えの話してるんだろが

450 :NAME IS NULL:2010/07/12(月) 09:57:01 ID:???
exFATってどうなんだろ
SQLiteと相性いいのかな

451 :NAME IS NULL:2010/07/18(日) 13:16:05 ID:???
オライリーの新刊
Using Sqlite, Jay A. Kreibich (著)
http://www.amazon.co.jp/dp/0596521189
読んだ人はレビューおながいしますね

Mike OwensのSQLite本第2版は今年末発売予定

452 :NAME IS NULL:2010/07/24(土) 18:48:12 ID:mVHGZySD
>>433
そういう事言ってる時点であんたには無理な希ガス

453 :本田:2010/07/27(火) 07:45:17 ID:hj0bTvlh
SQLite Release 3.7.0 On 2010 July 22 (3.7.0)
Changes associated with this release include the following:
* Added support for write-ahead logging.
* Query planner enhancement - automatic transient indices are created when doing so reduces the estimated query time.
* Query planner enhancement - the ORDER BY becomes a no-op if the query also contains a GROUP BY clause that forces the correct output order.
* Add the SQLITE_DBSTATUS_CACHE_USED verb for sqlite3_db_status().
* The logical database size is now stored in the database header so that bytes can be appended to the end of the database file without corrupting it and so that SQLite will work correctly on systems that lack support for ftruncate().

454 :NAME IS NULL:2010/08/02(月) 01:20:22 ID:???
WALどのくらい効果あるのかね。

455 :NAME IS NULL:2010/08/03(火) 03:51:09 ID:???
SQLiteって特に何もしてないけど排他処理ってできてるんですかね?


456 :NAME IS NULL:2010/08/03(火) 09:55:28 ID:???
>>455
出来てるよ。ちゃんとエラーになる。

457 :NAME IS NULL:2010/08/03(火) 19:20:26 ID:???
phpMyAdmin みたいなブラウザ経由で .sqlite をいじくれるソフトってありますか?

458 :NAME IS NULL:2010/08/03(火) 22:06:47 ID:???
>>457
Firefox限定だけど

SQLite Manager :: Add-ons for Firefox
ttps://addons.mozilla.org/ja/firefox/addon/5817/

459 :NAME IS NULL:2010/08/04(水) 11:44:49 ID:KumWqsGz
インターネットVPNを使用してSQLiteへのアクセス速度を
改善させるなんか良い方法ないですかね?


460 :NAME IS NULL:2010/08/04(水) 12:26:48 ID:???
今はどうなってんの?
VPNのせいで遅くなってるなら回線工夫したら?

461 :sage:2010/08/04(水) 13:30:14 ID:KumWqsGz
現状は2拠点でのVPNです。
ローカルからのSQLiteへのアクセスは大丈夫ですが
VPN越しのアクセスが異常に遅くなってしまいます。

VPN越しでのエクスプローラでのファイル操作に関しては
速度的には問題ありません。

SELECT、UPDATE、INSERT全てがVPNを通すと遅くなってしまいます。
これは宿命なのでしょうか・・

462 :NAME IS NULL:2010/08/04(水) 14:20:14 ID:???
下手するとまともに動かない可能性も。
ttp://www.sqlite.org/faq.html#q5

463 :NAME IS NULL:2010/08/04(水) 14:34:43 ID:???
PING値とかどう?
遅いのレベルにもよるけど、名前解決は問題ない?

464 :NAME IS NULL:2010/08/04(水) 16:43:05 ID:???
CIFSなら一回ローカルにコピーした方が良いんじゃないか?排他制御は他の方法で。

465 :NAME IS NULL:2010/08/04(水) 18:37:20 ID:???
>>458
ありがとうございます

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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)