📄 datamodule_sql.pas
字号:
Begin
try
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(format('Select * from D_Castle_ObjUnit where CastleIndex=%d and pos=%d ',[m_sConfigIndex,i]));
ADOQuery.Open;
if ADOQuery.RecordCount>0 then
ADOQuery.Edit
else
ADOQuery.Append;
case i of
0:
Begin
ADOQuery.FieldByName('nx').AsInteger:=m_MainDoor.nX;
ADOQuery.FieldByName('ny').AsInteger:=m_MainDoor.nY ;
ADOQuery.FieldByName('charname').AsString:=m_MainDoor.sName;
ADOQuery.FieldByName('nStatus').AsInteger:=m_MainDoor.nStatus ;
if m_MainDoor.BaseObject<>nil then
ADOQuery.FieldByName('nHp').AsInteger:=m_MainDoor.BaseObject.m_Abil.HP
else
ADOQuery.FieldByName('nHp').AsInteger:=0;
End;
1:
Begin
ADOQuery.FieldByName('nx').AsInteger:=m_LeftWall.nX;
ADOQuery.FieldByName('ny').AsInteger:=m_LeftWall.nY ;
ADOQuery.FieldByName('charname').AsString:=m_LeftWall.sName;
ADOQuery.FieldByName('nStatus').AsInteger:=m_LeftWall.nStatus ;
if m_LeftWall.BaseObject<>nil then
ADOQuery.FieldByName('nHp').AsInteger:=m_LeftWall.BaseObject.m_Abil.HP
else
ADOQuery.FieldByName('nHp').AsInteger:=0;
End;
2:
Begin
ADOQuery.FieldByName('nx').AsInteger:=m_CenterWall.nX;
ADOQuery.FieldByName('ny').AsInteger:=m_CenterWall.nY ;
ADOQuery.FieldByName('charname').AsString:=m_CenterWall.sName;
ADOQuery.FieldByName('nStatus').AsInteger:=m_CenterWall.nStatus ;
if m_CenterWall.BaseObject<>nil then
ADOQuery.FieldByName('nHp').AsInteger:=m_CenterWall.BaseObject.m_Abil.HP
else
ADOQuery.FieldByName('nHp').AsInteger:=0;
End;
3:
Begin
ADOQuery.FieldByName('nx').AsInteger:=m_RightWall.nX;
ADOQuery.FieldByName('ny').AsInteger:=m_RightWall.nY ;
ADOQuery.FieldByName('charname').AsString:=m_RightWall.sName;
ADOQuery.FieldByName('nStatus').AsInteger:=m_RightWall.nStatus ;
if m_RightWall.BaseObject<>nil then
ADOQuery.FieldByName('nHp').AsInteger:=m_RightWall.BaseObject.m_Abil.HP
else
ADOQuery.FieldByName('nHp').AsInteger:=0;
End;
4..15:
Begin
ADOQuery.FieldByName('nx').AsInteger:=m_Archer[i-4].nX;
ADOQuery.FieldByName('ny').AsInteger:=m_Archer[i-4].nY ;
ADOQuery.FieldByName('charname').AsString:=m_Archer[i-4].sName;
ADOQuery.FieldByName('nStatus').AsInteger:=m_Archer[i-4].nStatus ;
if m_Archer[i-4].BaseObject<>nil then
ADOQuery.FieldByName('nHp').AsInteger:=m_Archer[i-4].BaseObject.m_Abil.HP
else
ADOQuery.FieldByName('nHp').AsInteger:=0;
End;
16..19:
Begin
ADOQuery.FieldByName('nx').AsInteger:=m_Guard[i-16].nX;
ADOQuery.FieldByName('ny').AsInteger:=m_Guard[i-16].nY ;
ADOQuery.FieldByName('charname').AsString:=m_Guard[i-16].sName;
ADOQuery.FieldByName('nStatus').AsInteger:=m_Guard[i-16].nStatus ;
if m_Guard[i-16].BaseObject<>nil then
ADOQuery.FieldByName('nHp').AsInteger:=m_Guard[i-16].BaseObject.m_Abil.HP
else
ADOQuery.FieldByName('nHp').AsInteger:=0;
End;
End;
ADOQuery.FieldByName('pos').AsInteger:=i;
ADOQuery.FieldByName('CastleIndex').AsInteger:=m_sConfigIndex;
ADOQuery.Post;
Finally
ADOQuery.Close;
End;
End;
End;
end;
procedure TDataModule_mir200.ClearVar(varName: String; Value: Integer);
begin
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('UPDATE D_Val set VarValue_int=:d1 where VarName=:d2');
ADOQuery.Params.ParamByName('d1').Value:=Value;
ADOQuery.Params.ParamByName('d2').Value:=VarName;
ADOQuery.Execute;
end;
procedure TDataModule_mir200.LoadAttackSabukWall(var UserCastle: TUserCastle);
var
i : Integer;
sData : string;
s20, sGuildName : string;
Guild : TGUild;
AttackerInfo : pTAttackerInfo;
D : TDateTime;
begin
with UserCastle do
Begin
try
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('Select * from D_Castle_War where CastleIndex='+Inttostr(m_sConfigIndex));
ADOQuery.Open;
for i:=0 to ADOQuery.RecordCount-1 do
Begin
D:=ADOQuery.FieldByName('WarTime').AsDateTime;
sGuildName:=ADOQuery.FieldByName('GuildName').AsString;
if Date() <= D then
Begin
Guild := g_GuildManager[0].FindGuild(sGuildName);
if Guild <> nil then
begin
New(AttackerInfo);
try
AttackerInfo.AttackDate := D;
except
AttackerInfo.AttackDate := Now();
end;
AttackerInfo.sGuildName := sGuildName;
AttackerInfo.Guild := Guild;
m_AttackWarList.Add(AttackerInfo);
end;
End;
ADOQuery.Next;
End;
finally
ADOQuery.Close;
End;
End;
end;
procedure TDataModule_mir200.LoadCastleList(var CastleManager:TCastleManager);
var
Index : Integer;
Castle : TUserCastle;
sCastleDir : string;
i : Integer;
begin
try
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('Select * from D_Castle ');
ADOQuery.Open;
for i:=0 to ADOQuery.RecordCount-1 do
Begin
Index:=ADOQuery.FieldByName('CastleIndex').AsInteger;
Castle := TUserCastle.Create(Index);
CastleManager.m_CastleList.Add(Castle);
ADOQuery.Next;
End;
MainOutMessage('已读取 ' + IntToStr(ADOQuery.RecordCount) + '个城堡信息...');
finally
ADOQuery.Close;
End;
end;
procedure TDataModule_mir200.SaveAttackSabukWall(
var UserCastle: TUserCastle);
var
i : Integer;
SqlStr : String;
AttackerInfo : pTAttackerInfo;
begin
with UserCastle do
begin
try
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('Delete from D_Castle_War where CastleIndex='+Inttostr(m_sConfigIndex));
ADOQuery.Execute;
finally
ADOQuery.Close;
End;
ADOQuery.SQL.Add('Select * from D_Castle_War');
ADOQuery.Active:=True;
for i := 0 to m_AttackWarList.Count - 1 do
begin
AttackerInfo := m_AttackWarList.Items[i];
ADOQuery.Append;
ADOQuery.FieldByName('CastleIndex').AsString:=Inttostr(m_sConfigIndex);
ADOQuery.FieldByName('GuildName').AsString:=AttackerInfo.sGuildName;
ADOQuery.FieldByName('WarTime').AsDateTime:=AttackerInfo.AttackDate;
ADOQuery.Post;
end;
End;
end;
initialization
Coinitialize(nil);
finalization
CoUninitialize;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -