⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dau.pas

📁 一般的数据库管理系统 uses Classes, SConnectEx, TltConst, ExtCtrls, MMSystem, Types, windows, TltLogic , Sy
💻 PAS
📖 第 1 页 / 共 2 页
字号:
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 + -