ビルドされたスキーマを持つ有効なSQLiteConnectionにある添付データベースファイルにアクセスしようとすると、「このようなテーブルがありません」というエラーが表示されます。sqlite添付データベースの問題
"メイン"接続でいくつかのテストデータを保存した後、ファイルを添付し、後で使用するために "main"からデータをエクスポートしようとします。ここでは、ファイルを添付するために使用されるコードは次のとおりです。
private static void _attachDatabase(SQLiteConnection conn, string dataFile) {
var cmd = new SQLiteCommand(conn)
{
CommandText = string.Format("ATTACH '{0}' AS {1}", dataFile, ATTACHED_DB)
};
_log.Debug(cmd.CommandText);
cmd.ExecuteNonQuery();
}
コマンドのログ出力は、私もファイルに挿入しようとすると、私はこれの最後にエラーが発生します
"...\bin\Debug\testData.db3' AS asdf" where testData.db3 is the file.
です役職。
提供された情報から問題が発生していませんか?さて、私は、デバッガのどこかに添付のdb( "asdf")を見ることができるでしょうか?
乾杯、
Berryl
試験 'SQLiteTesting.Helpers.QueryTests.Director_if_Tim_Burton_query_should_return_one_movie' が失敗しました:TestFixtureSetUpはQueryTests
に失敗しTestFixtureに失敗しました:System.Data.SQLite.SQLiteException:SQLiteのエラー そのようなテーブル:asdf.ActorRole at System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn、String strSql、SQLiteStatement previous、UInt32 timeoutMS、String & strRemain) (System.Data.SQLite.SQLiteCommand.BuildNextCommand ) で(SQLiteCommand CMD、のCommandBehavior挙動)System.Data.SQLite.SQLiteDataReader..ctorでSystem.Data.SQLite.SQLiteDataReader.NextResultでSystem.Data.SQLite.SQLiteCommand.GetStatement(のInt32インデックス) () でSystem.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehaviorビヘイビア) at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery() at SQLiteTesting.Helpers.SQLiteLoader._copyTableData(SQLiteConnection conn、String source、String destination)in C:\ Users \ Lord & Master \ Documents \ Projects \ Data \ NHib projects \ Cookbook \ SQLiteTesting \ Helpers \ SQLiteLoader.cs:C:\ Users \ Lord内のSQLiteTesting.Helpers.SQLiteLoader.ExportData(SQLiteConnection conn、String dataFile)で の行番号&マスター\ドキュメント\プロジェクト\データ\ NHibプロジェクト& Master \ Documents \ Projects \ Data \ NHibプロジェクト\ Cookbook \ SQLiteTesting \ Helpers \ SQLiteTesting \ Helpers \ SQLiteLoader.cs:行30 でSQLiteTesting.Helpers.QueryTests.OnFixtureSetUp()をC:\ Users \ QueryTests.cs:C:¥Users¥Lord & Master \ Documents \ Projects \ Data \ NHibプロジェクト\ Cookbook \ SQLiteTesting \ Helpers \ BaseFixture.csのSQLiteTesting.Helpers.BaseFixture.FixtureSetUp()の行番号 :行23 2010 -11-23 18:15:36,835 DEBUG ATTACH '... \ bin \ Debug \ testData.db3' AS as 2010-11-23 18:18:12,935 asdf.ActorRoleにDEBUG INSERT SELECT * FROM ActorRole
こんにちはJames。添付ファイルが既存の接続からスキーマを添付ファイルdbに自動的に複製すると仮定するのは間違っていますか?もしそうなら、私は手動ですべてのテーブルを複製する必要があります。これを行う最善の方法は何ですか?乾杯 – Berryl
それは私が言ったことではない!存在しないファイルを指定すると、sqliteは空のスキーマを持つ新しいファイルを作成します。 –
あなたはそれが空であると言っていましたが、ATTACHが私が思っていたようにデータベースを複製していなかったことを知ってくれました。テーブルを作成した後、すべて正常に動作します。新しい情報を明確にするためのフォローアップの質問は良いことだと思いますが、あなたは同意しませんか? – Berryl