SQLite 4 ..
[2ch|▼Menu]
548:NAME IS NULL
07/02/06 01:56:53
アクセス使えば良いじゃん。
どうせオープンソースでも日本語対応にするスキルすら無いだろ?

549:NAME IS NULL
07/02/06 02:03:17
>>548
ネタだったら、もうちょっと面白いこと書けよ。

550:NAME IS NULL
07/02/06 02:10:58
>>549
一々釣られんなよ…

551:NAME IS NULL
07/02/06 09:13:39
あくせく?

552:NAME IS NULL
07/02/06 11:22:34
まだ挙がっていないようなので

TkSQLite
URLリンク(reddog.s35.xrea.com)

SQLコマンド欄は VJE-Delta では日本語入力できなかった (MS-IMEなら可)。

553:NAME IS NULL
07/02/06 21:55:35
日本語使いたければアクセス使えよ。
オープンソースでもソース弄って日本語対応にできないだろ?

554:542
07/02/06 22:53:45 sv7gVloA
>>547
Windows2000 sp4です。MS-IME2000使ってます。
>>552
いいっすね。私の環境でも日本語表示できました。
機能も色々あるようなので、ありがたくこちらを使わせていただきます。

555:NAME IS NULL
07/02/07 01:59:35
アクセスって無料で使えるの?


556:530
07/02/07 02:27:05
しがないフリーソフトプログラマからの質問です。

.NET で sqlite を利用する場合、
ADO.NET 2.0 Provider for SQLite URLリンク(sourceforge.net)
という物があるみたいです。


これを利用して組んだプログラムを配布するとき、
ユーザーサイドで追加のランタイムとして別途
ADO.NET 2.0 Proveider for SQLite のインストール
が必要となったりするのでしょうか。


557:NAME IS NULL
07/02/07 02:44:38
>556
dllを一緒に配ればいいだけだったはず。
ユーザから見れば、お前の作ったdllと区別つかない。

558:530
07/02/07 03:32:55
感謝。

559:NAME IS NULL
07/02/07 07:55:34
ソース弄れない低レベルPGはマイクロソフトにお金払ってアクセス買え。

560:NAME IS NULL
07/02/07 09:07:28
アクセスって無料で使えるの?

561:NAME IS NULL
07/02/07 09:37:07
OpenOfficeのBaseでいいじゃん。

562:NAME IS NULL
07/02/07 16:08:24 3O2oP0R0
SQLite3ではAUTOINCREMENTは使えないって事でOK?

563:NAME IS NULL
07/02/07 16:10:04
>>562
>>464

564:NAME IS NULL
07/02/07 16:58:07
アクセスなら自動採番できるよ。

565:NAME IS NULL
07/02/07 17:21:36
>564
アクセスって無料で使えるの?


566:NAME IS NULL
07/02/07 20:53:57
毎回毎回同じネタに食いつくんじゃねええええええ!!!!アクセスは無視しろよ!!

567:NAME IS NULL
07/02/07 20:57:31
あくせす
あせくす
あせくさ

568:NAME IS NULL
07/02/07 23:30:08
GROUP BY あくせす

569:NAME IS NULL
07/02/08 00:18:01
sqliteのことも死ぬ前に思い出してあげてください。

570:NAME IS NULL
07/02/08 09:25:24
Ruby on Rails の ActiveRecord では、
SQLite 3.3.8 以降で不具合が発生する問題があった (ActiveRecord 最新版では解決)
そうなのですが、
ActiveRecord 以外で似たような問題が発生するとか
あるいはその対処方法などの情報があれば教えてください。

571:NAME IS NULL
07/02/08 09:44:51
Rubyスレで聞いた方が良くないか?

572:NAME IS NULL
07/02/08 10:11:16
あ、いや、 Ruby 以外で何か問題出てたりしないかな、という話で。
無ければないで良いのですが。

573:NAME IS NULL
07/02/08 11:05:03
SQLiteのページで何がチケットとして登録されてるか確認してみると良いかも。

574:NAME IS NULL
07/02/08 12:22:14
>>570
どういう不具合なのかリンクくらい貼れよ。

575:NAME IS NULL
07/02/08 13:14:51
>>573
そうですね。あとで調べてみようと思います。

>>574
はい。
URLリンク(d.hatena.ne.jp)

576:NAME IS NULL
07/02/08 13:53:09
ああ本当だ・・・これは気がつかなかったな・・・。
細かいバージョンアップのたびにこんなの多すぎ・・・。

577:NAME IS NULL
07/02/08 19:58:33
今に始まった事じゃないし。
2から3の時にはdbファイルが読めないくらいだし。orz

578:NAME IS NULL
07/02/08 20:25:29
アクセス買ってくださいね。

579:NAME IS NULL
07/02/08 20:44:00
MicrosoftはSQL Serverの方に肩入れしてて、アクセスはもう見捨てる寸前だよな。
何故か日本では発売しないMS Visual FoxProとかいうのも有るが。

580:NAME IS NULL
07/02/08 21:05:14
>>577
またおまえか!

581:NAME IS NULL
07/02/08 21:52:16
>578
アクセスって無料で使えないの?

582:NAME IS NULL
07/02/08 22:01:25
我々貧乏人は美味しい麦を食って頑張りましょう

583:NAME IS NULL
07/02/08 22:05:26
>>582
SQLiteって美味?

584:NAME IS NULL
07/02/09 03:22:23
むしろ不味いでしょ。
GUIじゃないし。

585:NAME IS NULL
07/02/09 09:25:18
生では食えないな。料理人の腕が試される。

586:NAME IS NULL
07/02/09 09:50:32
ノロウイルス蓄積されてるしねえ。

587:NAME IS NULL
07/02/09 10:10:03
アクセスほどじゃないけどねえ。

588:NAME IS NULL
07/02/09 10:18:10
つーかデータベースエンジンに GUI なんていらねーだろ
無駄にフットプリントがデカくなるだけ


589:NAME IS NULL
07/02/09 10:27:45
>>584 にいろいろ詳しく訊いてみたい。

590:NAME IS NULL
07/02/09 13:54:51 g7zjlPEu
GUI欲しい

591:NAME IS NULL
07/02/09 14:24:10
GPUほしい

592:NAME IS NULL
07/02/09 14:32:46
Vista で Access

593:NAME IS NULL
07/02/09 18:30:31
>590
よし。作れ。テストは手伝ってやるから。

594:NAME IS NULL
07/02/09 21:19:40
アクセス買いましょうよ。

