2016-10-06 17 views
2

私はアンドロイドのsqliteデータベースでテンポラリテーブルを作成して使いたいと思います。
SQL文は例外なく実行されますが、テーブルは作成されません!以下のサンプルコードで私のアプリを実行する
は、私はテーブル得なかっ:Android sqliteはTEMPテーブルを作成できません

STARTのEDITを

public class DatabaseHelper extends SQLiteOpenHelper { 
public static final String DB_NAME = "mydb.db"; 
private static DatabaseHelper instance; 

public static synchronized DatabaseHelper getHelper(Context context){ 
    if (instance == null) 
     instance = new DatabaseHelper(context); 
    return instance; 
} 

private DatabaseHelper(Context c) { 
    super(c,DB_NAME,null,1); 
} 

@Override 
public void onConfigure(SQLiteDatabase db) { 
    super.onConfigure(db); 
    db.enableWriteAheadLogging(); 
    db.setLocale(Locale.getDefault()); 
} 

@Override 
public void onCreate(SQLiteDatabase db) { 
    // lots of table creation 
    db.execSQL("CREATE TABLE my_table (id INTEGER PRIMARY KEY, value TEXT)"); 
    // more tables .... 
}} 
...... sample 
DatabaseHelper databaseHelper = DatabaseHelper.getHelper(this); 

のEND EDIT

SQLiteDatabase db = databaseHelper.getWritableDatabase(); 
db.execSQL("create TEMP table my_temp_table (id integer primary key, value text)"); // no exceptions 

Cursor cursor = db.query("SQLITE_TEMP_MASTER", null, null, null, null, null, null); 

while(cur.moveToNext()) { 
    // no lines (no temporary tables) 
} 

私はから一時テーブルを作成した場合select文を実行し、作成したテーブルを(同じdb接続内で)クエリすると、 "no such such table .... exception"が表示されます。私を混乱させている何

db.execSQL("create TEMP table my_temp_table as select * from my_table"); 
Cursor cursor = db.query("temp.my_temp_table", null, null, null, null, null, null); 
^^^ no such table: temp.my_temp_table(code 1): , while compiling: SELECT * FROM temp.my_temp_table 

は同じSQLコードは、すなわちアプリ外とAndroidデバイスの外SQLiteStudio以内に完璧に動作...ということです。 多分私は何かを有効にするのを忘れていた、または...私は特定のデバイスの許可が必要ですか?

+0

は、あなたのdatabaseHelper.getWritableDatabaseからコードを提供することができます使用するようにコードで()してください? – glethien

+0

私はDatabaseHelperクラスで私のポストを更新しました –

+1

あなたはこれに気づいていますか? http://www.sqlite.org/tempfiles.html#tempdb本当に、あなたはTEMPテーブルを作成した接続を閉じていませんか? – kosa

答えて

0

create temp table xの結果は表xないtemp.x

変更my_temp_table

+0

私のコードを示唆したとおりに変更し、やはり「このようなテーブルはありません....例外」がスローされます! –

関連する問題