2012-03-07 7 views
0

データベースをAndroidアプリケーションで最初に作成するときに実行する必要があるcreate文がいくつかあります。彼らは、次のようなフォーマットされています。SQLiteのSQL文の適切な書式設定

<string-array 
     name="uaDBcreates"> 
     <item> 
      CREATE TABLE pos_locations (
       _id INTEGER PRIMARY KEY, 
       location_name TEXT, 
       service_url TEXT, 
       latitude REAL DEFAULT 0, 
       longitude REAL DEFAULT 0 
      ); 
     </item> 
    </string-array> 

    <string-array 
     name="uaDBInserts"> 
     <item> 
      INSERT INTO urbanAgendaDB.pos_locations (
        _id, 
        location_name, 
        service_url 
        latitude, 
        longitude) 
       VALUES (
        000001, 
        OfficeTest, 
        http://myservice.com/DoStuff, 
        45.530315, 
        -73.569939); 
     </item> 
    </string-array> 

は一般的に、これは(thise仕事への可能性があります)Android上でのSQLiteで実行することができ、SQL文の適切な形式ですか?具体的には、Androidのdocs状態のSQL文の一部は、セミコロンで終わらないようにしてください。

答えて

0

SQLDatabase APIを使用した場合にのみ、INSERTステートメントを直接SQL構文で使用していません。私の経験から、あなたのCREATE声明は書かれた通りに働くと言います。

APIドキュメントに関する限り、これは非常に簡単です。セミコロンを許可するメソッドでこれらのステートメントを使用します。最後にそれらを許可しないメソッドで同じステートメントを使用する必要がある場合は、セミコロンを削除します。 (ステートメントのセミコロンを避け、セミコロンを必要とするAPIメソッドでこれらのステートメントを使用する場合にのみ、適切な終了記号を追加することもできます)。

しかし、私は事実に少し戸惑いますSQL文をXMLに含めています(string-arrayの唯一の項目ではありません)。通常、私はそれらをJavaコードで、String連結形式で表示するのに使用されます。

+0

文字列配列の使用は、実行する文が複数ある可能性が高いためです。私がXMLファイルでそれらを持っている理由は、DBに関連するすべてをその場に保つことです。 SQL文を保存する最良の場所を示すリソースに私を指すことができたら、私が読んだチュートリアルやリソースはすべて非常に単純化されているので、 Android上でSQLiteを使用するために必要なものだけを表示します。 –

+1

@MikeDあなたが信頼できるソースと呼べるものはありませんが、データベースインタラクションは通常、単一のクラスに保持されています。コンテンツプロバイダ、または開発者が独自のアプリケーションでデータベースに直接アクセスしたい場合は単純なラッパー。そのクラスは、データベースに関連するすべてが格納される場所です。たとえば、 'CREATE'のような文は、' static final String'フィールドに格納され、適切なときは常に使用されます。 –

関連する問題