595:NAME IS NULL
07/02/09 21:29:59
アクセス買うくらいなら死んだほうがマシだろ

596:NAME IS NULL
07/02/09 22:46:48
>594
なんでアクセスって無料で使えないの? SQLiteは無料で使えるよ !


597:NAME IS NULL
07/02/10 01:31:05
>>579
ACCESSはMS純正でFoxProは元は他社製品(Arago?)では無かったっけ?
だから日本語化されなかったとか。


598:NAME IS NULL
07/02/10 16:22:46
200x15000 くらいのテーブルAと 20x10000 くらいのテーブルBを
SELECT count(*) FROM A, B するだけで死ぬほど遅い
(3GHzで1分くらいかかる)のは仕様ですか?


599:NAME IS NULL
07/02/10 17:31:54
そんなSQL文を書いたお前に問題がある。

600:NAME IS NULL
07/02/10 17:35:44
たったの1分かあ・・・爆速だな・・・

601:NAME IS NULL
07/02/10 19:11:18 Sr3KeU9s
>>598
なんで、そんな事してるん?

602:NAME IS NULL
07/02/10 20:16:03 7d6e8tve
今までの開発で使ったDBの中で、SQLiteが一番問題が無かった。
運用でのトラブルはテストでも本番でもほぼ皆無だ。
不思議なもんだよ。
でもこんな話しはプレゼンでは当然使えないし、何より金が稼げない。

603:NAME IS NULL
07/02/10 21:27:05
今のところ、SQLiteはまだ正規表現使えないのかな?
でかいシステムの端末にこぢんまりとしたプログラムで、相互連携を取るとき
これだけがネックになってたんだよな。

開発元に依頼出してみようかな…。

604:NAME IS NULL
07/02/10 21:28:30
自分で好きな正規表現ライブラリを組み込むのがSQLite流

605:NAME IS NULL
07/02/10 23:18:38
正直、あんなソースを追いたくないんだが…。
つーか、YACCなレベルで対応したほうがいいのか、やるとしたら。


606:NAME IS NULL
07/02/11 00:08:07
組み込むくらいならMDB使うよ。アクセス廚馬鹿に出来ない。
おまいら正規表現使ってないのな。

モロにディスクアクセスするようなデータ量だし遅いのは当たり前。
オラクルみたいに4GB超のメモリ乗せてキャッシュでヒットするようにしたら?

馬鹿を相手に稼ぐにはGUI必須。あのオラクルでさえGUIでいろいろできるようにしている。

607:NAME IS NULL
07/02/11 00:15:39
いや。アクセス廚は間違いなく馬鹿に出来るよ。
俺は馬鹿を相手に稼ぐ気はないけど。ww

608:NAME IS NULL
07/02/11 00:19:11
DBに入れたものを正規表現で検索することは無いとは言えないが、頻繁に必要になる
というならDBの設計が不味い可能性が高いと思うぞ。
きちんと論理構造に分割しておくのが正攻法であろう。

609:NAME IS NULL
07/02/11 01:08:55
つか正規表現使いたいならMySQLかPostgresでも使ってろと

610:NAME IS NULL
07/02/11 04:30:40
正規表現が必要な場合おしえて

611:NAME IS NULL
07/02/11 04:47:52
一般的なDBMSの場合、DB側で正規表現が使えるのはそれなりに意味があると思うが、
SQLiteのような組込みDBだとDB側に持つのとアプリ側で処理するのとで大差ない気がする。


612:NAME IS NULL
07/02/11 05:40:28
:memory:DBをファイルDBに落とすのは2.8系でパッチがあったと思うけど、
3.3系でのパッチみたいなものないですかねぇ
そもそもそういうのを標準で用意してくれてもいいと思うんだが。

613:NAME IS NULL
07/02/11 10:27:21
>610
MySQLしか知らずに設計しやがる奴がいるから。
正規表現はまずいですよ、って言ったら怒りやがった。

614:NAME IS NULL
07/02/11 11:55:06
>>611
同意

>>613
大変だな

615:NAME IS NULL
07/02/11 12:17:08
正規表現だと、どうせフルスキャンしなきゃならず、
インデックスの効果も無いからな。

SQLiteの機能で独自の関数を組み込む機能あるから、
あれで正規表現関数組み込めば良い。

616:NAME IS NULL
07/02/11 12:36:00
普通、サイトの検索とかで前方一致とか後方一致とかあるじゃん。
あれ実現するには正規表現必要。

おまいらのサイトにはろくな検索機能付いてないの?

後、顧客情報とかでSQ010000〜SQ010999の情報をまとめたい場合でも正規表現が必要。

アクセスでも出来るのに、機能低いね。

617:NAME IS NULL
07/02/11 12:39:11
>>616
>普通、サイトの検索とかで前方一致とか後方一致とかあるじゃん。
>あれ実現するには正規表現必要。

へぇ、知らなかった。like でやるもんだと思っていたが、違ったのか。

>後、顧客情報とかでSQ010000〜SQ010999の情報をまとめたい場合でも正規表現が必要。

これも知らなかった。between で範囲指定するのは邪道だったのか。後学のために、
SQ010123〜SQ010586 をまとめる正規表現を教えてください。

618:NAME IS NULL
07/02/11 12:46:41
>>617
> SQ010123〜SQ010586 をまとめる正規表現を教えてください。

お前いじめすぎwwwwwwwwww

619:NAME IS NULL
07/02/11 12:48:27
Accessじゃ正規表現はできんぞ。
VBAを使ってユーザー定義関数を作るならできるが、
それはSQLiteに好きな言語でユーザー定義関数を作るのと同じことだ。

620:NAME IS NULL
07/02/11 12:57:23
CかC++の場合、C+PCRE(Perl Compatible Regular Expressions)か
C++でPCREかBoost.Regexでユーザ定義関数組んでSQLiteに組み込む、でFAかな?
PythonとかPerlとかだとよくわからんけど。

621:NAME IS NULL
07/02/11 13:09:13
またアクセス厨が馬鹿さを曝け出してるな。

622:NAME IS NULL
07/02/11 13:32:41
ユーザ定義関数なんか使うより、アプリ側で処理するほうがいいじゃん。


623:NAME IS NULL
07/02/11 16:29:13
>>617
> SQ010123〜SQ010586 をまとめる正規表現を教えてください。

ワロスwww

624:NAME IS NULL
07/02/11 16:36:26
>>612
URLリンク(www.sqlite.org)

625:NAME IS NULL
07/02/11 18:27:53
>>616
おまえには大量のデータを扱う事は出来ないw


