📄 dau.pas
字号:
begin
CoInitialize(nil);
Randomize;
Result := True;
Connection := TADOConnection.Create(nil);
AccessCritical := TCriticalSection.Create;
Reg := TRegINIFile.Create('');
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.OpenKey(KEY_SOCKETSERVER, True);
CDBPath := Reg.ReadString('', ckDBPath, 'rlt1.mdb');
Reg.Free;
Connection.ConnectionString :=Format(ConnectString,[CDBPath]);
PlayerTable := TADOQuery.Create(Connection);
Query := TADOQuery.Create(Connection);
try
PlayerTable.Connection := Connection;
Connection.Connected := True;
Query.Connection := Connection;
PlayerTable.SQL.Text := PlayerSQL;
PlayerTable.Active := true;
except
Result := False;
end;
end;
function DAUFinit(): boolean;
begin
Connection.Free;
AccessCritical.Free;
CoUninitialize;
// Connection.Free;
end;
function DALoadPlayer(Player : TPlayer): boolean;
begin
Result := false;
if not PlayerTable.Locate('ID', Player.ID, []) then Exit;
with Player do
begin
Player.Password := VarToStr(PlayerTable['password']);
Player.Money := (PlayerTable['chip']);
Player.LastActiveTime := PlayerTable.FieldByName('lastactive').AsDateTime;
Player.UserName := VarToStr(PlayerTable['playname']);
Player.Memo := VarToStr(PlayerTable['memo']);
end;
Result := true;
end;
procedure DASavePlayer(Player : TPlayer);
var
CModified : boolean;
begin
CModified := false;
if not PlayerTable.Locate('ID', Player.ID, []) then Exit;
with Player do
begin
PlayerTable.Edit;
try
CModified := PlayerTable['chip']<> Player.Money;
CModified :=CModified or( VarToStr(PlayerTable['password'])<> Player.Password);
PlayerTable['password'] := Player.Password;
PlayerTable['chip'] := Player.Money;
if CModified then PlayerTable['lastactive'] := now
else PlayerTable['lastactive'] := Player.LastActiveTime ;
PlayerTable['playname'] := Player.UserName;
PlayerTable['memo'] := Player.Memo;
PlayerTable.Post;
except
PlayerTable.Cancel;
try
PlayerTable.Close;
PlayerTable.Open;
except
end;
end;
end;
end;
procedure DADeletePlayer(Player : TPlayer);
begin
if (PlayerTable=nil)or(not PlayerTable.Active) then Exit;
if not PlayerTable.Locate('ID', Player.ID, []) then Exit;
PlayerTable.Delete;
end;
procedure SaveWheel(Round : TRound);
begin
end;
function ReadRoundScord(RoundID : integer; RoundScordArray: array of TRoundScord):boolean;
var
ADOQuery : TADOQuery;
i,j : integer;
begin
for i :=Low(RoundScordArray) to High(RoundScordArray) do
begin
with RoundScordArray[i] do
begin
for j :=0 to 50 do Number[j] := -1;
Count := 0;
end;
end;
ADOQuery.Create(Application);
ADOQuery.Connection := Connection;
ADOQuery.SQL.Text :=format('select * from round where ID = %d order by roundno, wheelno',[RoundID]);
AccessCritical.Enter;
try
ADOQuery.Open;
I := 0; J := 0;
ADOQuery.Next;
while not ADOQuery.Eof do
begin
with RoundScordArray[i] do
begin
Number[j] := ADOQuery['result'];
Count := j;
end;
inc(J);
if J>=50 then
begin
inc(i);
j := 0;
end;
ADOQuery.Next;
end;
finally
AccessCritical.Leave;
ADOQuery.Free;
end;
end;
procedure ReadGameSetting(var TimeSetting : TTimeSetting) ;
begin
end;
procedure SaveGameSetting(TimeSetting : TTimeSetting);
begin
end;
function DAGetNewID(TableName, FieldName : String):integer;
begin
end;
function DAGetNewPlayerID : String;
var
NewPlayerID : integer;
NewPlayerIDString : String;
begin
AccessCritical.Enter;
try
Query.SQL.Text := 'select max(ID) from player';
Query.Open;
NewPlayerIDString := VarToStr(Query.Fields[0].Value);
try
NewPlayerID := StrToInt(NewPlayerIDString)+1;
except
NewPlayerID := 10000;
end;
finally
Result := IntToStr(NewPlayerID);
AccessCritical.Leave;
end;
end;
function DAGetRoundInfoLog(var AArrayofRoundInfo : TArrayofRoundInfo) : integer;
var
LogQuery : TADOQuery;
begin
Result := 0;
LogQuery := TADOQuery.Create(nil);
try
LogQuery.Connection := Connection;
LogQuery.SQL.Text := 'select * from round';
LogQuery.Open;
LogQuery.First;
while (Result<10000) and (not LogQuery.Eof) do
begin
if LogQuery.IsEmpty then Exit;
with AArrayofRoundInfo[Result] do
begin
ID := LogQuery['id'];
Roundno :=LogQuery['Roundno'];
wheelno :=LogQuery['wheelno'];
dvalue := LogQuery['dvalue'];
value := LogQuery['value'];
r := LogQuery['r'];
g := LogQuery['g'];
b := LogQuery['b'];
result :=LogQuery['result'];
resultcolor :=LogQuery['resultcolor'];
datetime :=VarToDateTime(LogQuery['datetime']);
auto := LogQuery['auto'];
end;
LogQuery.Next;
inc(Result);
end;
finally
LogQuery.Free;
end;
end;
function DAGetPlayerBetInfoLog(var AArrayofPlayerBetInfo : TArrayofPlayerBetInfo) : integer;
var
LogQuery : TADOQuery;
begin
Result := 0;
LogQuery := TADOQuery.Create(nil);
try
LogQuery.Connection := Connection;
LogQuery.SQL.Text := 'select * from smartlog order by player, datetime ';
LogQuery.Open;
LogQuery.First;
while (Result<10000) and (not LogQuery.Eof) do
begin
if LogQuery.IsEmpty then Exit;
with AArrayofPlayerBetInfo[Result] do
begin
PlayerID := LogQuery['Player'];
r :=LogQuery['rsmart'];
b :=LogQuery['gsmart'];
g := LogQuery['bsmart'];
Settlement := LogQuery['settlement'];
Datetime := VarToDateTime(LogQuery['datetime']);
RoundNo := LogQuery['roundno'];
WheelNo := LogQuery['wheelno'];
Result :=LogQuery['result'];
ResultColor :=LogQuery['resultcolor'];
RoundMain :=(LogQuery['roundmain']);
PreMoney := LogQuery['premoney'];
end;
LogQuery.Next;
inc(Result);
end;
finally
LogQuery.Free;
end;
end;
function DAClearPlayerBetInfoLog : boolean;
var
LogQuery : TADOQuery;
begin
Result := false;
LogQuery := TADOQuery.Create(nil);
try
LogQuery.Connection := Connection;
LogQuery.SQL.Text := 'delete from smartlog';
LogQuery.ExecSQL;
Result := true;
finally
LogQuery.Free;
end;
end;
function DAClearRoundInfoLog;
var
LogQuery : TADOQuery;
begin
Result := false;
LogQuery := TADOQuery.Create(nil);
try
LogQuery.Connection := Connection;
LogQuery.SQL.Text := 'delete from round';
LogQuery.ExecSQL;
Result := true;
finally
LogQuery.Free;
end;
end;
function DAClearPlayerList : boolean;
var
LogQuery : TADOQuery;
begin
Result := false;
LogQuery := TADOQuery.Create(nil);
PlayerTable.Close;
try
LogQuery.Connection := Connection;
LogQuery.SQL.Text := 'delete from player';
LogQuery.ExecSQL;
Result := true;
finally
LogQuery.Free;
PlayerTable.Open;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -