北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
12
返回列表 发新帖
楼主: ddid

maper看过来……

[复制链接]
发表于 2009-5-20 10:32:02 | 显示全部楼层
没有,我是读文件的,全放内存里
连数据库要驱动,odbc.dll不是每个机器都有的
(lualuaforge.net/上的luasql项目,下载luasql-2.1.1-odbc-win32-lua51.zip,解压到mushclient)
目录结构
mushClient
     world
     lua
     ...
     luasql
          odbc.dll


建立连接
require "luasql.odbc"

env = assert (luasql.odbc())
con = assert (env:connect ("databaseName", "username", "password"))
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-5-20 12:03:04 | 显示全部楼层
谢谢duno啦!

呵呵,其实昨天在研究MUSHClient with SQLite,想参考一下access,没想到把duno的老底掏出来了……

如果是读文件,怎么find字符串?比如,需要通过room_desc中的关键字“络绎不绝”查询到“大驿道”这个room_name

应该没有SELECT好用吧?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-5-20 13:27:15 | 显示全部楼层
读文件到内存,以数组(table)方式查找
我没有建索引,效率稍差
筛选时,先以最低筛选条件遍历整个数组筛选出结果的大致范围
然后在此范围内逐渐加强筛选条件
筛选结果有两个
一个以纯粹性为指导,最强筛选条件(如名称,描述,entry必须都符合)
一个以完备性味知道,相对减弱筛选条件(如只要名称描述符合,甚至只要名称符合)
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-5-20 13:33:51 | 显示全部楼层
sql的东西是看到这个帖子后,回家试验得出的,俺自己没有用数据库
sql要熟悉才好用,本使对access完全不熟悉,昨天试验的时候还想当然的drop table if exists

用sql和自己查数组功能上没有差别,重要的还是熟悉,熟悉的工具成本低,效益高,赚得多,赔得少

[ 本帖最后由 duno 于 2009-5-20 07:42 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-5-20 17:40:49 | 显示全部楼层
误导duno了,sorry

这个问题让duno费这么大劲,惭愧ing
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-5-29 20:29:58 | 显示全部楼层
终于搞明白Access怎么连接了:

下载luasql.zip,解压后连带文件夹COPY到MUSHClient目录下,

脚本里的连接方式如下:

-- load the ODBC dll
-- assert (package.loadlib ("odbc.dll", "luaopen_luasqlodbc")) ()
require "luasql.odbc"

-- create environment object
env = assert (luasql.odbc())

-- connect to data source
con = assert (env:connect ("DSN", "username", "password"))

-- do a SQL select
cur = assert (con:execute (select_str))

-- print all rows
row = cur:fetch ({})
table.foreach (row, print)

-- close everything
cur:close()
con:close()
env:close()

需要注意的是,Access本身进行“LIKE”模糊查询时使用的通配符为“*”,但在脚本里必须使用“%”替换该“*”。

Access连接需要自己设定ODBC的DSN,这点比较麻烦,不利于脚本移植,SQLite倒不用,但SQLite需要自己写函数解决GB2312 to UTF-8的编码问题,更加郁闷。

[ 本帖最后由 ddid 于 2009-5-29 08:57 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-27 04:42 PM , Processed in 0.011528 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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