meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
scripting:world:sqlite [2025/07/30 02:56] bibiboxsscripting:world:sqlite [2025/08/12 00:17] (当前版本) bibiboxs
行 6: 行 6:
 > 数据库操作需要掌握**相关知识**,适合复杂数据存储或有明确目的使用,如果只是希望实现**简单游戏存档**等功能,请考虑使用`Json`功能。 > 数据库操作需要掌握**相关知识**,适合复杂数据存储或有明确目的使用,如果只是希望实现**简单游戏存档**等功能,请考虑使用`Json`功能。
  
-注意:**SQLite**类支持增删查改以及部分扩展操作,若选用**SQLite**作为存储方式建议使用**Browser**相关工具可视化**建库和管理**,而不是100%通引擎API方式+注意:数据库操作语句将直接影响**数据安全**,因此应该确保严格的**SQL指令输入**,以及字符串的安全
  
  
行 54: 行 54:
 ### SQLite.EscapeString() ### SQLite.EscapeString()
  
-> 格式化数据库字符串语句确保目标字符串不包含SQL注入等险。+> 格式化数据库**字符串**降低目标字符串SQL注入等险。
  
 ```javascript ```javascript
行 62: 行 62:
 ```javascript ```javascript
 let sql = "SELECT * FROM Accounts WHERE Name = '" + SQLite.EscapeString("playerName") + "'"; let sql = "SELECT * FROM Accounts WHERE Name = '" + SQLite.EscapeString("playerName") + "'";
 +```
 +
 +
 +
 +### SQLite.IsSafeString()
 +
 +> 检查指定数据库**字符串**,判断是否为安全字符串(不包含非安全字符)。
 +
 +```javascript
 +function SQLite.IsSafeString( text: string ): bool
 ``` ```
  
行 112: 行 122:
  
  
-### SQLiteSource.Execute()+### SQLiteSource.Query()
  
-> 执行一段SQL指令,并可能返回目标结果(如果存在查询\执行结果,将返回`SQLiteSourceData`)。 +> 执行一段SQL指令,并返回可能结果。
-+
-> **==此指令扩展性很高,可进行执行、查询等多种用途,属于万能指令==**+
  
 ```javascript ```javascript
-function SQLiteSource.Execute( sql: string ): SQLiteSourceData+function SQLiteSource.Query( sql: string ): SQLiteQueryResult
 ``` ```
  
-```javascript 
-let gameDB = SQLite.Connect("Database.db"); 
  
-//Only Execute 
-gameDB.Execute("sqlxxx"); 
  
-//QuerySQL +### SQLiteSource.Execute()
-let sqlData = gameDB.Execute("sql")+
-DLog(sqlData.GetData("ColumnName", 0)); +
-```+
  
 +> 执行一段SQL指令,不返回任何结果。
  
  
-### SQLiteSource.ExecuteScalar() 
  
-> 执行一段SQL指令,并可能返回目标结果。 +### SQLiteSource.ExistTable() 
-> + 
-**与`SQLiteSource.Execute`方法不同的,此方法会直接返回(如有)得到的第一个结果(默认:列1行1,可通过参数2+3扩展)**+检查指定表否存在
  
 ```javascript ```javascript
-function SQLiteSource.ExecuteScalarsql: string, columnName: string = "", row: int = -1 ): Any+function SQLiteSource.ExistTabletable: string ): bool
 ``` ```
  
  
  
-### SQLiteSource.GetTableRowCount()+### SQLiteSource.DropTable()
  
-获取指定表的行数+删除指定表(不可逆)
  
 ```javascript ```javascript
-function SQLiteSource.GetTableRowCount( table: string ): int+function SQLiteSource.DropTable( table: string )
 ``` ```
  
  
  
-### SQLiteSource.GetTableColumnCount()+### SQLiteSource.RenameTable()
  
-获取指定表的列数+重命名指定表(需自行做好前提判断)
  
 ```javascript ```javascript
