2010年3月16日 星期二

Android and SQLite II

private String mDBPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath()+ "/";
private String mDBFilename = "";
SQLiteDatabase database;
String mDirectory ="myDB";

//設定資料庫路徑
public void setDatabase(String Directory,String DBFile ) {
// TODO Auto-generated constructor stub
mDirectory = Directory;
mDBFilename = DBFile;
}

//將資料庫傳送到記憶卡
public SQLiteDatabase OpenDB(Context con,int RFile)
{
try
{
String DBFile = mDBPath + mDirectory+"/" + mDBFilename;
File dr = new File(mDBPath + mDirectory);
if(!dr.exists()) dr.mkdir();

if(!(new File(DBFile)).exists())
{
InputStream is = con.getResources().openRawResource(RFile);
FileOutputStream fos = new FileOutputStream(DBFile);
byte[] b = new byte[8192];
int count=0;

while((count=is.read(b))>0)
{
fos.write(b,0, count);
}
fos.close();
is.close();
}

database = SQLiteDatabase.openOrCreateDatabase(DBFile, null);
return database;
}
catch(Exception se)
{
throw new RuntimeException(se.getMessage());
}
}
//讀取資料庫內容
// [HASPMap[String,String]] > < 不能用 ][取代
public ArrayList [HASPMap[String,String]] getDBTable(String table, String[] Fields)
{
ArrayList[HASPMap[String,String]] dbdata = new ArrayList[HASPMap[String,String]]();
Cursor c= database.query(table, Fields, null, null, null, null, null);
for(int i=0;i {
c.moveToPosition(i);
[HASPMap[String,String]] d = new [HASPMap[String,String]] ();
for(int j=0; j {
d.put(Fields[j], c.getString(j));
}
dbdata.add(d);
}
return dbdata;
}

沒有留言:

張貼留言