2012-04-27 11 views
0
public void execSqlFromAssets(String path) { 
    InputStream input; 
    String text; 
    try { 
     input = mCtx.getAssets().open(path + ".txt"); 
     int size = input.available(); 
     byte[] buffer = new byte[size]; 
     input.read(buffer); 
     input.close(); 
     text = new String(buffer); 
     String[] inserts = text.split(";"); 
     // SQLiteDatabase db = mDb; 
     for (String insert : inserts) { 
      insert = insert; 
      Log.w(TAG, insert); 
      try { 
       mDb.execSQL(insert); 
      } catch (Exception e) { 
       String err = (e.getMessage() == null) ? "Cant execute sql" 
         + insert : e.getMessage(); 
       Log.w(TAG, err); 
      } 
     } 

    } catch (IOException e) { 
     Log.w(TAG, "execSqlFromAssets: " + path + " file not found"); 
    } 

} 

からSQLステートメントを実行します文句を言いません。それは私が値を読み取ることができない例外をスローするnullです。私はちょうどそれがエラーメッセージの1つを得ることはありません: カントは、sqlINSERT INTO食品(名前、カルルス)VALUES( "kolac"、270)を実行します。 助けていただければ幸いです。ExecSQLメソッドは、<strong>mDb.execSQL(挿入)</strong>が含まれています。これは、私のコードの問題は、ライン上にあるされて資産

+0

解決済み......... –

+0

解決策を他の人の回答として投稿してください。 –

答えて

0

@Preet Sanghaがi ll post solutionをリクエストしました。 私の問題は、私はまだ私はのonCreateからこの関数を呼び出していた場合、私はデシベル満載ですので、今では私はこの

public void execSqlFromAssets(String path, SQLiteDatabase db) { 
    if(db == null){ 
     db = mDb; 
    } 
    InputStream input; 
    String text; 
    try { 
     input = mCtx.getAssets().open(path + ".txt"); 
     int size = input.available(); 
     byte[] buffer = new byte[size]; 
     input.read(buffer); 
     input.close(); 
     text = new String(buffer); 
     String[] inserts = text.split(";"); 
     for (String insert : inserts) { 
      try { 
       db.execSQL(insert); 
      } catch (Exception e) { 
       String err = (e.getMessage() == null) ? "Cant execute sql" 
         + insert : e.getMessage(); 
       Log.w(TAG, err); 
      } 
     } 

    } catch (IOException e) { 
     Log.w(TAG, "execSqlFromAssets: " + path + " file not found"); 
    } 

} 

に機能を変更し作成した波平のonCreateメソッドと MDBインスタンスでSQLiteOpenHelperインスタンスでこの関数を呼び出したということでした2番目の引数として、アプリケーションの他のコンポーネントから呼び出す場合、私は2番目の引数としてnullを送信します。

+0

もし私がクラス全体をコピーすることができたら –

関連する問題