SQLite3のページ
(Precompiled Binaries For Windows) の zipをダウンロードしてsqlite3.dllを取り出して配布先アプリや開発環境のフォルダーへコピーする
simple Delphi wrapper for Sqlite 3 を入手
http://www.itwriting.com/repos/sqlitewrapper/trunk/sqlitesimpledelphi.zip
(この sqlitesimpledelphi.zip にも sqlite3.dll は入っています)
利用したいプロジェクト SQLite3.pas / SQLiteTable3.pas をコピーするか プロジェクトに追加して利用する
■サンプルから抜粋
var sldb: TSQLiteDatabase; sltb: TSQLIteTable; sSQL:String; begin sldb := TSQLiteDatabase.Create(ExtractFilepath(application.exename) + 'test.db';); if sldb.TableExists('testTable') then // テーブルの存在チェック begin sldb.execsql('DROP TABLE testtable'); // 存在していたらドロップ end; sSQL := 'CREATE TABLE testtable ([ID] INTEGER PRIMARY KEY,[OtherID] INTEGER NULL,'; sSQL := sSQL + '[Name] VARCHAR (255),[Number] FLOAT, [notes] BLOB, [picture] BLOB COLLATE NOCASE);'; sldb.execsql(sSQL); sldb.BeginTransaction; //トランザクション開始sSQL := 'INSERT INTO testtable(Name,OtherID,Number,Notes) VALUES ("Another Name",12,4758.3265,"More notes");';sldb.execsql(sSQL); // SQL実行sldb.Commit; //トランザクション終了 コミット// query the data レコード操作 sltb := sldb.GetTable('SELECT * FROM testtable');if sltb.Count > 0 then begin // display first row ebName.Text := sltb.FieldAsString(sltb.FieldIndex['Name']); ebID.Text := inttostr(sltb.FieldAsInteger(sltb.FieldIndex['ID'])); ebNumber.Text := floattostr(sltb.FieldAsDouble(sltb.FieldIndex['Number'])); Notes := sltb.FieldAsBlobText(sltb.FieldIndex['Notes']); memNotes.Text := Notes; end;sltb.Free;sldb.Free; // DB解放end;
■SQLite3のSQL
CREATE TABLE テーブル名 (
[項目1] INTEGER PRIMARY KEY,
[項目2] INTEGER NULL,
[項目3] VARCHAR (255),
[項目4] FLOAT,
[項目5] BLOB,
[項目6] BLOB COLLATE NOCASE
);
とサンプルにはあるが、
資料には TEXT , NUMERIC , INTEGER , REAL , NONE が型として利用できるとある
又、INTEGER は int と3文字表記できたり、文字が入ると文字列として格納する等と
基本は文字列扱いであるかのような書き方がされているサイトもある
0 件のコメント:
コメントを投稿