微信扫一扫 分享朋友圈

已有 1797 人浏览分享

开启左侧

91M2引擎如何操作数据库 77M2引擎数据库修改难吗?

[复制链接]
1797 0

1675403827986739.jpg

如何操作数据库

unit Q7;



inte传奇服务端ce

   uses Classes, SysUtils, DB{使用TDataSet对象必须引用此单元};



procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);



implementation



{

拼接SQL注意,以MSSQL为例,假设SQL语句为: SELECT * FROM Table WHERE Name=\“\“

则在Pascal中字符表示为: S := \“SELECT * FROM Table WHERE Name=\“\“\“\“\“;   

                        S := \“SELECT * FROM Table WHERE Name=\“\“\“ + Player.Name + \“\“\“\“;

                        两个单引号来表示SQL中的一个单引号

}



procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);

var

   ADataSet: TDataSet;

   AList: TStrings;

begin

   //普通执行语句不需要返回

   Gamelib.DBEngine.EecSQL(\“HumDB\“, \“UPDATE Players SET nGold=0 WHERE nGold < 0\“);      

   Gamelib.DBEngine.EecSQL(\“HumDB\“, \“UPDATE Players SET nGold=10000 WHERE sChrName=\“\“\“ + Player.Name+ \“\“\“\“); //这里需要注意引号的使用

   //查询数据并将结果放到数据集,然后从数据集读取数据

   ADataSet := Gamelib.DBEngine.Query(\“HumDB\“, \“SELECT * FROM Players\“);

   if ADataSet <> nil then //必须做此判断,因为当数据连接找不到的时候返回为nil值

   begin

     AList := TStringList.Create;

     try      

       ADataSet.Open; //打开数据集   

       if not ADataSet.IsEmpty then //如果数据集不为空的情况下

       begin

         while not ADataSet.Eof do //如果没到数据集的末尾

         begin

           //S := ADataSet.FieldByName(\“sChrName\“).AsString; //直接将字段赋值到变量S中         

           AList.Add(ADataSet.FieldByName(\“sChrName\“).AsString);  //将字段sChrName的值取出来放到AList中

           ADataSet.Net; //数据集向后滚动,如果循环读取数据,此处必须,否则会死循环

         end;   

       end;

       Npc.MessageBo(Player, AList.Tet);

     finally

       ADataSet.Free;  //数据集需要自己手工释放

       AList.Free; //自己创建的TStrings类对象需要释放

     end;

   end;   

   //直接将一个查询结果中的第一个字段的值填入到一个TStrings

   AList := Gamelib.DBEngine.ValueList(\“HumDB\“, \“SELECT sChrName FROM Players\“);  //ValueList函数一定会返回一个TStrings实例,并且需要自己释放

   Npc.MessageBo(Player, AList.Tet);

   AList.Free;

end;



end.



注意:操作SQLite数据库的时候需要注意对应的数据库文件是否被其他应用打开,如果被其他应用打开则只是只读状态,增删改等操作是无效的。比如正在被使用中的示范版本的角色数据库和账号数据库

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

0

关注

2

粉丝

3048

主题
精彩推荐
热门资讯
网友晒图
图文推荐
  • 微信

  • QQ群

QQ|Archiver|手机版|小黑屋|88M2传奇资源网 ( 鲁ICP备20017785号-2 )|网站地图

GMT+8, 2024-4-20 17:26 , Processed in 0.110460 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.