base_project
This commit is contained in:
+128
@@ -0,0 +1,128 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
import 'package:authsec_flutter_hybrid/LocalStorage/TableQuery.dart';
|
||||
import 'package:path/path.dart';
|
||||
import 'package:path_provider/path_provider.dart';
|
||||
import 'package:sqflite_common_ffi/sqflite_ffi.dart';
|
||||
|
||||
class DatabaseHelper {
|
||||
DatabaseHelper.internal();
|
||||
static final DatabaseHelper instance = DatabaseHelper.internal();
|
||||
TableQuery tablequery = TableQuery();
|
||||
// factory DatabaseHelper() => instance;
|
||||
|
||||
static DatabaseHelper? _instance;
|
||||
static Database? _database;
|
||||
|
||||
DatabaseHelper._privateConstructor();
|
||||
|
||||
factory DatabaseHelper() {
|
||||
_instance ??= DatabaseHelper._privateConstructor();
|
||||
return _instance!;
|
||||
}
|
||||
|
||||
Future<Database> get database async {
|
||||
if (_database != null) {
|
||||
print('get database ... $_database');
|
||||
return _database!;
|
||||
}
|
||||
_database = await initDatabase();
|
||||
return _database!;
|
||||
}
|
||||
|
||||
Future<Database> initDatabase() async {
|
||||
try {
|
||||
Directory directory = await getApplicationDocumentsDirectory();
|
||||
String path = join(directory.path, 'my_database.db');
|
||||
print('database path is $path');
|
||||
|
||||
// final db = await openDatabase('my_database.db');
|
||||
|
||||
var openDb = await openDatabase(
|
||||
path,
|
||||
version: 1,
|
||||
onCreate: (db, version) => _createDatabaseTables(db),
|
||||
onUpgrade: (db, int oldversion, int newversion) async {
|
||||
if (oldversion < newversion) {
|
||||
print("Version Upgrade");
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
// Check if the table exists
|
||||
// var tableResult = await openDb.query('sqlite_master',
|
||||
// columns: ['name'],
|
||||
// where: 'type = ? AND name = ?',
|
||||
// whereArgs: ['table', 'company']);
|
||||
|
||||
// if (tableResult.isEmpty) {
|
||||
// print('Table does not exist');
|
||||
// } else {
|
||||
// print('table data is $tableResult');
|
||||
// print('company Table exists');
|
||||
// }
|
||||
|
||||
print('open db is...... ${openDb.database}');
|
||||
return openDb;
|
||||
} catch (e) {
|
||||
print('Error initializing database: $e');
|
||||
rethrow; // rethrow the error to see the full stack trace
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _createDatabaseTables(Database db) async {
|
||||
tablequery.createOtherTable(db);
|
||||
}
|
||||
|
||||
// create other table
|
||||
|
||||
// Future<void> _createOtherTable(Database db) async {
|
||||
// _createTable(db, 'research_status', 'status_name');
|
||||
// }
|
||||
|
||||
// Future<void> _createTable(
|
||||
// Database db, String tableName, String fieldName) async {
|
||||
// var tableExists = await _isTableExists(db, tableName);
|
||||
// if (!tableExists) {
|
||||
// print('$tableName making.....');
|
||||
// await db.execute(
|
||||
// '''
|
||||
// CREATE TABLE $tableName (
|
||||
// id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
// accountId TEXT,
|
||||
// createdAt TEXT,
|
||||
// createdBy TEXT,
|
||||
// updatedAt TEXT,
|
||||
// updatedBy TEXT,
|
||||
// extn1 TEXT,
|
||||
// extn2 TEXT,
|
||||
// extn3 TEXT,
|
||||
// extn4 TEXT,
|
||||
// extn5 TEXT,
|
||||
// extn6 TEXT,
|
||||
// extn7 TEXT,
|
||||
// extn8 TEXT,
|
||||
// extn9 TEXT,
|
||||
// extn10 TEXT,
|
||||
// extn11 TEXT,
|
||||
// extn12 TEXT,
|
||||
// extn13 TEXT,
|
||||
// extn14 TEXT,
|
||||
// extn15 TEXT,
|
||||
// active INTEGER,
|
||||
// description TEXT,
|
||||
// $fieldName TEXT
|
||||
// )''');
|
||||
// } else {
|
||||
// print('$tableName table exist');
|
||||
// }
|
||||
// }
|
||||
|
||||
// Future<bool> _isTableExists(Database db, String tableName) async {
|
||||
// var result = await db.rawQuery(
|
||||
// 'SELECT * FROM sqlite_master WHERE type = ? AND name = ?',
|
||||
// ['table', tableName],
|
||||
// );
|
||||
// return result.isNotEmpty;
|
||||
// }
|
||||
}
|
||||
Reference in New Issue
Block a user