perky 发表于 2011-12-22 20:50:22

用惯了ASP,对lua调用odbc的方式连接数据库很不习惯,重写了一下代码

require "luasql.odbc"
G_Env=assert(luasql.odbc())
G_Conn=assert(G_Env:connect("perky","",""))
G_Rd={}
G_Rd.Value={}
G_Rd.Cur={}

function G_Rd.Open(i_conn,i_sql)
        G_Rd.Cur=assert (i_conn:execute(i_sql))
        G_Rd.Value=G_Rd.Cur:fetch({},"a")
end
function G_Rd.Next()
        G_Rd.Value=G_Rd.Cur:fetch(G_Rd.Value,"a")
end

function G_Rd.Close()
        G_Rd.Cur:close()
end

G_Rd.Open(G_Conn,"select * from players")
while G_Rd.Value do
        print(G_Rd.Value["name"].."|"..G_Rd.Value["class"])
        G_Rd.Next()
end

在lua环境下通过,换到mush下第一行需要改成
luapath=string.match(GetInfo(35),"^.*\\")
assert(package.loadlib (luapath.."odbc.dll","luaopen_luasqlodbc")) ()

北大侠客行MUD,中国最好的MUD

trace 发表于 2011-12-22 22:58:19

用lua就用sqlite啊。清晰简单速度还比odbc快不少。

perky 发表于 2011-12-23 09:13:44

回复 2# trace


    不是据说sqlite对中文支持不太好?

fanzeyi 发表于 2011-12-23 12:41:52

回复 3# perky


    全都转到UTF-8呗 有啥问题
页: [1]
查看完整版本: 用惯了ASP,对lua调用odbc的方式连接数据库很不习惯,重写了一下代码