2012-03-30 22 views
0

管理対象のラッパーSQLite.NETを使用して、非管理対象のsqlite3.dllライブラリに直接呼び出しを行ったプロジェクトを変換しています。 PRAGMAのintegrity_checkコマンドの結果を取得する方法は、私を困らせた1つの変換ですか?何か問題が見つかった場合は、このコマンドSystem.Data.SQLiteコンポーネントを使用してintegrity_check PRAGMAの結果を取得する方法?

ためSQLite.NETヘルプファイルによると、その後、単一の文字列は、すべての問題の記述がある 返されます。すべてが正常であれば、「ok」は が返されます。

質問は、どのように私はその単一の文字列の結果にアクセスするのですか?

以下は、このコマンドを実行するために使用しているC++/CLIコードです。

SQLiteConnection^ db = gcnew SQLiteConnection("DataSource=MyTest.db"); 
try 
{ 
    db->Open(); 
    SQLiteCommand^ cmdIntegrity = gcnew SQLiteCommand("PRAGMA integrity_check;", db); 
    cmdIntegrity->ExecuteNonQuery(); 
    db->Open(); 
} finally 
{ 
    delete (IDisposable^) db; 
} 

私が正しく理解していればどのような援助のおかげで、 フィル・カブニー

答えて

0

は、あなたがsqlite-net薄いライブラリを使用しています。私はSQLiteCommandのコードをスキップしてSQLite.csになりました。私はあなたのケースで使用できるExecuteScalarという関数を(ADO.netのように)見つけました。

ので、代わりに

cmdIntegrity->ExecuteNonQuery(); 

を使用しての私は同様のを使用してのようなもの(私はC++/CLIでの経験がないが、意味が明確でなければなりません)

String ^result = cmdIntegrity->ExecuteScalar<String^>(); 
if(result->Equals("ok")) 
{ 
    db->Open(); 
} 
else 
{ 
    //manage the error 
} 

を書く必要があります技術System.Data.SQLiteライブラリと、あなたのケースではそれほど異なってはいけません。

関連する問題