我已经成功开发了一个带有flf和sqflite的简单费用跟踪应用程序。
由于这也是一个会计应用程序,因此我想提供一个基本的数据库结构,然后用户可以根据他的要求对其进行编辑。
这实际上意味着,我与Create数据库操作一起运行了一次Insert操作。
我已经有以下代码来创建数据库。关于在何处包括插入命令以创建虚拟数据库的任何建议?
factory DatabaseProvider() {
if (_databaseProvider == null) {
_databaseProvider = DatabaseProvider._createInstance();
}
return _databaseProvider;
}
Future<Database> get database async {
if (_database == null) {
_database = await initializeDatabase();
}
return _database;
}
Future<Database> initializeDatabase() async {
Directory directory = await getApplicationDocumentsDirectory();
String path = directory.path + 'accounts.db';
var acctsDatabase = await openDatabase(path,
version: 1, onCreate: _createDb, onUpgrade: _onUpgrade);
return acctsDatabase;
}
void _onUpgrade(Database db, int oldVersion, int newVersion) async {
if (oldVersion < newVersion) {
}
}
void _createDb(Database db, int newVersion) async {
await db.execute('CREATE TABLE $accTable('
'$colId INTEGER PRIMARY KEY AUTOINCREMENT, '
'$colCategory TEXT, '
'$colMaincat TEXT, '
'$colSubcat TEXT, '
'$colaccDetail TEXT, '
'$colCreated TEXT, '
'$coltransnumb INTEGER, '
'$colopbalance INTEGER, '
'$colopenbalance INTEGER)');
await db.execute('CREATE TABLE $transTable('
'$colTransId INTEGER PRIMARY KEY AUTOINCREMENT,'
'$colTransSubId TEXT, '
'$colAccId INTEGER, '
'$colTCategory TEXT, '
'$colTMaincat TEXT, '
'$colTSubcat TEXT, '
'$colTDetail TEXT, '
'$colTranAmount INTEGER,'
'$colTranDate TEXT, '
'$colEntryDate TEXT)');
}