626:NAME IS NULL
07/02/11 18:36:26
まぁ>>616レベルのプログラマのお陰でハイパワーのサーバが売れるわけだから
社会に貢献していると言えないことも無いような気がしないでもない。

627:NAME IS NULL
07/02/11 21:53:38
598と616は同一人物だろ。
こんな奴にハイスペックのサーバを与えても利益は一銭も出ないぞ。

628:NAME IS NULL
07/02/12 03:16:14
けっこう使えるDBだと密かに思ってるんだが、バカがいるので流行らないのかもな

629:NAME IS NULL
07/02/12 04:14:29
それは俺は賢いと自惚れたいのですか

630:NAME IS NULL
07/02/12 11:03:53
はい、わたしはトムです。

631:NAME IS NULL
07/02/12 13:57:14
sqliteでユーザ定義関数組むぐらいなら、漏れならvba組むな。
既にvbaあるのに、車輪の再発明ってアフォ。

632:NAME IS NULL
07/02/12 14:05:24
え?sqlite で vba 使えるの?

633:NAME IS NULL
07/02/12 14:06:10
そんなこと言ってるからVBプログラマはいつまで経っても馬鹿にされるんだよね

634:NAME IS NULL
07/02/12 15:03:07
sqlite使いって言語何使ってるの?
Cかperl(Movable Type?)

635:NAME IS NULL
07/02/12 15:19:18
漏れは Perl で使っているが、
なんで Perl = Movable Type なんだよ…

636:NAME IS NULL
07/02/12 18:34:10
実はMT使ってるでしょ?
perlだと正規表現は充実してるからねえ。

637:NAME IS NULL
07/02/12 18:50:33
俺はTclだ。SQLiteでデフォのバインディングだ。

638:NAME IS NULL
07/02/12 22:06:36
だから Perl で使ってるけど MT は使ってねえっつうの

639:NAME IS NULL
07/02/12 22:47:59
おいどんはPHPでごわす。

640:NAME IS NULL
07/02/13 00:05:23
Python などを嗜んでございます。

641:NAME IS NULL
07/02/13 00:10:48
拙者はRubyでござるよ。

642:NAME IS NULL
07/02/13 00:12:05
C++/CLIとC#

643:NAME IS NULL
07/02/13 00:17:11
いやぁ、さすがSQLiteですなぁ。

対応言語も人一倍多いときてる。


糞アクセスとは比べ物にならない。

644:NAME IS NULL
07/02/13 01:04:13
質問です。

一つの画像が RGB の各プレーンに 40、つまり 120 の特徴点を持つ。
特徴点を以下の計算で一つの値にまとめる。
 color << 16 + x << 8 + y (color = 0,1,2 / x < 128 / y < 128)

という条件で画像のデータベースを作りたいのですが、
こういうテーブルをつくって
CREATE TABLE tbl(int image, int point);
CREATE INDEX tbl.image;
CREATE INDEX tbl.point;

これを一つの画像ごとに 120 回くりかえして登録しています。
BEGIN
INSERT INTO tbl (image, point) VALUES (?, ?); <- 画像数x120回くりかえし
COMMIT

このときに、同じ(色x座標)の特徴点を持つ画像を得たいのですが
この SQL で検索しています。
SELECT * FROM table
 WHERE point IN (SELECT point FROM table WHERE img == __) AND
  img != __;

なのですが、この検索用の SQL が遅くて困っています。
画像数は数十万単位で登録したいです。

こういう状況で高速化する方法はあるでしょうか?

環境は VS2005 の C# と ADO.NET 2.0 Provider for SQLite です。

645:NAME IS NULL
07/02/13 02:54:02 X4I6OSla
>>643
そーいやそーだな

いまいちsqliteがメジャーにならないのでちょっとさびしい

646:NAME IS NULL
07/02/13 04:34:24
>>634-642
ぞろぞろ出てきてワロタ

647:NAME IS NULL
07/02/13 04:41:43 Xx1fW3U3
日本語ドキュメントが足りないんじゃないの?
SQLiteまとめwikiでも誰か作れ。


648:NAME IS NULL
07/02/13 06:03:41
>>647
いいだしっぺの法則

649:NAME IS NULL
07/02/13 11:52:08
URLリンク(226.la.coocan.jp)

650:NAME IS NULL
07/02/13 12:49:08
>>644
こういうのとかどうでしょ。速くならなかったらゴメン。

SELECT DISTINCT a.image, a.point FROM tbl AS a, tbl AS b
WHERE a.image != b.image AND a.point = b.point;

651:NAME IS NULL
07/02/13 13:24:50
>>647
日本は義務教育で英語を教えているので、英語ドキュメントで十分なんですよ。

652:NAME IS NULL
07/02/13 13:50:43
>651
ワロタ。
日本ほど自国語ドキュメントが必要な国って滅多に無いよな。

653:NAME IS NULL
07/02/13 14:30:54
インドの方ですか?

654:NAME IS NULL
07/02/13 15:24:16
as well asの訳がわかんないんです(><)

655:NAME IS NULL
07/02/13 23:15:44
3.3.13

656:NAME IS NULL
07/02/14 00:21:09
SQLite Version4が出たのかと思った<スレタイ

657:NAME IS NULL
07/02/14 09:17:31
またDBファイルが変わると思うと鬱。
2から3に変わったときに苦労したよ。

658:NAME IS NULL
07/02/14 09:38:48
まあ、運用中のシステムは無理にバージョンアップしなくてもいいんじゃね?
問題なく動いてるならさ。


659:NAME IS NULL
07/02/14 11:44:34
>>657
そのくらいで苦労するような頭脳で生きていくのは大変だろうな

660:NAME IS NULL
07/02/14 11:57:55
安定版は3.3.7で開発版が3.3.13なの?どの辺が安全なのかよくわからん。

661:NAME IS NULL
07/02/14 12:21:04
じゃあアクセス使っとけ。オマイには無理。

662:NAME IS NULL
07/02/14 12:23:00
>>657
APIが変わっていてまるで別物っていうことが、いまだに理解できない知能の持ち主さん乙。
ところで、その低い知能はもう手のつけようがないですが、包茎は手術すれば治せますよ。
手術なさってはいかがでしょう?

663:NAME IS NULL
07/02/14 12:56:43
>>661
またこの流れかよ。このスレは聞いてもこればっかりで
全然情報が流れないな。これじゃ流行らんわ。

664:NAME IS NULL
07/02/14 12:57:37
あまり流行らせようという気はないよ。
流行らないと困るのは英語読めない人とかでしょ。w

