SQLiteにdbExpressで接続するには?


やまだ  2013-08-19 21:07:06  No: 45107

[開発環境]
delphi xe3 Enterprise(spなし)
win7(sp1)

こんにちは。
dbExpressでSQLiteに接続しようと考えています。
delphiは、まだ少ししかやっていません。

サイトを参考にdbExpressに接続しようと試みました。

参考にしたサイトは以下です。

(サイト1)
http://www.migaro.co.jp/contents/products/delphi400/tips/introduction/4_02/02/01.html

(サイト2)
http://docwiki.embarcadero.com/RADStudio/XE4/ja/%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB%EF%BC%9ASQLite_%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B%EF%BC%88Delphi%EF%BC%89

SQLConnectionのParamですが、Databaseというのがないためか、「モジュール○○のアドレス0076EFC7でアドレス000003A0に対する読み取り違反が起きました」とメッセージが出ます。

エディタでDatabaseというパラメータを追加してやってみましたが、結果は同じでメッセージが出ます。

表示されているパラメータは以下の通りです。

DriverUnit=Data.DbxSqlite
DriverPackageLoader=TDBXSqliteDriverLoader,DBXSqliteDriver170.bpl
MetaDataPackageLoader=TDBXSqliteMetaDataCommandFactory,DbxSqliteDriver170.bpl
ColumnMetaDataSupported=True
FailIfMissing=True

できればサイト2で作りたいと思っています。

どうすればよいのか見当がつきません。

どなたか教えてください。

よろしくお願いします。


DEKO  2013-08-19 21:40:20  No: 45108

とりあえず、Update をあててみましょう。
以下のような QC もある事ですし。

Report No: 114370            Status: Closed
Acces violation when creating a SQLite-connection in Data Explorer
http://qc.embarcadero.com/wc/qcmain.aspx?d=114370
QCWIN:Defect_No=114370

必要最低限の接続コードは以下のようになります。
(ちょっと下の投稿でも URL を示していますが)

[DBX で SQLite に接続する]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1187


やまだ  2013-08-19 23:13:45  No: 45109

こんにちは。

updateは以前あてて、大変な目にあったので、躊躇してしまいます。

https://www.petitmonte.com/bbs/answers?question_id=8027

エンバカデロに問い合わせたのですが、updateしたものをアンインストールして(レジストリからも関連情報を手動削除して)、delphiのクリーンインストールをやってくださいと言われました。

update以外で方法は無いものでしょうか?


DEKO  2013-08-20 22:53:30  No: 45110

Delphi XE3 Upadate 2 をインストールされたようですが、
こちらの件は解決したのでしょうか?


やまだ  2013-08-21 19:38:10  No: 45111

こんにちは。

エンバカデロに相談し、Upadate2をあてたdelphiを全てアンインストールし、レジストリからも関連情報を削除し、delphiをインストールし直しました。

解決という意味では、解決してないと思います。

ちなみに、それ以来アップデートをしないようチーム内で決まりました。


DEKO  2013-08-21 21:21:17  No: 45112

> 解決という意味では、解決してないと思います。
どういう意味でしょう?

[DBX で SQLite に接続する]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1187

このコードでも通らないということですか?

> Upadate2をあてたdelphiを全てアンインストールし、
> レジストリからも関連情報を削除し、delphiをインストールし直しました。
アップデータをあてていない状態に戻したという事でしょうか?
17.0.4770.56661 ではない、と。

> ちなみに、それ以来アップデートをしないようチーム内で決まりました。
何故そのような結論になるのか正直理解できません。

アップデータは不具合を解決するためのものであり、
アップデータ未適用であれば他の方のアドバイスは得られにくいと思うのですが...。


サトウ  2013-08-22 07:13:12  No: 45113

私の場合、Delphi Xe3  update1でなんなく接続できました。

Paramsは
DriverName=Sqlite
Database=(ファイル名を直接書いた)
のみです。

ただ、Sqliteを使用すると、テーブルの第1レコードのフィールドにNullの項目があると、その項目がTWideMemo(だったと思う?)に判断されてしまい、第2レコード以降のデータとFieldの型が合わないとのエラーが発生し、その措置が面倒になってSQLiteはやめてしまいました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加