12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import { SQLite } from "@/plugins/tauri-plugin-sqlite";
- import { createSql } from "./createTableSql";
- import { TableName } from "@/types/table";
- import {fileFileds} from './addFiledInTable'
- export const table_init = async (dbName: string, tableName: TableName) => {
- const dbversion = await SQLite.open(dbName);
- //查询是否有该表
- const rows = await dbversion.queryWithArgs<Array<{ count: number }>>(
- `SELECT count(1) count FROM sqlite_master WHERE type='table' and name = '${tableName}' `
- );
- if (!!rows && rows.length > 0 && rows[0].count > 0) {
- } else {
- //创建表
- await dbversion.execute(createSql[tableName]);
- }
- };
- export const table_add_filed = async (tableName: string, dbName: string, addFileFileds: any[]) => {
- const dbversion = await SQLite.open(dbName);
- // 依据版本增加
- const addField = await Promise.allSettled(addFileFileds.map(async (item) => {
- try {
- const is_field = await is_field_in_table(item.key, tableName, dbName);
- if(!is_field) {
- return await dbversion.execute(item.sql.replace('{tableName}', tableName))
- }
- } catch (err) {
- console.log('table_add_filed 出现bug::', err);
- }
- return true
- }))
- console.log(4545, addField);
- }
- export const is_field_in_table = async (fidld: string, tableName: string, dbName: string) => {
- // 不能为空
- if (!fidld || !tableName || !dbName) {
- return Promise.reject('必填数据不能为空');
- }
- try {
- const dbversion = await SQLite.open(dbName);
- const fidldList: any[] = await dbversion.queryWithArgs(`SELECT * FROM sqlite_master WHERE type='table' AND name='${tableName}' AND sql LIKE '%${fidld}%'`);
- console.log(5656, fidldList);
- if(fidldList.length) {
- // 字段存在
- return Promise.resolve(true);
- }
- // 字段不存在
- return Promise.resolve(false);
- } catch (error) {
- return Promise.reject('查询失败');
- }
- }
- export const DB = async (dbName: string) => await SQLite.open(dbName);
|