665:NAME IS NULL
07/02/14 13:30:38
>>660
安定版・開発版の判断は、
公式サイトのトップページの記述を随時チェックするのが良いかと。
今は 3.3.13 が安定してるっぽい。

ただし >>570 あたりで言ったように、
RoR なひとは AR を最新にしておくか、それがダメなら 3.3.7 を使った方が良さそう。

666:NAME IS NULL
07/02/14 13:40:50
数十MB足らずのDBなんだが、メモリを大量に食い潰し、
httpdに対してmmo-killerが発動してkernelごと落ちる怪奇現象に悩まされ中。
CentOSplusのPHP5+PDO:SQLiteですが。
やっぱMySQLにするべきか… orz

667:NAME IS NULL
07/02/14 13:42:22
oom-killerだった

668:NAME IS NULL
07/02/14 13:43:27
カーネルごと落ちるのはいかなる理由があろうともカーネルの責任だろうな

669:NAME IS NULL
07/02/14 15:05:47
PHP5.2.0までにはSQLite他にメモリリークのバグがあったような。

670:NAME IS NULL
07/02/14 15:10:25
ごめん、スタックオーバーフローだった。しかも非PDO。

671:NAME IS NULL
07/02/14 16:05:20
包茎も童貞も英語も病院に逝って治せ。

672:NAME IS NULL
07/02/14 16:10:19
ど、童貞を治してくれる病院があるのか?(ドキドキ)

673:NAME IS NULL
07/02/14 18:30:28
>>671
その病院を紹介してくれ。
明日行って来る。

674:NAME IS NULL
07/02/15 07:55:22
ここは童貞の巣窟。

675:NAME IS NULL
07/02/15 09:07:44
>>644
そのSQLだと、どの画像と一緒なのか分からんがそれで良いの?

とりあえず>>650のSQLだとCROSS JOINの結果から
絞り出すような感じだから割とキツそうなので

CREATE TABLE temp AS SELECT a.image, b.image, a.point
FROM tbl AS a INNER JOIN tbl AS b ON (a.point == b.point AND a.image != b.image);

で適当にテーブル作っておけばその後の解析に便利かと。

つーかせっかくデータベース化するなら特徴点とやらの
各要素はパッキングしない方が便利なような…
完全一致しか探さないならパックした方が速いだろうけど。

676:NAME IS NULL
07/02/15 09:31:54
一応、↑のSQLの「temp」は適当なテーブル名に変えるか[ ]で囲っといてね。


677:NAME IS NULL
07/02/15 12:59:02
画像数が圧倒的に多いからON句に条件突っ込んでも大して変わらない気がする。

そもそもSQLiteで数千万のデータ扱うのってどうなんだ?
解析手法よく考えないとしんどいと思うぞ。
SQLiteに限った話じゃないが。

678:NAME IS NULL
07/02/15 13:18:29
数十万x120 か。下手すると億にとどくな。
こんなレコード数扱ったこと無いぞ・・・。

679:NAME IS NULL
07/02/15 14:05:00
ベクトルデータで数千万くらいまでは使ったことある。
何使ってもこのくらいになると設計が悪いと遅くなるのは当然だと思うが。

680:NAME IS NULL
07/02/15 16:25:58
オラクルRACならいくらでもハード増強できるけどな。

681:NAME IS NULL
07/02/15 22:30:40
金で解決するのは野蛮人。頭で解決するのは貧乏人。

682:NAME IS NULL
07/02/15 22:54:03
体で解決するのは

683:NAME IS NULL
07/02/15 23:18:38
犬畜生

684:NAME IS NULL
07/02/16 10:25:58
なんでだよw

685:NAME IS NULL
07/02/16 10:52:27
金で解決するのはお金持ち、頭で解決するのは頭のいい人。

686:NAME IS NULL
07/02/16 10:57:24
貧乏な会社だと、頭でなんとかしろとか無茶な事言われるね。
月給貰って居るだけで何とかなる訳ないのに。
新しいソフトとハード買ってなんぼ。

687:644
07/02/16 15:28:52
650さん、675さん、ありがとう。
会社で死霊漁ったりしつつも、昨晩まで自宅のPCに向かいすらせず(できず)、
返事がおくれました。

画像数 2077。メモリデータベースじゃないです。

画像特徴量取得時間 :00:03:43.6562500
画像特徴量格納時間 :00:21:13.0156250

644 sql :01:42:13.1875000
now sql :00:31:32.7656250
675 sql :00:40:09.2187500
650 sql :00:35:39.3281250

644 sql----
foreach (画像群)
{
 SELECT * FROM tbl WHERE point in (SELECT point FROM tbl WHERE image == %1)
  AND image != %1;

 一行ずつ .NET Framework の Dictionaly<int, List<int>> に登録。

 foreach (Dictionary.Keys)
 {
  -- 得られた画像ごとに、平均輝度を取得。こんなテーブルがあったんです^^;
  SELECT R, G, B FROM lumtbl WHERE image == %1;

  画像どうしの関係を計算
 }
}

644 の SQL は特定の画像を指定して、その画像と関係する画像を検索する SQL です。
SQL 呼び出し回数が n*m な感じのオーダーで発生してしまって大変遅い物になりました。

また、インデックス作成の sql が間違っていたのに気がついていなくて、
質問の時点ではさらにおそかったことを追加しておきます。


688:644
07/02/16 15:29:38
now sql----
foreach(画像群)
{
 SELECT R, G, B FROM lumtbl WHERE image==%1;

 SELECT idxscore.*, lum.R, lum.G, lum.B
 FROM
  (SELECT image, Sum(score) AS totalscore
   FROM tbl
   WHERE EXISTS
    (SELECT point
    FROM tbl
    WHERE image == %1)
   AND image != %1
   GROUP BY image) AS idxscore INNER JOIN lumtbl lum
                 ON idxscore.image = lum.image;
}

自助努力しました。
tbl に、下処理した score 列を追加しました。
sql 発行回数を減らそうという方針です。

URLリンク(www.geocities.jp)
とか、見ました。

650 sql---

SELECT hoge.Aimg, hoge.Bimg, hoge.idxscore, Alum.R, Alum.G, Alum.B, Blum.R, Blum.G, Blum.B
FROM
 (
  SELECT a.image AS Aimg, b.image AS Bimg, sum(b.score) AS idxscore
  FROM tbl AS a, tbl AS b
  WHERE a.point == b.point AND a.image != b.image
  GROUP BY Aimg, Bimg
 ) AS hoge INNER JOIN lumtbl Alum ON hoge.Aimg == Alum.image
      INNER JOIN lumtbl Blum ON hoge.Bimg == Blum.image;

