2017年02月10日

SQLiteのオプション一覧

オプション

SQLiteのオプションは接続文字列で指定する。


string connectionString = @"data source=sample.db;synchronous=Normal;journal mode=Persist";


上記のように即値で指定してもよい。
付与するオプションが多い場合などは接続文字のビルダーを使う。

            var builder = new System.Data.SQLite.SQLiteConnectionStringBuilder
            {
                DataSource = @"sample.db",
                SyncMode = SynchronizationModes.Normal,
                JournalMode = SQLiteJournalModeEnum.Persist,
            };
            string connectionString = builder.ToString();

オプション一覧

いろいろ試してみたけど、そもそも意味がよくわからないものや、指定有無で何が変ったのかよくわからないものが多かった。
指定が必須なのは赤文字のDataSourceのみ。通常はこれだけで行ける。他に使用しそうなのは太字にしてみた。もちろん個人的感想です。


int Version
インスタンス化されるSQLiteエンジンの既定版を指定する。現在は3のみ有効。つまり、現在のSQLiteはバージョン3ってことを意味している。
SynchronizationModes SyncMode
ファイルフラッシュの同期モードを指定する。Normalはコード上で重要な契機に、Fullは書き込み毎に、OffはOSのデフォにお任せ。未指定時はNormal。
bool UseUTF16Encoding
エンコーディングの指定。既定はFalseであり、この場合はUTF8エンコーディングって意味。
bool Pooling
コネクションプーリングの使用有無。既定はFalse
bool BinaryGUID
GUIDをバイナリフォーマットで保持するかどうか。デフォルトはTrueで保持される。
string DataSource
オープンする対象のデータファイル名。デフォルト空文字列。
string Uri
DataSoruceプロパティの代替。デフォはNull。
string FullUri
SQLite URI 文法によるDataSourceプロパティの代替。デフォはNull。
int DefaultTimeout
新しく生成されたコマンドのデフォルトタイムアウト時間。タイムアウト時間を設定できないSQLiteトランザクション内のような内部で使われるコマンドに特に有用である。デフォルト30。
int BusyTimeout
SQLite coreライブラリで使われるBusy Timeout値。デフォルト0.
int PrepareRetries
preparing SQLにより実行されるリトライ回数の最大値。データベースのスキーマが変更されたことによりpreparationが失敗する場合にのみ適用される。デフォルトは3
int ProgressOps
プログレスイベント間の仮想マシン命令のおおよその値。プログレスイベントを実際に発生させるためには、SQLiteConnection.Progressイベントにハンドラを登録する必要がある。デフォルト0.
bool Enlist
分散トランサクションが存在している場合に、自動でそれに参加するか否かのスイッチ。デフォルトTrue。
bool FailIfMissing
Trueの場合は、指定されたデータベースファイルが存在しない場合に例外がスローされます。Falseの場合は自動で生成されます。デフォはFalse。
bool LegacyFormat
Trueの場合、最大限の互換性のために3.XXフォーマットを使用しますが、その結果データベースサイズが大きくなります。デフォはFalse。
bool ReadOnly
Trueの場合は読み取り専用でオープンされて、書き込みはできなくなります。デフォはFalse。
string Password
データベースの暗号化用パスワード。デフォは空文字列。
byte[] HexPassword
データベースの暗号化用バイト配列パスワード。デフォはNull。
int PageSize
ページサイズ。デフォは4096.
int MaxPageCount
データベースが保持できるであろう最大のページ数。デフォは0.
int CacheSize
キャッシュサイズ。デフォは-2000。
SQLiteDateFormats DateTimeFormat
日付型のフォーマット。デフォはDefault。ISO8601と一緒。
DateTimeKind DateTimeKind
日付型の種類。デフォはUnspecified。
string DateTimeFormatString
フォーマットやパースで使われる文字列。デフォはNull。
string BaseSchemaName
.NET Frameworkとの互換性のために使用されるプレースホルダベースのスキーマ名。デフォは"sqlite_default_schema"
SQLiteJournalModeEnum JournalMode
SQLiteがトランザクションジャーナルファイルをどう扱うか。Default,Delete,Persist,Off,Trancate,Memory,Walの指定がある。デフォのDefaultは既存のジャーナルモードを使用する。
IsolationLevel DefaultIsolationLevel
トランザクション分離レベル。デフォはSerializable。
DbType DefaultDbType
既定のデータベース種別。デフォはBadDbType。
string DefaultTypeName
デフォルトタイプ名。デフォはNull.
string VfsName
VFS名。デフォはNull.
bool ForeignKeys
Trueの場合は外部制約キーが使える。デフォはFalse.
bool RecursiveTriggers
入れ子になったトリガーの使用可否。デフォはFalse.
string ZipVfsVersion
Null以外が設定された場合にZipVfsが使えます。System.Data.SQLite.dllがINTEROP_INCLUDE_ZIPVFSオプションありでコンパイルされている必要がある。さもないと設定しても無駄。デフォはNull。
SQLiteConnectionFlags Flags
特別な振る舞いに関するスイッチ群。ロギングや数値型マッピングの型の指定など。デフォはDefault
bool SetDefaults
Trueならデータベースをオープンするためにデフォルト値が使われる。。デフォはTrue。
bool ToFullPath
Trueならデータソースファイルをオープンする前に指定されたデータソースファイル名からフルパスを解決するよう試みる。デフォTrue。
bool NoDefaultFlags
Trueの場合は既定の構成を使うことを回避する。デフォはTure.
bool NoSharedFlags
Trueの場合は共通の接続フラグを構成することを回避する。デフォはFalse。
posted by RR at 01:23 | Comment(0) | SQLite | このブログの読者になる | 更新情報をチェックする

2017年02月11日

Visual Studio 2017 リリース日が3月7日に決定

Visual Studio 2017 リリース日が3月7日に決定

発表はVisual Studioの開発者ブログの記事 

Join Us: Visual Studio 2017 Launch Event and 20th Anniversary

そこからちょっと引用

Today, I’m proud and humbled that Visual Studio is turning twenty – we’re celebrating two decades of Visual Studio! As we hit this great milestone, I’m also excited to announce that Visual Studio 2017 will be released on March 7.

現行の2015との違いはRC版の資料からだいたいは確認できます。

Welcome to Visual Studio 2017 RC
posted by RR at 10:44 | Comment(0) | 開発環境 | このブログの読者になる | 更新情報をチェックする

2017年02月19日

アマゾンでKindle版プログラミング・IT技術書フェア(全タイトル50%OFF 2/23まで)

アマゾンのKindleストアでIT系書籍のフェアやってます(〜2017/02/23)。

全タイトル 132件はこちら つ http://amzn.to/2magR2A

キンドル以外に紙の書式でもやってほしいですね。
出版年度の古めのものや内容に疑問符がつきそうなものも混じってますね。
この際に入手一読しておきたいものやトレンドに乗っているものも多いですよ。

その中からいくつか紹介

●UNITY系

●AI(機械学習)関連

●その他
posted by RR at 11:00 | Comment(0) | 書籍 | このブログの読者になる | 更新情報をチェックする