2011-12-11 10 views
2

私はcoolstorageとsqliteをデータベースとして使用してwp7用のアプリケーションを作成しています。wp7でcoolstorageを使ってsqlite dbを変更する方法は?

私がsqliteを選んだ理由は、スキーマの更新を行う能力が優れているように見えるからです。

私のテストでは私は 'alter table ...'コマンドを実行できますが、カラムを追加してそのカラムを読み込もうとすると、カラムが存在しないというエラーが出ます。

しかし、アプリを閉じてもう一度実行すると、その列が表示されます。

私は接続を閉じようと考えていましたが、coolstorageを使用してそれを行う方法はわかりません。方法はありますか?それは働くだろうか?

私はCoolstorageとSQLiteの両方に新しいので、どんな助けもありがとうございます。

sqliteスキーマを変更しなくても、アプリケーションを終了したり再操作したりすることはできますか?

[更新日:2011年12月15日] この問題は、影響を受けるテーブルを照会する前にスキーマ更新を実行したことを避けることで回避されました。

誰かがテーブルに対してクエリを実行した後にスキーマを変更する方法を思いつく人は、私はまだ知りたいと思っています。

+0

組み込みのデータベースを使用していない理由は何ですか?スキーマのアップグレードをサポートしています。 –

+0

それは私のように見えるのは、SQLのDBに組み込まれているようなスキーマの更新を行う能力が限られているだけです。テーブルや列を追加することはできますが、何もドロップすることはできません。少なくとも私は何かを落とす方法を理解できません。 – Zack

+1

ああ、[あなたは正しい](http://msdn.microsoft.com/en-us/library/hh394018(v= VS.92).aspx#BKMK_MigrationMethodologies)。 'このリリースでは、既存のデータベースから列やテーブルを削除することはできません。 –

答えて

0

Sqliteには、既存のテーブルの末尾に列を追加する機能がありますが、すでに準備されているクエリは変更内容を表示しません。私の経験上、クエリーをもう一度準備すればうまくいきます。または、データベースを閉じて再オープンすることもできます。他のスキーマの変更が直接サポートされておらず、次の操作を行いますする必要があることに注意してください:

  1. が必要な変更で新しいテーブルを作成し、元のテーブル
  2. の名前を変更します。
  3. 適用可能な場合は、古いテーブルのデータを新しいテーブルにコピーします。
  4. 元のテーブルを削除します。
関連する問題