unit TeamDBProvider; interface //uses // System.Classes, BaseDataProvider, InterfaceDataProvider; // //type // TTeamDBProvider = class(TBaseDataProvider, IAppIconProvider) // protected // function GetTableName: string; override; // function GetCreateTableSQL: string; override; // public // procedure Insert(AAppKey: WideString; var ABuffer); stdcall; // procedure FindIcon(AAppKey: WideString; var ABuffer); stdcall; // end; implementation //uses // FireDAC.Comp.Client, BaseDataModule, System.SysUtils, System.VarUtils, System.Variants, // Data.DB, LoggerImport; // //const // TABLE_NAME: string = 'MapTeamUser'; // CREATE_TABLE: string = 'CREATE TABLE Teams('+ // 'TeamID string(50), ' + // 'UID string(50), ' + // 'Nickname string(50), ' + // 'MemberType integer, ' + // 'CreateTime Double)'; // INSERT_SQL: string = 'INSERT INTO MapTeamUser(AppKey, Icon, Version, CreateTime) VALUES(:appkey, :icon, :version, :createTime)'; // DELETE_SQL: string = 'DELETE FROM MapTeamUser WHERE UID = :uid and TeamID = :teamID'; //// public string TeamID { get; set; } //// public string UID { get; set; } //// public string Nickname { get; set; } //// public DateTime JoinDate { get; set; } //// public MemberType Type { get; set; } // //{ TAppIconProvider } // //procedure TTeamDBProvider.FindIcon(AAppKey: WideString; var ABuffer); stdcall; //var // AQuery: TFDQuery; // ACode: string; //begin // if (AAppKey = '') then // Exit; // ACode := Format('TAppIconProvider.FindIcon(%s)', [AAppKey]); // // try // AQuery := BaseDataModel.GetQuery; // AQuery.Connection.Connected := True; // AQuery.Open(APPICON_FINDICON, [AAppKey]); // AQuery.First; // if not AQuery.Eof then // TBytes(ABuffer) := AQuery.FieldByName('Icon').AsBytes; // except // on E: Exception do // begin // Error(E.Message, ACode); // BaseDataModel.GiveBackQuery(AQuery); // end; // end; // BaseDataModel.GiveBackQuery(AQuery); //end; // //function TTeamDBProvider.GetCreateTableSQL: string; //begin // Result := CREATE_TABLE; //end; // //function TTeamDBProvider.GetTableName: string; //begin // Result := TABLE_NAME; //end; // //procedure TTeamDBProvider.Insert(AAppKey: WideString; var ABuffer); //var // AConnection: TFDCustomConnection; // ALen: Cardinal; //begin // ALen := Length(TBytes(ABuffer)); // if (AAppKey = '') or (ALen = 0) then // Exit; // AConnection := BaseDataModel.GetConnection; // try // AConnection.Connected := True; // AConnection.ExecSQL(APPICON_DELETE, [AAppKey]); // AConnection.ExecSQL(APPICON_INSERT, [AAppKey, TBytes(ABuffer), 0, Now]); // finally // BaseDataModel.GiveBackConnection(AConnection); // end; //end; end.