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

Reply via email to