いちど全順列の表を作ってから絞ってる感じでしょうか?

675 sql----
SELECT hoge.Aimg, hoge.Bimg, hoge.idxscore, Alum.R, Alum.G, Alum.B, Blum.R, Blum.G, Blum.B
FROM
 (
  SELECT a.image AS Aimg, b.image AS Bimg, sum(b.score) AS idxscore
  FROM tbl AS a INNER JOIN tbl AS b
          ON (a.point == b.point AND a.image != b.image)
  GROUP BY Aimg, Bimg
 ) AS hoge INNER JOIN lumtbl Alum ON hoge.Aimg == Alum.image
      INNER JOIN lumtbl Blum ON hoge.Bimg == Blum.image;

() の中身を675のとおりに入れ替えただけです。
こんな JOIN の書き方があるとは知らず、参考になりました。

689:644
07/02/16 15:38:41
650さんのも、675さんのも、sql 一発で画像関係のマップができるので
目から鱗でした。

でも、GUI にプログレスをできれば表示したいということもあって、
ひとつずつにさせて貰います。ごめんなさい。

690:NAME IS NULL
07/02/16 23:44:02
>>689
sqlite3_progress_handler


691:NAME IS NULL
07/02/17 23:14:20 +mKDOMtz
PHPとの親和性ってどうよ?

692:NAME IS NULL
07/02/18 02:42:19
PHPはMySQL前提みたいなところが有るからねえ。
オープンソースだし、結局は自己解決できるかじゃないの?
自己解決無理そうならどこかに丸投げするしかないよ。

693:NAME IS NULL
07/02/18 04:46:26
最近の PHP は普通に SQLite 同梱ですが。
普通にライブラリも提供されてますが。
何がオープンソースだし、だ。ボケが。

694:NAME IS NULL
07/02/18 11:33:01
はいはい共用鯖使ってる貧乏人乙。

695:NAME IS NULL
07/02/18 11:34:24
       │
       J
  ∩_∩    ∩_∩
 (・(ェ)・ )   ( ・(ェ)・)


696:NAME IS NULL
07/02/18 15:29:37
>>692はPHP5からSQLite標準装備になったのを知らないんだろ

697:NAME IS NULL
07/02/18 17:15:07
PHP 5 では、SQLite 拡張モジュールとエンジンは PHP 自身にバンドルされ、デフォルトでコンパイルされます。
しかし、PHP 5.1.0 以降では 手動で有効にする必要があります (共有モジュールとしてバンドルされるからです)。
さらに、PHP 5.1.0 以降では SQLite は PDOに依存するようになりました。そのため、 php.iniに以下の行を (この順に) 追加して PDO も 有効にしておく必要があります。

698:NAME IS NULL
07/02/18 18:52:43
見事にコピペだな。

699:NAME IS NULL
07/02/18 19:47:11
SQLite ってアクセスのデータも使えないらしいね。
しょせんフリーソフトってとこかな


700:NAME IS NULL
07/02/18 20:11:10
飽きてきたのでアクセスをNGワードに入れた

701:NAME IS NULL
07/02/19 01:38:04
>>697
ややこしいな・・・

702:NAME IS NULL
07/02/19 10:09:40 8bCvsimt
>>699
言ってる意味がわからない

