And before you were using TABLE? If that is the case, you defined DB_TABLE but not TABLE. ---------------------------------------------------------------------- There are only 10 types of people in the world... Those who know binary and those who don't. ----------------------------------------------------------------------
On Mon, Jul 19, 2010 at 3:35 PM, Rodney Lendore <rodney.lend...@gmail.com>wrote: > Hi Justin, > > Thanks for the quick reply yes it is in the fetchall() definition. I > hardcoded it find the table I wanted to query "local_network". > > Sorry for any confusion. > > > > > On Mon, Jul 19, 2010 at 9:29 PM, Justin Anderson > <janderson....@gmail.com>wrote: > >> Where is the code for the select statement? Is it the fetchAll() method? >> >> ---------------------------------------------------------------------- >> There are only 10 types of people in the world... >> Those who know binary and those who don't. >> ---------------------------------------------------------------------- >> >> >> On Mon, Jul 19, 2010 at 1:37 PM, Rodney Lendore <rodney.lend...@gmail.com >> > wrote: >> >>> Hi, >>> >>> I have followed the instructions from this site to the letter >>> >>> http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/comment-page-2/ >>> but to no avail. Each time I run the code suggested, the Eclipse debugger >>> keep throwing the following error >>> no such table: TABLE: , while compiling: SELECT _id, network, url FROM >>> TABLE. >>> >>> I created the database using SQLite Browser and ran the emulator's shell >>> and can see that the database was there. >>> >>> Here is the code that I am implementing to manage the database: >>> package com.rodney.IET_Events_Widget; >>> >>> import java.io.FileOutputStream; >>> import java.io.IOException; >>> import java.io.InputStream; >>> import java.io.OutputStream; >>> >>> import android.content.Context; >>> import android.database.Cursor; >>> import android.database.SQLException; >>> import android.database.sqlite.SQLiteDatabase; >>> import android.database.sqlite.SQLiteException; >>> import android.database.sqlite.SQLiteOpenHelper; >>> >>> public class DataBaseHelper extends SQLiteOpenHelper { >>> >>> //The Android's default system path of your application database. >>> private static String DB_PATH = >>> "/data/data/com.rodney.IET_Events_Widget/databases/"; >>> private static final String DB_NAME = "local_network_db"; >>> private static final String DB_TABLE = "local_network"; >>> public static final String KEY_NETWORK = "network"; >>> public static final String KEY_URL = "url"; >>> public static final String KEY_ROWID = "_id"; >>> private SQLiteDatabase myDataBase; >>> private final Context myContext; >>> >>> /** >>> * Constructor >>> * Takes and keeps a reference of the passed context in order to >>> access to the application assets and resources. >>> * @param context >>> */ >>> public DataBaseHelper(Context context) { >>> >>> super(context, DB_NAME, null, 1); >>> this.myContext = context; >>> } >>> >>> /** >>> * Creates a empty database on the system and rewrites it with your >>> own database. >>> * */ >>> public void createDataBase() throws SQLException{ >>> >>> boolean dbExist = checkDataBase(); >>> >>> if(dbExist){ >>> //do nothing - database already exist >>> }else{ >>> >>> //By calling this method and empty database will be created >>> into the default system path >>> //of your application so we are gonna be able to overwrite >>> that database with our database. >>> this.getReadableDatabase(); >>> >>> try { >>> >>> copyDataBase(); >>> >>> } catch (IOException e) { >>> >>> throw new Error("Error copying database"); >>> >>> } >>> } >>> >>> } >>> >>> /** >>> * Check if the database already exist to avoid re-copying the file >>> each time you open the application. >>> * @return true if it exists, false if it doesn't >>> */ >>> private boolean checkDataBase(){ >>> >>> SQLiteDatabase checkDB = null; >>> >>> try{ >>> String myPath = DB_PATH + DB_NAME; >>> checkDB = SQLiteDatabase.openDatabase(myPath, null, >>> SQLiteDatabase.OPEN_READONLY); >>> >>> }catch(SQLiteException e){ >>> >>> //database does't exist yet. >>> >>> } >>> >>> if(checkDB != null){ >>> >>> checkDB.close(); >>> >>> } >>> >>> return checkDB != null ? true : false; >>> } >>> >>> /** >>> * Copies your database from your local assets-folder to the just >>> created empty database in the >>> * system folder, from where it can be accessed and handled. >>> * This is done by transferring bytestream. >>> * */ >>> private void copyDataBase() throws IOException{ >>> >>> //Open your local db as the input stream >>> InputStream myInput = myContext.getAssets().open(DB_NAME); >>> >>> // Path to the just created empty db >>> String outFileName = DB_PATH + DB_NAME; >>> >>> //Open the empty db as the output stream >>> OutputStream myOutput = new FileOutputStream(outFileName); >>> >>> //transfer bytes from the inputfile to the outputfile >>> byte[] buffer = new byte[1024]; >>> int length; >>> while ((length = myInput.read(buffer))>0){ >>> myOutput.write(buffer, 0, length); >>> } >>> >>> //Close the streams >>> myOutput.flush(); >>> myOutput.close(); >>> myInput.close(); >>> >>> } >>> >>> public void openDataBase() throws SQLException{ >>> >>> //Open the database >>> String myPath = DB_PATH + DB_NAME; >>> myDataBase = SQLiteDatabase.openDatabase(myPath, null, >>> SQLiteDatabase.OPEN_READONLY); >>> >>> } >>> >>> @Override >>> public synchronized void close() { >>> >>> if(myDataBase != null) >>> myDataBase.close(); >>> >>> super.close(); >>> >>> } >>> >>> @Override >>> public void onCreate(SQLiteDatabase db) { >>> >>> } >>> >>> @Override >>> public void onUpgrade(SQLiteDatabase db, int oldVersion, int >>> newVersion) { >>> >>> } >>> >>> /** >>> * Return a Cursor over the list of all notes in the database >>> * >>> * @return Cursor over all notes >>> */ >>> >>> public Cursor fetchAll() { >>> return myDataBase.query("local_network", new String[] {KEY_ROWID, >>> KEY_NETWORK,KEY_URL}, null, null, null, null, null); >>> } >>> >>> >>> } >>> >>> And here is the code for the implementation in my ListView Activity: >>> >>> public void onCreate(Bundle savedInstanceState) { >>> super.onCreate(savedInstanceState); >>> setContentView(R.layout.cfg_activity); >>> mDbHelper = new DataBaseHelper(this); >>> mDbHelper.openDataBase(); >>> fillData(); >>> saveButton(); >>> cancelButton(); >>> Intent intent = getIntent(); >>> Bundle extras = intent.getExtras(); >>> if (extras != null) { >>> mAppWidgetId = extras.getInt( >>> AppWidgetManager.EXTRA_APPWIDGET_ID, >>> AppWidgetManager.INVALID_APPWIDGET_ID); >>> } >>> } >>> >>> ......... >>> ........... >>> ................. >>> >>> private void fillData() { >>> // Get all of the rows from the database and create the item >>> list >>> mNetworkCursor = mDbHelper.fetchAll(); >>> startManagingCursor(mNetworkCursor); >>> >>> // Create an array to specify the fields we want to display >>> in the list (only TITLE) >>> String[] from = new String[]{DataBaseHelper.KEY_NETWORK}; >>> >>> // and an array of the fields we want to bind those fields to >>> (in this case just text1) >>> int[] to = new int[]{R.id.text1}; >>> >>> // Now create a simple cursor adapter and set it to display >>> SimpleCursorAdapter iet_networks = new >>> SimpleCursorAdapter(this, R.layout.ln_rows, mNetworkCursor, from, to); >>> setListAdapter(networks); >>> } >>> >>> Any clues or help will be greatly appreciated, let me know if more detail >>> is required. >>> >>> >>> Many thanks in advance >>> >>> Rodney >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Android Beginners" group. >>> >>> NEW! Try asking and tagging your question on Stack Overflow at >>> http://stackoverflow.com/questions/tagged/android >>> >>> To unsubscribe from this group, send email to >>> android-beginners+unsubscr...@googlegroups.com<android-beginners%2bunsubscr...@googlegroups.com> >>> For more options, visit this group at >>> http://groups.google.com/group/android-beginners?hl=en >>> >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Android Beginners" group. >> >> NEW! Try asking and tagging your question on Stack Overflow at >> http://stackoverflow.com/questions/tagged/android >> >> To unsubscribe from this group, send email to >> android-beginners+unsubscr...@googlegroups.com<android-beginners%2bunsubscr...@googlegroups.com> >> For more options, visit this group at >> http://groups.google.com/group/android-beginners?hl=en >> > > -- > You received this message because you are subscribed to the Google > Groups "Android Beginners" group. > > NEW! Try asking and tagging your question on Stack Overflow at > http://stackoverflow.com/questions/tagged/android > > To unsubscribe from this group, send email to > android-beginners+unsubscr...@googlegroups.com<android-beginners%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/group/android-beginners?hl=en > -- You received this message because you are subscribed to the Google Groups "Android Beginners" group. NEW! Try asking and tagging your question on Stack Overflow at http://stackoverflow.com/questions/tagged/android To unsubscribe from this group, send email to android-beginners+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en