SQLite 4
..
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()を呼んでおかなければならないのでは?
814:NAME IS NULL
07/03/20 19:19:00 zTNCfQkm
インサートした行の主キーってどうやれば取得できますか。
CAPIにそんな関数はあるんでしょうか。
815:NAME IS NULL
07/03/20 19:44:22
あった。。。。
long long int sqlite3_last_insert_rowid(sqlite3*);
816:NAME IS NULL
07/03/21 03:34:36 rOkkBTf+
全角のテーブルとかファイルとかは無理なんでしょか?
817:NAME IS NULL
07/03/21 12:14:06
できないと思った理由は何だ
818:NAME IS NULL
07/03/24 19:37:07 FENpG053
23日午後11時55分ごろ、小田急小田原線の下り急行電車で、
東京都町田市の文科省初等中等教育局係長、大塚智尚容疑者(36)が
女性会社員(20)の下半身を触ったとして神奈川県警麻生署員に
迷惑防止条例違反(痴漢)容疑で現行犯逮捕された。当時酒に酔っており
「何もやっていない」と容疑を否認しているという。
819:NAME IS NULL
07/03/24 20:07:39
スレ違うよ。全然関係ないよ。
820:NAME IS NULL
07/03/25 13:32:50
test
821:NAME IS NULL
07/03/25 14:03:51
アクセス使えば良いのに。
822:NAME IS NULL
07/03/25 14:07:10
それだけは勘弁してくれ
823:NAME IS NULL
07/03/25 20:00:07
アクセスはあくせく働く人のデーターベース
824:NAME IS NULL
07/03/25 20:14:51
うわーおもしろい
825:NAME IS NULL
07/03/25 20:53:08
マイクロソフト国の奴隷ども。苦しゅう無い。ただならアクセスを使ってやっても良いぞ。
826:NAME IS NULL
07/03/25 22:59:10
>821
64ビット環境でmdbをAccess以外の外部プログラムから読み書きする方法を教えてください。
827:NAME IS NULL
07/03/27 00:25:47 D35J0C06
コマンドラインで操作する sqlite-2.8.17 を FreeBSD 4.10 上で実行
したのですが、走りませんでした。
これは sqlite-2.8.17.bin がLinuxの実行ファイルだからでしょうか?
Linuxシステムでは問題なく動いたのですが……。
FreeBSD上で動かすにはどうしたらよいのでしょうか。
828:NAME IS NULL
07/03/27 00:55:12
>827
おまいさんのシステムにはmakeもccも入ってないのかね?
# 最近のFreeBSDはLinuxのバイナリも動かせると聞いたがそっちのが確実だよな
# ……ってかportsあるじゃん。
829:NAME IS NULL
07/03/27 09:13:29
いくらなんでも釣りだろ。バカすぎる。
830:NAME IS NULL
07/03/27 16:51:14
いちいちmake installなんてしないだろ。
pkg_add一発だよ。
このスレってアクセス買う金のない貧乏人の巣窟だな。
オラクル買うことは一生なさそう(w
831:NAME IS NULL
07/03/27 18:06:00
>>830
ずいぶん金銭にコンプレックスがあるようですね
832:NAME IS NULL
07/03/27 19:08:30
金で苦労してるんだろ
そっとしといてやれや
833:NAME IS NULL
07/03/28 00:12:55
この釣り場は「アクセス」このエサ使うと爆釣ですねw
834:NAME IS NULL
07/03/28 01:20:26
GROUP BY のパフォーマンスに関して
CREATE TABLE addressbook(address TEXT COLLATE NOCASE,job TEXT);
CREATE INDEX idx_addr_job ON addressbook(address,job);
こういうテーブルがある時、次のクエリーではインデックス idx_addr_job が適切に使われる。
EXPLAIN QUERY PLAN SELECT job, COUNT(address) FROM test WHERE address='東京都' GROUP BY job;
0|0|TABLE addressbook WITH INDEX idx_addr_job ORDER BY
しかし、次のクエリーでは GROUP BY job にインデックスが使われないので
EXPLAIN QUERY PLAN SELECT job, COUNT(address) FROM test WHERE address like '東京都%' GROUP BY job;
0|0|TABLE addressbook WITH INDEX idx_addr_job
次のような書き換えを考えてみた。
CREATE INDEX idx_addr ON addressbook(address);
CREATE INDEX idx_job ON addressbook(job);
案1:ROWID を使ったサブクエリー
EXPLAIN QUERY PLAN SELECT job, COUNT(address) FROM test WHERE ROWID in
( SELECT ROWID from addressbook WHERE address like '東京都%') GROUP BY job;
0|0|TABLE addressbook USING PRIMARY KEY
0|0|TABLE addressbook WITH INDEX idx_addr
案2:EXISTS を使ったサブクエリー
EXPLAIN QUERY PLAN SELECT job, COUNT(address) FROM test WHERE EXISTS
( SELECT * from addressbook WHERE address like '東京都%') GROUP BY job;
0|0|TABLE addressbook WITH INDEX idx_job ORDER BY
0|0|TABLE addressbook WITH INDEX idx_addr
どっちの方が速いだろうか。
835:NAME IS NULL
07/03/28 01:32:15
ダミーデータでも作って実際に計測してみればいいじゃん
836:NAME IS NULL
07/03/28 09:16:28
アクセスなら悩まなくても最速だ。
837:NAME IS NULL
07/03/29 01:08:44
最速でデータ破壊www
838:NAME IS NULL
07/03/30 05:10:54
C#のSystem.Data.SQLiteの事はこのスレでいいんですかね。
839:NAME IS NULL
07/03/30 11:52:26
Visual C# 2005 Express Edition で ADO.NET 2.0 Provider for SQLite と、 SQL Server 2005 Compact Edition とでは、Desktopアプリではどっちが使い勝手が良いですかねー? 元データはWebからCSVダウンロードして取り込む予定です。
840:NAME IS NULL
07/03/31 00:03:25
>839
流石にVC#と組ませるならSQL Serverの方に軍配が上がるだろうなぁ。
841:NAME IS NULL
07/03/31 12:18:12 wYZslmRj
>>840
それは何故ですか?
842:NAME IS NULL
07/03/31 15:15:21
VC#との組み合わせっていうか、
ADO.NET経由でSQL Server系のDBより使い勝手のいいDBって無いだろ。
既存RDBMSがあるとか、ライセンスフィーが出せないとか、技術者があつまらないとか、
そういうことでSQL Server系を選ばないことはあったとしても、
「どっちがいい?」って聞かれたら普通はSQL Server系を選んでおくのが無難だ。
ADO.NETとかADOとかでつまずいたとき腹たつぜ?
843:NAME IS NULL
07/03/31 15:18:41 kitDOn2Q
>>842
両方使って比較してみてそう思ったのですか?
844:NAME IS NULL
07/03/31 15:24:54
>>842
まるで世の中の全てのDBMSを試したかのような台詞ですねw
俺は両方使ったことあるが(VC#じゃないけど)一長一短だと思うな
845:NAME IS NULL
07/03/31 15:33:35
>>844
具体的な長所と短所を教えてください。
846:NAME IS NULL
07/03/31 16:22:39
参考にならないスレだなあ。もういいです。
847:NAME IS NULL
07/03/31 17:54:56
SQLite は C API 経由で使わない限り、他の DB に比べてメリットは薄いと思う。
848:NAME IS NULL
07/03/31 18:43:23
>>847
kwsk
849:NAME IS NULL
07/03/31 19:30:44
一般論として、問題が起きたときに自己解決できない人はサポートのある製品を選択
したほうが良いかもしれないね。
850:NAME IS NULL
07/03/31 21:26:45
>>848
だから、
C API経由で使うとメリットある。
それ以外だと、他のDBと対等ということ。
851:NAME IS NULL
07/03/31 21:31:08
>>849
サポートあっても高いじゃん。
あれじゃ、ごく普通の一般家庭の人が
聞くレベルじゃないと思う。
852:NAME IS NULL
07/03/31 22:21:15
Cにこだわる理由が不明。
853:NAME IS NULL
07/04/01 00:01:25
軽さこそ正義
854:NAME IS NULL
07/04/01 00:05:16
○○こそ正義。
はいはい。自分の好きな単語入れてね。あーくだらね。
855:NAME IS NULL
07/04/01 00:05:58 ids7C6Ys
女は見た目こそ正義
856:NAME IS NULL
07/04/01 00:08:03
なんでも正義
857:NAME IS NULL
07/04/01 00:13:59
>>851
そうです。ごく普通の一般家庭の人は SQLite です。
858:NAME IS NULL
07/04/01 00:25:24
高中正義
859:NAME IS NULL
07/04/01 00:25:36
>>850
Perl + DBD::SQLite でめちゃくちゃ便利に使ってる俺は特殊ということか?
860:NAME IS NULL
07/04/01 00:59:32
>>859
それはPerlがSQLite
861:NAME IS NULL
07/04/01 01:00:13
俺様こそ正義
862:NAME IS NULL
07/04/01 01:01:59
ごめん途中で送信しちゃった
>>859
それはPerlがSQLiteをC API経由で使ってるんだから、
>>850の言うところのメリットのある使い方だと思う
863:NAME IS NULL
07/04/01 01:11:51
>>862
「C API経由」でない使い方のほうを教えてくれ
864:NAME IS NULL
07/04/01 01:32:13
他のどんな方法も、結局は C API を経由するんだから
C API を直接使うのが一番ってこと。
C++ でのラッパーくらいならいいけど、Perl だの
python だので使うなら SQLite にこだわる必要ゼロだからね。
865:NAME IS NULL
07/04/01 02:18:52
そうでもないよ
866:NAME IS NULL
07/04/01 03:06:37
ロッキングマンドクサ、でもGDBMは嫌、という向きにはSQLite以外に何がある?
867:NAME IS NULL
07/04/01 03:32:49
>>864
もうちょっと詳しくお願いします。
例えて言うなら、「どうせバイナリになるんだから、Cなんか使わずに
最初からバイナリで打ち込んだほうが良い」みたいな感じですか?
どうも今ひとつメリットと呼んでいるものの実体が理解できないのです。
868:NAME IS NULL
07/04/01 11:14:08
>>867
例えばネットワーク越しに会話するサーバタイプのDBMSなら
ネットワーク機能のある言語ならその言語自身でドライバが書ける。
Javaのtype4ドライバやADO.NETのようにね。
(ま、どっちみち低位のランタイムレイヤはC/C++で実装されていたり
するわけだが)
一方SQLiteはあくまでCの組み込み用ライブラリであって、多言語からの
利用は全てそのラッパの形にならざるを得ない
ってとこじゃないのかな。
だからと言って他言語からの利用が無意味だとは全く言えないはず。
Perl他の動的言語でDBMが十分有用である(これもCライブラリのラッパだ)
ことを見ても分かる。
869:NAME IS NULL
07/04/01 13:15:47
SQLiteのテストは全てTclで書かれていますが、それも否定するんですかあ?
870:NAME IS NULL
07/04/01 13:56:18
SQLiteはもともとはTclの拡張だった。それが他からも使えるように
分離したのがCのAPI。組み込みというのは、アプリケーションに内蔵
するという意味だけで、別にCだけが組み込みっていうわけじゃないよ。
871:NAME IS NULL
07/04/01 14:17:13
C API は、PerlとかPythonから呼び出せるのだから、
何を使おうが、C APIを使っていることになる。
872:NAME IS NULL
07/04/01 14:26:33
PHP(PDO)をyum@CentOSでバージョンアップしたら
SQLite3のDBファイルが読み出せなくなってしまった・・・ orz
旧バージョンでdumpして再構築したら読めるようになったけどさ・・・
マイナーバージョンアップで互換性が無くなるって、一体、どうよ?
ファイルコピーするだけでバックアップ取れるのが楽ちんだったけど、
もうMySQLに逝きます。MyISAMなら、MySQLでもファイルコピーで済むし。
873:NAME IS NULL
07/04/01 16:12:56
>>872
それは PHP の問題であって SQLite3 の問題ではない。
874:NAME IS NULL
07/04/01 16:18:07
>>873
PHPのどのような問題なんですか?
もうちょっと詳しくお願いします。
875:NAME IS NULL
07/04/01 18:57:39
>MyISAMなら、MySQLでもファイルコピーで済むし。
ちょっ、おま、うぇうぇうぇ
876:NAME IS NULL
07/04/01 20:59:54
>>864
ワケワカンネ
Perl でやるなら DBD::SQLite を使うんじゃなくて
Perl コード中に直接 C ソースを書けってか?
877:NAME IS NULL
07/04/01 21:01:29
>>871
だったら、C API を使っていない使い方って何?
878:NAME IS NULL
07/04/01 21:03:37
DBD::SQLiteがC APIを使っているだろ。
879:NAME IS NULL
07/04/01 21:08:19
しかしおまえらよく釣られるな。
880:NAME IS NULL
07/04/01 21:15:15
どう考えても >>864 なんか屁理屈だろ。こんなアフォにいちいちかまうなよおまいら。
881:NAME IS NULL
07/04/01 21:20:20
C APIを直接呼ぶのは可能だが、
はっきりいって、使い勝手が悪いので
やめたほうが良い。
SQL文字列を渡すときなんか、ポインタと、
文字列のサイズを渡さなきゃならないんだぜ。
メモリも自分で確保、開放しなきゃならんし、
サイズ設定ミスると、メモリ用破壊されるし。
効率が悪すぎる。
882:NAME IS NULL
07/04/01 21:29:49
でもそれCではふつうのことだよね
LLに慣れちゃうとえらい面倒だけど
LLのwrapperを書いた人はえらいなぁ
883:NAME IS NULL
07/04/01 23:30:21
>>881
> SQL文字列を渡すときなんか、ポインタと、
> 文字列のサイズを渡さなきゃならないんだぜ。
std::string使って
str.c_str(), str.size()
を渡すだけ。
ま、マンドイのは事実だがな。
884:NAME IS NULL
07/04/01 23:39:05
何でマジレスしてんの?バカ?
885:NAME IS NULL
07/04/01 23:41:42
>>878
だから、C API を使ってない使い方って何?
886:NAME IS NULL
07/04/02 00:08:54
たとえばPerl、DBD介しちゃったら、SQLiteにこだわる必要ないじゃん
MySQLのほうが速いし、Postgresqlのほうが高機能だよ
887:NAME IS NULL
07/04/02 00:11:31
>>886
クライアントサイドアプリケーションの場合配布コストだのなんだのまで考える必要があるんだが。
馬鹿なら黙って死んどけ。
888:NAME IS NULL
07/04/02 00:13:01
>>886
またおまえか
889:NAME IS NULL
07/04/02 00:21:34
エイプリルフールは終わりましたよー。
890:NAME IS NULL
07/04/02 00:42:14
>>883
> std::string使って
> str.c_str(), str.size()
> を渡すだけ。
Cじゃないだろw
891:NAME IS NULL
07/04/02 00:43:47
>>886
> たとえばPerl、DBD介しちゃったら、SQLiteにこだわる必要ないじゃん
> MySQLのほうが速いし、Postgresqlのほうが高機能だよ
意味わからんw
その理屈なら、C言語でもSQLiteにこだわる必要ないということになるじゃん。
自分が何を言っているのか良く考えてから発言しろw
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4343日前に更新/190 KB
担当:undef