703:NAME IS NULL
07/02/19 12:20:07
age てまで反応すべきところなのかと小一時間 (ry

704:NAME IS NULL
07/02/19 15:31:09
PHP入れてもデフォルトでコンパイルされてないから大変ですね(w

705:NAME IS NULL
07/02/19 17:28:02
(´・ェ・)

706:NAME IS NULL
07/02/19 17:53:03
スルー力が試されている!

707:NAME IS NULL
07/02/19 18:06:06
するーか

708:NAME IS NULL
07/02/19 22:19:00
  _____________
  |                   /| ガチャ
  |  /⌒i             / |
  |-/`-イ────ー'  |
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

  _____________
  |__/⌒i__________/|
  | '`-イ:::    -・=- , (-・=-   | <キーボードの K と L 見てみ?
  |ヽ ノ (6    ⌒ ) ・ ・)( ^ヽ   |
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

  _____________
  |                    | パタン
  |                   |
  |                   |
   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄


709:NAME IS NULL
07/02/19 23:14:57
あらあらだめよぅ
とでも言って欲しかったのかしら>708は

710:NAME IS NULL
07/02/19 23:31:23
>>708
俺のキーボードにかなは刻印されてないのにも関わらず、この手のコピペを
見るたびに素直に視線を落として???ってなる。

711:NAME IS NULL
07/02/19 23:51:21
俺のにはHomeとPgUpって書いてある

712:NAME IS NULL
07/02/20 00:39:09
ネット上のSQLiteソースサンプルで、
sqlite_open()のDB名に「hoge」と「hoge.sqlite」のように
".sqlite"が付くのと付かない表記を見かけるんですが

付く
$con = sqlite_open('hoge.sqlite', 0666, $sqliteerr)

付かない
$con = sqlite_open('hoge', 0666, $sqliteerr)

この違いってなんでしょう?


713:NAME IS NULL
07/02/20 00:49:59
ファイル名の違い

714:NAME IS NULL
07/02/20 01:44:21
UNIX系で拡張子ってあんまり関係無いからね。気分的なもの。

漏れのキーボードは英語だから、2とか3のナムキーしか無いな。

715:NAME IS NULL
07/02/20 02:28:22
>>714
make って知ってるか?

716:NAME IS NULL
07/02/20 03:06:09
というか、UNIX ではもともと、ピリオドもただ単に
ファイル名に使える文字の1つってだけの扱い。

それに対して、MS-DOS ではファイル名自体が
「8文字+3文字」って構造を持ってしまっていて、
その区切り文字にピリオドを使っていた。

なので、確かに UNIX では「拡張子」って概念は存在しない。
.c とか .o とかは、言ってみればハンガリー記法みたいなのが
ファイル名の末尾修飾子として定着したようなもんだな。


717:NAME IS NULL
07/02/20 03:48:29 b286Fw1r
SELECT文の実行結果が空の場合に
Warningが強制出力されると思いますが、
それを回避するための方法として

$res = @sqlite_query( $db, $query, SQLITE_BOTH, $errmsg);
if(!$res) echo "たぶん空です" . $errmsg;

のようにしたのですが、
これだと全エラーが空と見なされてしまいます。

他に良い方法ないでしょうか?


718:NAME IS NULL
07/02/20 11:30:59
空の場合にWarningなんか出たっけ?

719:NAME IS NULL
07/02/20 11:38:31
>>716
Windowsも今やUNIXと同じになってしまったから、8+3も今や単に歴史的なものだね。
そういえば新しいMS Wordの拡張子がdocxと4文字になってて、ちょっと新鮮だった。w

720:NAME IS NULL
07/02/20 15:16:06
.sqlt.db2とか.sqlt.db3とか付けてたけど最近.sd2,sd3にしてる。


721:NAME IS NULL
07/02/20 19:12:53
OS のレベルで拡張子の概念が無いのはわかるけど、
>>715 の言うように、ユーザランドで suffix を意識したソフトはいっぱいあるので、
UNIX で拡張子は関係ないって言い切っちゃうのもどうかという気はする。

というのはともかくとして、
>>717 と同様のコードを試してみたけど、空の場合に Warning なんて出ないぞ?
もうちょっと状況を詳しく。

722:NAME IS NULL
07/02/20 22:19:02
普通.dbだろ・・・。なんだよ.sd3って・・・

723:NAME IS NULL
07/02/20 22:56:53
俺、.sqlite3。

724:NAME IS NULL
07/02/20 23:24:58
俺、.exe。

725:NAME IS NULL
07/02/20 23:27:47
俺、.mdb。


726:NAME IS NULL
07/02/21 02:20:56
ユーザランドって何? 利用者の島?
UNIXじゃないのに、UNIX使ってると思い込んでいるマカじゃないの?
UNIXなんてシリアルコンソールで使っておけば十分だ。Xなんて起動しなくて充分。

由緒正しきUNIXには、拡張子なんて無いよ。
.cってMakefileの都合でしょ。
gcc hoge.c -o hoge
を汎用化したいってだけ。

727:NAME IS NULL
07/02/21 02:41:40
>>726
おまえ、ずいぶん前、ここで「マカ」に異常反応していたあのキチガイだろ。w
UNIXの話をするなんて一兆年早いんだよ。

728:NAME IS NULL
07/02/21 02:45:42
今こそスルー力が試されている

729:NAME IS NULL
07/02/21 09:34:06
SQLiteの話しようぜ。


730:NAME IS NULL
07/02/21 09:45:34
sqliteと出会ったのはそう、土砂降りの雨の夜だった。
その日僕は

731:644
07/02/21 09:45:59
SQLiteをスク水と読むスレ

1 :NAME IS NULL:2007/02/21(水) 09:46:00 ID:???
  スク水

732:NAME IS NULL
07/02/21 10:41:27
俺はこうしてる。バージョン上げるとファイルが壊れるからな。
sprintf(filename, "%s.sqlite-%s", basename, sqlite3_libversion());

733:NAME IS NULL
07/02/21 10:42:15
SQLiteって、「えすきゅーらいと」?

734:NAME IS NULL
07/02/21 11:09:08
「えすきゅーらいと」か「えすきゅーえ (る) らいと」くらいかなあ?
URLリンク(video.google.com)
URLリンク(www.mail-archive.com)

735:NAME IS NULL
07/02/21 11:19:28
しーけらいと。

736:NAME IS NULL
07/02/21 11:20:28
すくらいと

737:NAME IS NULL
07/02/21 11:35:57
スクール水着

738:NAME IS NULL
07/02/21 16:36:27
SQL痛て

739:NAME IS NULL
07/02/21 18:21:13
ギャグのおもしろさ

Mac屋 >> Windows屋 >>>>>>> Linux屋 >> Unix屋 >> database屋

740:NAME IS NULL
07/02/21 20:02:49
>>732
だから壊れてねえって!!

741:NAME IS NULL
07/02/21 20:44:59
とりあえず Windows で使うなら PRAGMA page_size=4096 しとけよ

742:717
07/02/22 03:34:12
>>721
う〜ん。
サンプルを作ってみたらWarning出てませんでした。。ごめんなさい。
あのWarningはなんだったのかちょっと怖いんだけど、またでたら報告します。
最近エディタをvimに移行したんでタイプミスだったという可能性も。





743:NAME IS NULL
07/02/22 09:38:45
>>741
それは何のおまじない?

744:NAME IS NULL
07/02/22 23:22:08
>>743
NTFS のクラスタサイズに DB のページサイズを合わせる


745:NAME IS NULL
07/02/23 11:31:31
ext3のクラスタサイズには合わせなくていいの?
8192とか。

マカってアフォだよな。FATとか使ってそう。

746:NAME IS NULL
07/02/23 11:36:31
>>745
またおまえか

747:NAME IS NULL
07/02/24 01:19:10
マカってキモぃぉ。

748:NAME IS NULL
07/02/24 21:47:46
>747
またおまえか。

749:NAME IS NULL
07/02/25 15:58:46
ここマカしか居ないのか?

750:NAME IS NULL
07/02/26 02:01:38
OSXには、標準でインスコされてるし、それでかねえ……

751:NAME IS NULL
07/02/26 02:12:36
つか、マカに過剰反応するキチガイ約1名をみんなでなぶってるだけだろ

752:NAME IS NULL
07/02/26 02:58:48
カマって気持ち悪いよな。

753:NAME IS NULL
07/02/26 20:00:25
マカ=キチガイ。

754:NAME IS NULL
07/02/26 21:38:33
OSなんてどうだっていいじゃん

755:NAME IS NULL
07/02/26 21:38:59
URLリンク(www.ifweb.org)




756:NAME IS NULL
07/02/27 00:00:33
いっそ皆で超漢字使おうぜ。

757:NAME IS NULL
07/02/27 11:01:21
マカって超漢字使ってるのかよ(w

758:NAME IS NULL
07/02/27 11:10:16
超漢字用にSQLiteコンパイルしてください

759:NAME IS NULL
07/02/28 03:26:22
マカはビスタでアクセスでも使ってろ!

760:NAME IS NULL
07/02/28 08:36:35
>759
また、おまえか。

761:NAME IS NULL
07/02/28 09:13:19
>>758
むしろ SQLite 用の超漢字があればいんじゃね?

762:NAME IS NULL
07/03/01 05:29:24
ビスタでアクセスが最強。
間違ってもマクなんて買ったら負け。

763:NAME IS NULL
07/03/01 09:50:43
>762
またおまえか。


764:NAME IS NULL
07/03/02 20:36:21 GUfsgTcq
linux にphpとsqliteを入れてます。

PHPスクリプトから作成したDBとTableを
Linuxユーザーでコマンドラインから操作するんはどうすればいいでしょう?

現在下記のようにエラーになります。

[Linuxuser@localhost]$ sqlite3 dbname
SQLite version 3.3.6
Enter ".help" for instructions
sqlite> .databases
Error: file is encrypted or is not a database
sqlite> .tables
Error: file is encrypted or is not a database



765:NAME IS NULL
07/03/03 04:26:42
・ファイル名がおかしい
・カレントディレクトリがおかしい
・パーミッションがおかしい
・ファイルが壊れている

766:NAME IS NULL
07/03/03 11:45:49
>>764
とりあえずPHP5なのかPHP4でPECL使ってるのか書かないと初心者だと思われるよ

767:NAME IS NULL
07/03/03 23:04:16
パス名に2バイト文字が含まれてると読み込めないよ。

768:NAME IS NULL
07/03/05 09:46:59
>>764
$ file dbname
した結果を見てみるとか。

769:764
07/03/06 01:24:09
>> 765
すべて問題ないです。

>> 766
PECLは使っていません。
[user@localhost sqlite3]$ php -v
PHP 5.2.0 (cli) (built: Nov 10 2006 12:12:06)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies


>> 768
[user@localhost sqlite3]$ file test.sqlite
test.sqlite: SQLite Database Version
って感じできちんと認識されてるようです。

もうだめです。あきらめました。


770:NAME IS NULL
07/03/06 02:02:43
>>764
sqlite 2.8.17 で作成した DB をsqlite 3.3.6 で
読み込もうとしていないか?

771:NAME IS NULL
07/03/06 20:55:26
こうしてまたSQLiteが不可解でバージョンアップのたびに
データ―ベースを破壊する微妙なライブラリと言う迷信が
広まっていくのであった・・・。

772:NAME IS NULL
07/03/06 22:24:47
>>252を使ってODBCを設定したのですがACCESSからテーブルのリンクできません
「オブジェクト'test'が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。」
と出るのですが原因は何なのでしょうか?

c:\hoge.dbに置いて試してもダメでした


773:NAME IS NULL
07/03/06 23:58:01
>772
Access2003+>252のODBCドライバ同梱のsqlite3でこさえたDB、で問題なくリンクできたが。
もう少し詳しい情報がないとエスパーの降臨を待つよりないな。
とりあえずAccessのバージョンは?

774:772
07/03/07 00:57:51
>>773
Access2000(9.0.3821SR-1)
インポート、エクスポートは出来てます
sqliteは2.x系です
OpenOfficeのBASEでデータの操作できてます

775:NAME IS NULL
07/03/07 18:32:36
URLリンク(rktsqlite.sourceforge.jp)


776:NAME IS NULL
07/03/07 20:52:50
>>775
2年前に更新止まってんぞ

777:NAME IS NULL
07/03/07 21:25:40
>776
あらま、びっくりくりくりくりっくり。

778:NAME IS NULL
07/03/08 09:48:24
これってどないですか?

Ruby SQLite GUI
URLリンク(rsqlitegui.rubyforge.org)

779:NAME IS NULL
07/03/09 05:09:24
sqlite3でdb2ファイルを読むと壊れるよ。
下位互換性ってないし。orz

780:NAME IS NULL
07/03/09 09:18:22
調べてから、読ませなよ。壊れるなんて当たり前じゃん。

781:NAME IS NULL
07/03/09 12:23:40
華麗にスルー

782:NAME IS NULL
07/03/09 21:21:50
壊れねえよ!!

783:NAME IS NULL
07/03/09 22:58:57
事前に調べる方法プリーズ!

784:NAME IS NULL
07/03/09 23:01:10
アクセスもエクセルも最新の2007で過去のファイル読んでも壊れないよ。
壊れるって警告も出なかったからバックアップする事無く入力したデータ失った。orz

785:NAME IS NULL
07/03/09 23:03:29
嘘つきキターーー!

786:NAME IS NULL
07/03/10 01:51:13
>>784
じゃあさあその壊れるってのを再現できる手順を示してくれよ。な。
そうしないとアドバイスできないだろ

787:NAME IS NULL
07/03/10 10:56:18
華麗にスルー

788:NAME IS NULL
07/03/11 06:24:06 6xg9uabI
Linux で SQLite2.8.14 を PHP から使ってるのですが、次の文を実行しようとすると Segmentation fault が出てしまいます。

UPDATE TCOUNT SET CNT=(SELECT COUNT(*) FROM TBL1 WHERE TBL1.ID=TCOUNT.ID)

TCOUNT は ID と CNT を持つテーブルで、TBL1 の ID 毎の行数を格納しようとしてます。
どうやら SELECT の WHERE句に、FROM で指定した以外のテーブルのカラム、つまり TCOUNT.ID を使用することにより
Segmentation fault になるようです。
これって、ウチの環境がおかしいですかね?
それとも、SQLite ならではの書き方があるのでしょうか?

試しに EXPLAIN してみましたが、それも Segmentation fault になりました。
なので、クエリの実行以前に、クエリ解析の段階で問題が起きているっぽいのですが・・・

789:NAME IS NULL
07/03/11 11:58:55
SQLiteが古い
2系の最新は2.8.17

790:NAME IS NULL
07/03/11 12:09:50 GdgvVOEv
SQLite2.8.17のDLLってどこで入手できますか?
公式サイトで見つかりませんでした

791:NAME IS NULL
07/03/11 12:36:46
>>790
URLリンク(www.sqlite.org)

792:NAME IS NULL
07/03/11 12:49:03
>>791
sqlite.exeしか入ってないです

793:NAME IS NULL
07/03/11 13:53:09
>>790
URLリンク(www.sqlite.org)

794:NAME IS NULL
07/03/11 14:02:56
>>793
sqlite.dllありました
ありがとうございます

795:788
07/03/11 14:59:49
>>789
なるほど・・・
先日 pear install sqlite でインストールしたばかりだったんですが、そのモジュールは最新版じゃないようです。

モジュールの更新方法は良く分からないので手が出せないでいるのですが、
sqlite-2.8.17.tar.gz は拾ってこれたので、これを make して sqlite コマンドを得ることができました。
コマンドライン版で >>788 の SQL を実行してみたところ、no such column: TCOUNT.ID と言われてしまいました。
なので SQLite では >>788 のような SQL の書き方はいけないのだと判断したのですが、このような更新を行う
UPDATE文はどう書くのでしょうか?


796:NAME IS NULL
07/03/11 18:22:24
>>795
CREATE VIEW TCOUNT AS SELECT ID, COUNT(*) AS CNT FROM TBL1 GROUP BY ID


797:788
07/03/12 05:13:03
>>796
いや、>>788 からの説明は問題を単純化したもので、実際にやりたいことはそれじゃ対応できないです。

結局 UPDATE文の書き方はわからなかったので、INSERT OR REPLACE 文を使ってお茶を濁しました。
なんかスッキリしませんが。

798:NAME IS NULL
07/03/12 09:57:47
>>788みたいな省略構文は2系では通らないみたいだね。
3だと普通に通る。

2系では、
UPDATE TCOUNT SET CNT = (SELECT COUNT(*) FROM TBL1 GROUP BY ID HAVING ID = TCOUNT.ID);
これで通る。

>>796みたいなビューからSELECTしてSETする方法も可。
UPDATE TCOUNT SET CNT = (SELECT CNT FROM VCOUNT WHERE ID = VCOUNT.ID)


799:NAME IS NULL
07/03/12 10:03:51
ごめん嘘、通らなかった、開くファイル間違えてたorz
ビューからSELECTする方法も、エラーは出ないけど期待と違う動作するよ…

2系はどうするんだろ?


800:NAME IS NULL
07/03/12 13:20:07
もう2系のことは忘れてあげてください

801:788
07/03/12 16:15:21
>>800
え、2系ってもう終了なんですか?
まだ PHP4 なんですけど・・・orz
というか、2系の顕著な制限についてどっかにまとまってませんかね?

>>799
更新される行に紐付く他テーブルを扱う書き方ができない気がするんですよね・・・
自分は
INSERT OR REPLACE INTO TCOUNT(ID, CNT, その他カラム)
 SELECT TCOUNT.ID, COUNT(TBL1.ID), TCOUNT.その他カラム FROM TCOUNT, TBL1
  WHERE TBL1.ID=TCOUNT.ID GROUP BY TCOUNT.ID, TCOUNT.その他カラム
みたいにやりました。
TCOUNT.ID が PRIMARY KEY(というか UNIQUE属性)なので出来る方法だと思いますが。


802:NAME IS NULL
07/03/12 17:35:33
>>801
2系はメンテモードと化していて、新機能の付加はまずない。
2系の制限を知りたい場合は、3系のドキュメントで3系の新機能を見るのが
わかりやすい。

803:NAME IS NULL
07/03/12 22:43:00
>>801
URLリンク(www.sqlite.org)
kore?

804:NAME IS NULL
07/03/14 06:07:23
2から3って落とし穴が有るから嵌まらないようにな。
まずはバックアップしてくれ。

805:NAME IS NULL
07/03/14 13:15:43
2から3には何の落とし穴もないから2なんて捨ててどんどん乗り換えるのがいいね。
どうせバックアップが必要なほど大事なものなんて入れてないし。

806:NAME IS NULL
07/03/14 20:21:07
アクセスほど使われてないってヲチか。
業務でsqlite使ってる香具師って皆無?

807:NAME IS NULL
07/03/14 20:53:08
Firefox とか Thunderbird とか Mac とか業務で使ってる奴は全員使ってるだろ


808:NAME IS NULL
07/03/15 02:43:11
そうだな
POPFileでも使ってるな


809:NAME IS NULL
07/03/16 13:01:17
マクを業務で使ってるって印刷工ぐらいだろ。

810:NAME IS NULL
07/03/16 18:41:48
でいとれ用のツールの内部ストレージとして使おうとしてたがどうしよう

811:NAME IS NULL
07/03/16 21:11:04
つこうてるよ

812:NAME IS NULL
07/03/20 02:00:45
Visual Studio 2005(使用言語はC#)を使って全文検索データベースソフトを作ろうとしている。
手始めに、コンソールアプリケーションのプロジェクトを作成し、ADO.NET Data Provider for SQLite(SQLite.NET.dll)、
sqlitedll-3_3_13(sqlite3.dll, sqlite3.def)、fts2dll-3_3_13(fts2.dll, fts2.def)の5つのファイルをDebugフォルダに入れた。
「参照の追加」でSQLite.NET.dllを追加した。

using System;
using System.Collections.Generic;
using System.Text;

using Finisar.SQLite;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
SQLiteConnection sqlite_conn;
SQLiteCommand sqlite_cmd;
SQLiteDataReader sqlite_datareader;

sqlite_conn = new SQLiteConnection();
sqlite_conn.ConnectionString = "Data Source=c:\\test.db;Version=3;New=True;UTF8Encoding=True;";
sqlite_conn.Open();
sqlite_cmd = sqlite_conn.CreateCommand();
//ここに挿入
sqlite_cmd.CommandText = "CREATE TABLE test (id INTEGER PRIMARY KEY, text VARCHAR(100));";
sqlite_cmd.ExecuteNonQuery();
sqlite_cmd.CommandText = "INSERT INTO test (text) VALUES('This is a pen.');";
sqlite_cmd.ExecuteNonQuery();
sqlite_cmd.CommandText = "INSERT INTO test (text) VALUES('I am a student.');";
sqlite_cmd.ExecuteNonQuery();
sqlite_cmd.CommandText = "SELECT * FROM test;";
sqlite_datareader = sqlite_cmd.ExecuteReader();
while (sqlite_datareader.Read())
{
Console.WriteLine(string.Format("{0}, {1}", sqlite_datareader["id"], sqlite_datareader["text"]));
}
sqlite_conn.Close();
while (true) { }

}
}
}

というテストがうまくいったので、//ここに挿入 ってところに
sqlite_cmd.CommandText = "SELECT load_extension('fts2.dll');";
sqlite_cmd.ExecuteNonQuery(); //ここのステップ
sqlite_cmd.CommandText = "CREATE VIRTUAL TABLE vtbl USING fts2 (id, text VARCHAR(100));";
sqlite_cmd.ExecuteNonQuery(); //ここのステップ2
を挿入してみた。すると、//ここのステップ まで進んだときに、"not authorized"というエラーが出てきて、先に進めない。
この行と上の行をコメントアウトすると当然、//ここのステップ2 まで進んだときに、"no such module: fts2"というエラーが出る。

どうしたらfts2モジュールを読み込めるか教えれ。

813:NAME IS NULL
07/03/20 05:08:59
ドトネトのラッパーのことは良く知らんが
C APIで言う
sqlite3_enable_load_extension()を呼んでおかなければならないのでは?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4345日前に更新/190 KB
担当:undef