admin 发表于 2019-5-12 20:28:35

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

如何操作数据库
unit Q7;

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

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

implementation

{
拼接SQL注意,以MSSQL为例,假设SQL语句为: SELECT * FROM Table WHERE Name='xxx'
则在Pascal中字符表示为: S := 'SELECT * FROM Table WHERE Name=''xxx''';
                     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.ExecSQL('HumDB', 'UPDATE Players SET nGold=0 WHERE nGold < 0');   
Gamelib.DBEngine.ExecSQL('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.Next; //数据集向后滚动,如果循环读取数据,此处必须,否则会死循环
      end;   
      end;
      Npc.MessageBox(Player, AList.Text);
    finally
      ADataSet.Free;//数据集需要自己手工释放
      AList.Free; //自己创建的TStrings类对象需要释放
    end;
end;
//直接将一个查询结果中的第一个字段的值填入到一个TStrings
AList := Gamelib.DBEngine.ValueList('HumDB', 'SELECT sChrName FROM Players');//ValueList函数一定会返回一个TStrings实例,并且需要自己释放
Npc.MessageBox(Player, AList.Text);
AList.Free;
end;

end.

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

血落无痕 发表于 2019-5-13 07:03:09

又抢到前排了。哈,不用怀疑,不用惊讶,你也没有看错!

炽火猪头 发表于 2019-5-30 07:50:38

这个帖一般般,还可以哦!

风月雪舞 发表于 2019-5-30 09:24:28

这个帖一般般,还可以哦!

水恋云纱 发表于 2019-6-6 07:02:11

顶顶顶顶顶大大大

蔚蓝夜舞 发表于 2019-6-15 09:19:30

不错,顶一个!

零式的罪 发表于 2019-6-21 08:46:42

呵呵,低调,低调!

敬仰 发表于 2019-6-26 08:14:00

路过 帮顶 嘿嘿

波斯王子 发表于 2019-7-5 07:18:36

不错,顶一个!

众神迷失 发表于 2019-7-7 08:56:40

66666668
页: [1] 2 3 4 5
查看完整版本: 91M2引擎如何操作数据库 77M2引擎数据库修改难吗?