Hi Justin, Again sorry for the confusion I only used TABLE in the subject head the real error is: no such table: local_network: , while compiling: SELECT _id, network, url FROM local_network Thanks
Rodney On Mon, Jul 19, 2010 at 10:44 PM, Justin Anderson <janderson....@gmail.com>wrote: > 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<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