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 <[email protected]>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
> [email protected]<android-beginners%[email protected]>
> 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
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en

Reply via email to