| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 | 
							- import { FMDatabase } from 'FMDB';
 
- import { createSQLiteContextOptions, executeSqlOptions, selectSqlOptions, executeSqlOptionsResult, selectSqlOptionsResult, CreateSQLiteContext, transactionOptions } from '../interface.uts';
 
- import { createSQLiteContextFailImpl } from '../unierror.uts';
 
- class SQLiteContext extends FMDatabase {
 
-   private databaseName: string | null;
 
-   constructor(name: string) {
 
-     let version = 1;
 
-     const path = UTSiOS.getDataPath() + '/sqlite/' + name;
 
-     super(path);
 
-     this.databaseName = name;
 
-   }
 
-   public executeSql(options: executeSqlOptions) {
 
-     const SqlArray = options.sql.split(';');
 
-     let result: executeSqlOptionsResult = {
 
-       data: [] as boolean[],
 
-       errMsg: 'executeSql:ok',
 
-     }
 
-     try {
 
-       for (let i = 0; i < SqlArray.length; i++) {
 
-         if (SqlArray[i].length > 0) {
 
-           const sql = SqlArray[i].replace(/^\s+/, '');
 
-           try {
 
-             this.executeQuery(sql);
 
-             result.data.push(true);
 
-           } catch {
 
-             result.data.push(false);
 
-           }
 
-         }
 
-       }
 
-       options.success?.(result);
 
-     } catch (e) {
 
-       const data = result.data;
 
-       result = new createSQLiteContextFailImpl(1000002);
 
-       result.data = data;
 
-       options.fail?.(result);
 
-     }
 
-     options.complete?.(result);
 
-     return result;
 
-   }
 
-   public selectSql(options: selectSqlOptions) {
 
-     const SqlArray = options.sql.split(';');
 
-     let result: selectSqlOptionsResult = {
 
-       data: [] as boolean[],
 
-       errMsg: 'selectSql:ok',
 
-     }
 
-     try {
 
-       for (let i = 0; i < SqlArray.length; i++) {
 
-         if (SqlArray[i].length > 0) {
 
-           const sql = SqlArray[i].replace(/^\s+/, '');
 
-           try {
 
-             const cursor = this.executeQueryWithFormat(sql);
 
-             //获取查询结果的字符串并push到result.data中
 
-             while (cursor.next()) {
 
-               const row = cursor.getRow();
 
-               result.data.push(row);
 
-             }
 
-             cursor.close();
 
-           } catch {
 
-             result.data.push("");
 
-           }
 
-         }
 
-       }
 
-       options.success?.(result);
 
-     } catch (e) {
 
-       const data = result.data;
 
-       result = new createSQLiteContextFailImpl(1000003);
 
-       result.data = data;
 
-       options.fail?.(result);
 
-     }
 
-     options.complete?.(result);
 
-     return result;
 
-   }
 
-   public transaction(options: transactionOptions) {
 
-     const transaction = options.operation;
 
-     let result: executeSqlOptionsResult = {
 
-       errMsg: 'transaction:ok',
 
-     }
 
-     try {
 
-       if (transaction == 'begin') {
 
-         //开启事务
 
-         this.beginTransaction();
 
-       } else if (transaction == 'commit') {
 
-         //提交事务
 
-         this.commit();
 
-       } else if (transaction == 'rollback') {
 
-         //回滚事务
 
-         this.rollback();
 
-       }
 
-       options.success?.(result);
 
-     } catch (e) {
 
-       let errCode = 1000008;
 
-       if (transaction == 'begin') {
 
-         errCode = 1000004;
 
-       } else if (transaction == 'commit') {
 
-         errCode = 1000005;
 
-       } else if (transaction == 'rollback') {
 
-         errCode = 1000006;
 
-       }
 
-       result = new createSQLiteContextFailImpl(errCode);
 
-       options.fail?.(result);
 
-     }
 
-     options.complete?.(result);
 
-     return result;
 
-   }
 
- }
 
- export const createSQLiteContext: CreateSQLiteContext = function (options: createSQLiteContextOptions) {
 
-   const name = options.name + '.db';
 
-   return new SQLiteContext(name);
 
- }
 
 
  |