public static void ReadDatabase( bscr bscrFile, string ConnectionString ) { SQLiteConnection Connection = new SQLiteConnection( ConnectionString ); Connection.Open(); bscrFile.Strings = new List<bscrString>(); using ( SQLiteTransaction Transaction = Connection.BeginTransaction() ) using ( SQLiteCommand Command = new SQLiteCommand( Connection ) ) { Command.CommandText = "SELECT english, PointerRef FROM Text ORDER BY PointerRef"; SQLiteDataReader r = Command.ExecuteReader(); while ( r.Read() ) { String SQLText; try { SQLText = r.GetString( 0 ).Replace( "''", "'" ); } catch ( System.InvalidCastException ) { SQLText = ""; } int PointerRef = r.GetInt32( 1 ); bscrString b = new bscrString(); b.Position = (uint)PointerRef; b.String = SQLText; bscrFile.Strings.Add( b ); } Transaction.Rollback(); } return; }
public static int Export( List<string> args ) { if ( args.Count < 3 ) { Console.WriteLine( "Usage: db bscr.old bscr.new" ); return -1; } string InDatabase = args[0]; string InFile = args[1]; string OutFile = args[2]; bscr b = new bscr( InFile ); ReadDatabase( b, "Data Source=" + InDatabase ); b.CreateFile( OutFile ); return 0; }