-function SQLiteSource.GetTableColumnCount( table: string )int+function SQLiteSource.RenameTable( table: string, newTablestring )
 ``` ```
  
  
  
-### SQLiteSource.ExistTable()+### SQLiteSource.LastInsertRowId()
  
-检查指定表是否存在+获取上次插入的最新`RowID`
  
 ```javascript ```javascript
-function SQLiteSource.ExistTabletable: string ): bool+function SQLiteSource.LastInsertRowId(): int64
 ``` ```
  
  
  
-### SQLiteSource.DropTable()+## SQLiteQueryResult
  
-删除指定表(不可逆)+### SQLiteQueryResult.Get() 
 + 
 +根据**列\行**获取数值,如果**目标\数值**不存在,默认返回`null`。 
 +
 +> 注意:如果指定**列\行**存在**内数据**,但**数值内容**为空,同样会返回`null`,准确判断应该使用`ExistColumn() | ExistRow()`
  
 ```javascript ```javascript
-function SQLiteSource.DropTabletable: string )+function SQLiteQueryResult.Getcolumn: string, row: int = 0, bigType: bool = false ): any 
 +function SQLiteQueryResult.Get( column: int, row: int = 0, bigType: bool = false ): any
 ``` ```
  
 +- `bigType`是否转换为**大类型数据**(默认高精度格式),通常不需要开启,返回**常规类型**数据即可。
  
  
-### SQLiteSource.RenameTable() 
  
-重命名指定表(需自行做好前提判断)+### SQLiteQueryResult.ColumnCount() 
 + 
 +获取结果列数
  
 ```javascript ```javascript
-function SQLiteSource.RenameTabletablestring, newTable: string )+function SQLiteQueryResult.ColumnCount()int
 ``` ```
  
  
  
-### SQLiteSource.LastInsertRowId()+### SQLiteQueryResult.RowCount()
  
-> 获取上次插入的最新`RowID`+> 获取结果行数
  
 ```javascript ```javascript
-function SQLiteSource.LastInsertRowId(): int64+function SQLiteQueryResult.RowCount(): int
 ``` ```
  
  
  
-### SQLiteSourceData.GetCount()+### SQLiteQueryResult.ExistColumn()
  
-> 获取当前查询结果数量+> 获取**指定列**是否存在
  
 ```javascript ```javascript
-function SQLiteSourceData.GetCount(): int+function SQLiteQueryResult.ExistColumncolumn: string ): bool 
 +function SQLiteQueryResult.ExistColumn( column: int ): bool
 ``` ```
  
  
  
-### SQLiteSourceData.GetData()+### SQLiteQueryResult.ExistRow()
  
-> 获取当前查询的指定索引结果+> 获取**指定行**是否存在
  
 ```javascript ```javascript
-function SQLiteSourceData.GetDatacolumnName: string, index: int = 0 ): Any+function SQLiteQueryResult.ExistRowrow: int ): bool
 ``` ```
 +
 +
 +
 +### SQLiteQueryResult.HasData()
 +
 +> 获取当前结果**是否有效且存在数据**。
 +>
 +> 注意:有时此选项会返回`false`,但`IsValid()`返回`true`,表示查到了对应的**有效**表,但是**没有找到**匹配的**行数据**。
  
 ```javascript ```javascript
-let gameDB = SQLite.Connect("Database.db");+function SQLiteQueryResult.HasData(): bool 
 +```
  
-//QuerySQL + 
-let sqlData = gameDB.Execute("SELECT * FROM Accounts WHERE Name = '" + SQLite.EscapeString("playerName") + "'"); + 
-if(sqlData.GetCount() > 0) DLog(sqlData.GetData("Level", 0));+### SQLiteQueryResult.IsValid() 
 + 
 +获取当前结果**是否有效**(查询流程正常,即使**没有找到**匹配的**行数据**)。 
 +
 +> 注意:如果此值返回`false`,则代表没有找到任何内容,查询没有意义。 
 + 
 +```javascript 
 +function SQLiteQueryResult.IsValid(): bool
 ``` ```
 +
 +