找回密码
 注册
搜索
查看: 939|回复: 16

探讨一下mush链接数据库的技术。

[复制链接]
门派:明教
发表于 2020-8-28 04:15:29 | 显示全部楼层 |阅读模式
最近想搞任务效率分析,所以尝试跟数据库接入,抄了一些code,目前可创建、链接、关闭、创建表单,写入数据等,code如下——

  1. DatabaseOpen ("db", GetInfo (66) .. "mytestdb.sqlite", 6)

  2. DatabaseExec ("db", [[
  3. DROP TABLE IF EXISTS weapons;
  4. CREATE TABLE weapons(
  5.         weapon_id INTEGER NOT NULL PRIMARY KEY autoincrement,
  6.         name  TEXT NOT NULL,
  7.         damage INT default 10,
  8.         weight REAL
  9.       );
  10.       ]])
  11.       
  12. -- insert a record
  13. DatabasePrepare ("db", "INSERT INTO weapons (name, damage) VALUES ('sword', 42)")  --> returns 0 (SQLITE_OK)
  14. DatabaseStep ("db")   -- returns 101 (SQLITE_DONE)
  15. DatabaseFinalize ("db")  -- returns 0 (SQLITE_OK)
  16.       
  17. DatabaseClose ("db")  -- close it
复制代码


----------
mush根目录下创建mytestdb.sqlite数据库,创建表单weapons,写入数据:
name:sword
damage:42

用的SQLite expert professional打开编辑的,目前问题是不支持中文,就是中文内容写入后显示出来是乱码,另外不知道怎么传变量进去,比如当前系统时间。

有没有大拿指点一下啊!

或者大家一起探讨一下。
门派:明教
 楼主| 发表于 2020-8-28 05:33:48 | 显示全部楼层
好像是用:号,还是@号,做什么占位符传参的,看了半天没搞明白怎么把lua里的参数值传进SQL。

有没有大拿解惑啊?
门派:大轮寺
发表于 2020-8-28 08:33:49 | 显示全部楼层
无法接触的高度。。佛系挂机。。楼主能解答下,mush同时学2个兵器技能,不能来回切换的问题吗?目前在巡城阶段。。
门派:明教
发表于 2020-8-28 18:28:40 | 显示全部楼层
你要把db 改成UTF-16, 然后用UTF-16 text 存中文,试试看看吧。
门派:明教
 楼主| 发表于 2020-8-28 19:06:32 | 显示全部楼层
songshan@tj 发表于 2020-8-28 18:28
你要把db 改成UTF-16, 然后用UTF-16 text 存中文,试试看看吧。

哦,这样啊!怪不得!多谢!

传参数咋整呢?
门派:明教
发表于 2020-8-28 20:25:19 | 显示全部楼层
参数使用 : 或者 $ 都可以的。比如 :name 或者  $name 都可以。
门派:明教
 楼主| 发表于 2020-8-28 20:57:47 | 显示全部楼层
songshan@tj 发表于 2020-8-28 20:25
参数使用 : 或者 $ 都可以的。比如 :name 或者  $name 都可以。

冒号传不过去啊!变量是lua里的,还需要重新赋值?
门派:丐帮
发表于 2020-8-28 21:29:59 | 显示全部楼层
你们都是高高手           
门派:武当派
发表于 2021-1-14 08:41:06 | 显示全部楼层
因为通过mush写入的数据是GB2312编码,而sqlite3默认是UTF8编码
用SQLite expert professional打开之后可以在Tools->Options->General->Encoding中,设置为Default ANSI code page即可正常显示中文字符,前提是你的SQLite expert professional版本必须是3.X,4.0之后SQLite expert professional已经只支持UTF8
门派:铁掌帮
发表于 2021-1-14 10:32:31 | 显示全部楼层
kaillera@tj 发表于 2021-1-14 08:41
因为通过mush写入的数据是GB2312编码,而sqlite3默认是UTF8编码
用SQLite expert professional打开之后可 ...

这是真正的高手,厉害厉害   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-5 23:51 , Processed in 0.066024 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表