use json::{array, JsonValue};
use crate::orm::mode::mysql::Mysql;
use crate::orm::mode::mssql::Mssql;
pub enum Mode {
Mysql(Mysql),
Mssql(Mssql),
}
impl Mode {
pub fn select(&mut self, sql: String, table: String, field: Vec<String>) -> JsonValue {
match self {
Mode::Mysql(conn) => {
return conn.fieldsinfo(table).select(sql, field);
}
Mode::Mssql(conn) => {
return conn.fieldsinfo(table).select(sql, field);
}
}
}
pub fn insert(&mut self, sql: String) -> JsonValue {
match self {
Mode::Mysql(conn) => {
return conn.insert(sql);
}
Mode::Mssql(_conn) => {
return array![];
}
}
}
pub fn update(&mut self, sql: String) -> JsonValue {
match self {
Mode::Mysql(conn) => {
return conn.update(sql);
}
Mode::Mssql(_dsn) => {
return array![];
}
}
}
pub fn delete(&mut self, sql: String) -> JsonValue {
match self {
Mode::Mysql(conn) => {
return conn.delete(sql);
}
Mode::Mssql(_dsn) => {
return array![];
}
}
}
pub fn aggregate_query(&mut self, mode: &str, sql: String, fields: Vec<String>) -> JsonValue {
match self {
Mode::Mysql(conn) => {
return conn.aggregate_query(mode, sql, fields);
}
Mode::Mssql(_dsn) => {
return array![];
}
}
}
pub fn transaction(&mut self) -> bool {
match self {
Mode::Mysql(conn) => {
return conn.transaction();
}
Mode::Mssql(_dsn) => {
return false;
}
}
}
pub fn commit(&mut self) -> bool {
match self {
Mode::Mysql(conn) => {
return conn.commit();
}
Mode::Mssql(_dsn) => {
return false;
}
}
}
pub fn rollback(&mut self) -> bool {
match self {
Mode::Mysql(conn) => {
return conn.rollback();
}
Mode::Mssql(_dsn) => {
return false;
}
}
}
pub fn fieldsinfo(&mut self, table: &str) -> JsonValue {
match self {
Mode::Mysql(conn) => {
return conn.fieldsinfo(table.to_string()).fields[table].clone();
}
Mode::Mssql(_dsn) => {
return array![];
}
}
}
pub fn query_table(&mut self, table: &str)->bool{
match self {
Mode::Mysql(conn) => {
return conn.query_table(table);
}
Mode::Mssql(_dsn) => {
return true;
}
}
}
pub fn create_table(&mut self, sql: &str)->bool{
match self {
Mode::Mysql(conn) => {
return conn.create_table(sql);
}
Mode::Mssql(_dsn) => {
return true;
}
}
}
pub fn delete_table(&mut self, sql: &str)->bool{
match self {
Mode::Mysql(conn) => {
return conn.delete_table(sql);
}
Mode::Mssql(_dsn) => {
return true;
}
}
}
pub fn update_table(&mut self, sql: &str)->bool{
match self {
Mode::Mysql(conn) => {
return conn.update_table(sql);
}
Mode::Mssql(_dsn) => {
return true;
}
}
}
}