Ignore:
Timestamp:
Jun 13, 2011, 8:00:17 AM (13 years ago)
Author:
george
Message:
  • Modified: Unit UCommon in CoolWeb package used form package Common as dependency.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Network/CoolWeb/Persistence/USqlDatabase.pas

    r238 r250  
    2020
    2121  TSetClientCapabilities = set of TClientCapabilities;
     22
     23  TLogEvent = procedure(Sender: TObject; Text: string) of object;
    2224
    2325  TDbRows = class(TListObject)
     
    4143    FDatabase: string;
    4244    FUserName: string;
     45    FOnLogQuery: TLogEvent;
    4346    procedure mySQLClient1ConnectError(Sender: TObject; Msg: String);
    4447    function GetConnected: Boolean;
     
    5659    procedure Query(DbRows: TDbRows; Data: string);
    5760    procedure Select(DbRows: TDbRows; ATable: string; Filter: string = '*'; Condition: string = '1');
    58     procedure Delete(ATable: string; Condition: string = '1');
    59     procedure Insert(ATable: string; Data: TDictionaryStringString);
    60     procedure Update(ATable: string; Data: TDictionaryStringString; Condition: string = '1');
    61     procedure Replace(ATable: string; Data: TDictionaryStringString);
     61    procedure Delete(ATable: string; Condition: string = '1';
     62      Schema: string = '');
     63    procedure Insert(ATable: string; Data: TDictionaryStringString;
     64      Schema: string = '');
     65    procedure Update(ATable: string; Data: TDictionaryStringString;
     66      Condition: string = '1'; Schema: string = '');
     67    procedure Replace(ATable: string; Data: TDictionaryStringString;
     68      Schema: string = '');
    6269    procedure Connect;
    6370    procedure Disconnect;
     
    7582    property Password: string read FPassword write FPassword;
    7683    property Encoding: string read FEncoding write FEncoding;
     84    property OnLogQuery: TLogEvent read FOnLogQuery write FOnLogQuery;
    7785  end;
    7886
     
    193201end;
    194202
    195 procedure TSqlDatabase.Insert(ATable: string; Data: TDictionaryStringString);
     203procedure TSqlDatabase.Insert(ATable: string; Data: TDictionaryStringString;
     204  Schema: string);
    196205var
    197206  DbNames: string;
     
    215224  try
    216225    DbResult := TDbRows.Create;
    217     Query(DbResult, 'INSERT INTO `' + ATable + '` (' + DbNames + ') VALUES (' + DbValues + ')');
     226    if Schema <> '' then Schema := '`' + Schema + '`.';
     227    Query(DbResult, 'INSERT INTO ' + Schema + '`' + ATable + '` (' + DbNames + ') VALUES (' + DbValues + ')');
    218228  finally
    219229    DbResult.Free;
     
    228238begin
    229239  DbRows.Clear;
    230   //DebugLog('SqlDatabase query: '+Data);
     240  if Assigned(FOnLogQuery) then FOnLogQuery(Self, Data);
    231241  LastQuery := Data;
    232242  mysql_query(FSession, PChar(Data));
     
    252262end;
    253263
    254 procedure TSqlDatabase.Replace(ATable: string; Data: TDictionaryStringString);
     264procedure TSqlDatabase.Replace(ATable: string; Data: TDictionaryStringString;
     265  Schema: string = '');
    255266var
    256267  DbNames: string;
     
    274285  try
    275286    DbResult := TDbRows.Create;
    276     Query(DbResult, 'REPLACE INTO `' + ATable + '` (' + DbNames + ') VALUES (' + DbValues + ')');
     287    if Schema <> '' then Schema := '`' + Schema + '`.';
     288    Query(DbResult, 'REPLACE INTO ' + Schema + '`' + ATable + '` (' + DbNames + ') VALUES (' + DbValues + ')');
    277289  finally
    278290    DbResult.Free;
     
    286298end;
    287299
    288 procedure TSqlDatabase.Update(ATable: string; Data: TDictionaryStringString; Condition: string = '1');
     300procedure TSqlDatabase.Update(ATable: string; Data: TDictionaryStringString;
     301  Condition: string = '1'; Schema: string = '');
    289302var
    290303  DbValues: string;
     
    304317  try
    305318    DbResult := TDbRows.Create;
    306     Query(DbResult, 'UPDATE `' + ATable + '` SET (' + DbValues + ') WHERE ' + Condition);
     319    if Schema <> '' then Schema := '`' + Schema + '`.';
     320    Query(DbResult, 'UPDATE ' + Schema + '`' + ATable + '` SET (' + DbValues + ') WHERE ' + Condition);
    307321  finally
    308322    DbResult.Free;
     
    315329end;
    316330
    317 procedure TSqlDatabase.Delete(ATable: string; Condition: string = '1');
     331procedure TSqlDatabase.Delete(ATable: string; Condition: string = '1';
     332  Schema: string = '');
    318333var
    319334  DbResult: TDbRows;
     
    322337  try
    323338    DbResult := TDbRows.Create;
    324     Query(DbResult, 'DELETE FROM `' + ATable + '` WHERE ' + Condition);
     339    if Schema <> '' then Schema := '`' + Schema + '`.';
     340    Query(DbResult, 'DELETE FROM ' + Schema + '`' + ATable + '` WHERE ' + Condition);
    325341  finally
    326342    DbResult.Free;
Note: See TracChangeset for help on using the changeset viewer.