[android-developers] Re: SQLlite issue

2009-09-09 Thread tstanly

thanks for reply,

I foud sqlite that can use .import to import csv file.



On 9月9日, 下午1時39分, Desu Vinod Kumar vinny.s...@gmail.com wrote:
 HI Here for exporting is there go through this and do that by using thias i
 think

 public class DatabaseAssistant
 {
 private static final String EXPORT_FILE_NAME = /sdcard/export.xml;

 private Context _ctx;
 private SQLiteDatabase _db;
 private Exporter _exporter;

 public DatabaseAssistant( Context ctx, SQLiteDatabase db )
 {
 _ctx = ctx;
 _db = db;

 try
 {
 // create a file on the sdcard to export the
 // database contents to
 File myFile = new File( EXPORT_FILE_NAME );
 myFile.createNewFile();

 FileOutputStream fOut =  new FileOutputStream(myFile);
 BufferedOutputStream bos = new
 BufferedOutputStream( fOut );

 _exporter = new Exporter( bos );
 }
 catch (FileNotFoundException e)
 {
 e.printStackTrace();
 }
 catch (IOException e)
 {
 e.printStackTrace();
 }
 }

 public void exportData( )
 {
 log( Exporting Data );

 try
 {
 _exporter.startDbExport( _db.getPath() );

 // get the tables out of the given sqlite database
 String sql = SELECT * FROM sqlite_master;

 Cursor cur = _db.rawQuery( sql, new String[0] );
 Log.d(db, show tables, cur size  + cur.getCount() 
 );
 cur.moveToFirst();

 String tableName;
 while ( cur.getPosition()  cur.getCount() )
 {
 tableName = cur.getString( 
 cur.getColumnIndex( name ) );
 log( table name  + tableName );

 // don't process these two tables since they 
 are used
 // for metadata
 if ( ! tableName.equals( android_metadata ) 
 
 ! tableName.equals( sqlite_sequence 
 ) )
 {
 exportTable( tableName );
 }

 cur.moveToNext();
 }
 _exporter.endDbExport();
 _exporter.close();
 }
 catch (IOException e)
 {
 e.printStackTrace();
 }
 }

 private void exportTable( String tableName ) throws IOException
 {
 _exporter.startTable(tableName);

 // get everything from the table
 String sql = select * from  + tableName;
 Cursor cur = _db.rawQuery( sql, new String[0] );
 int numcols = cur.getColumnCount();

 log( Start exporting table  + tableName );

 //  // logging
 //  for( int idx = 0; idx  numcols; idx++ )
 //  {
 //  log( column  + cur.getColumnName(idx) );
 //  }

 cur.moveToFirst();

 // move through the table, creating rows
 // and adding each column with name and value
 // to the row
 while( cur.getPosition()  cur.getCount() )
 {
 _exporter.startRow();
 String name;
 String val;
 for( int idx = 0; idx  numcols; idx++ )
 {
 name = cur.getColumnName(idx);
 val = cur.getString( idx );
 log( col ' + name + ' -- val ' + val + 
 ' );

 _exporter.addColumn( name, val );
 }

 _exporter.endRow();
 cur.moveToNext();
 }

 cur.close();

 _exporter.endTable();
 }

 private void log( String msg )
 {
 Log.d( DatabaseAssistant, msg );
 }

 class Exporter
 {
 private static final String CLOSING_WITH_TICK = ';
 private static final String START_DB = export-database 
 name=';
 private static final String END_DB = /export-database;
 private static final String START_TABLE = table 

[android-developers] Re: SQLlite issue

2009-09-08 Thread Desu Vinod Kumar
HI Here for exporting is there go through this and do that by using thias i
think


public class DatabaseAssistant
{
private static final String EXPORT_FILE_NAME = /sdcard/export.xml;

private Context _ctx;
private SQLiteDatabase _db;
private Exporter _exporter;

public DatabaseAssistant( Context ctx, SQLiteDatabase db )
{
_ctx = ctx;
_db = db;

try
{
// create a file on the sdcard to export the
// database contents to
File myFile = new File( EXPORT_FILE_NAME );
myFile.createNewFile();

FileOutputStream fOut =  new FileOutputStream(myFile);
BufferedOutputStream bos = new
BufferedOutputStream( fOut );

_exporter = new Exporter( bos );
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}

public void exportData( )
{
log( Exporting Data );

try
{
_exporter.startDbExport( _db.getPath() );

// get the tables out of the given sqlite database
String sql = SELECT * FROM sqlite_master;

Cursor cur = _db.rawQuery( sql, new String[0] );
Log.d(db, show tables, cur size  + cur.getCount() );
cur.moveToFirst();

String tableName;
while ( cur.getPosition()  cur.getCount() )
{
tableName = cur.getString( cur.getColumnIndex( 
name ) );
log( table name  + tableName );

// don't process these two tables since they 
are used
// for metadata
if ( ! tableName.equals( android_metadata ) 
! tableName.equals( sqlite_sequence ) 
)
{
exportTable( tableName );
}

cur.moveToNext();
}
_exporter.endDbExport();
_exporter.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}

private void exportTable( String tableName ) throws IOException
{
_exporter.startTable(tableName);

// get everything from the table
String sql = select * from  + tableName;
Cursor cur = _db.rawQuery( sql, new String[0] );
int numcols = cur.getColumnCount();

log( Start exporting table  + tableName );

//  // logging
//  for( int idx = 0; idx  numcols; idx++ )
//  {
//  log( column  + cur.getColumnName(idx) );
//  }

cur.moveToFirst();

// move through the table, creating rows
// and adding each column with name and value
// to the row
while( cur.getPosition()  cur.getCount() )
{
_exporter.startRow();
String name;
String val;
for( int idx = 0; idx  numcols; idx++ )
{
name = cur.getColumnName(idx);
val = cur.getString( idx );
log( col ' + name + ' -- val ' + val + ' 
);

_exporter.addColumn( name, val );
}

_exporter.endRow();
cur.moveToNext();
}

cur.close();

_exporter.endTable();
}

private void log( String msg )
{
Log.d( DatabaseAssistant, msg );
}

class Exporter
{
private static final String CLOSING_WITH_TICK = ';
private static final String START_DB = export-database 
name=';
private static final String END_DB = /export-database;
private static final String START_TABLE = table name=';
private static final String END_TABLE = /table;
private static final String START_ROW = row;
private static final String END_ROW = /row;
private static final String START_COL = col name=';