Ignore:
Timestamp:
Mar 8, 2012, 3:11:10 PM (12 years ago)
Author:
chronos
Message:
  • Modified: Direct acces using Database: TSqlDatabase replaced by TChronisClient interface.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Module/UModuleSystem.pas

    r29 r37  
    2626
    2727uses
    28   USystem, USqlDatabase;
     28  USystem, USqlDatabase, UChronisClient;
    2929
    3030{ TModuleSystem }
     
    8686  GroupId := AddObjectGroup('System');
    8787
    88   ObjectGroupId := AddObject('Object groups', 'ObjectGroup', Database.Database, GroupId);
     88  ObjectGroupId := AddObject('Object groups', 'ObjectGroup', Client.Schema, GroupId);
    8989    AddPropertyNumber(ObjectGroupId, 'Id', 'Id', False);
    9090    AddPropertyString(ObjectGroupId, 'Name', 'Name', True);
    9191    ObjectGroupParentId := AddPropertyRelationOne(ObjectGroupId, 'Parent', 'Parent', True, ObjectGroupId);
    9292
    93   ObjectId := AddObject('Objects', 'Object', Database.Database, GroupId);
     93  ObjectId := AddObject('Objects', 'Object', Client.Schema, GroupId);
    9494    AddPropertyNumber(ObjectId, 'Id', 'Id', False);
    9595    AddPropertyString(ObjectId, 'Name', 'Name', True);
     
    100100    AddPropertyNumber(ObjectId, 'Sequence', 'Sequence', True);
    101101
    102   PropertyTypeId := AddObject('Property types', 'Type', Database.Database, GroupId);
     102  PropertyTypeId := AddObject('Property types', 'Type', Client.Schema, GroupId);
    103103    AddPropertyNumber(PropertyTypeId, 'Id', 'Id', False);
    104104    AddPropertyString(PropertyTypeId, 'Name', 'Name', True);
     
    106106    //AddPropertyNumber(ObjectId, 'Parent', 'Parent');
    107107
    108   CustomTypeId := AddObject('Custom types', 'TypeCustom', Database.Database, GroupId);
     108  CustomTypeId := AddObject('Custom types', 'TypeCustom', Client.Schema, GroupId);
    109109    AddPropertyNumber(CustomTypeId, 'Id', 'Id', False);
    110110    CustomTypeIdType := AddPropertyRelationOne(CustomTypeId, 'Type', 'Type', True, PropertyTypeId);
    111111
    112   ObjectPropertyGroupId := AddObject('Property groups', 'PropertyGroup', Database.Database, GroupId);
     112  ObjectPropertyGroupId := AddObject('Property groups', 'PropertyGroup', Client.Schema, GroupId);
    113113    AddPropertyNumber(ObjectPropertyGroupId, 'Id', 'Id', False);
    114114
    115   ObjectPropertyId := AddObject('Properties', 'Property', Database.Database, GroupId);
     115  ObjectPropertyId := AddObject('Properties', 'Property', Client.Schema, GroupId);
    116116    AddPropertyNumber(ObjectPropertyId, 'Id', 'Id', False);
    117117    AddPropertyString(ObjectPropertyId, 'Name', 'Name', True);
     
    127127    AddPropertyRelationMany(ObjectPropertyGroupId, 'Properties', 'Properties', True, ObjectPropertyIdGroup);
    128128    AddPropertyRelationMany(PropertyTypeId, 'Custom types', 'CustomTypes', True, CustomTypeIdType);
    129   ModuleId := AddObject('Modules', 'Module', Database.Database, GroupId);
     129
     130  ModuleId := AddObject('Modules', 'Module', Client.Schema, GroupId);
    130131    AddPropertyNumber(ModuleId, 'Id', 'Id', False);
    131132    AddPropertyString(ModuleId, 'Name', 'Name', True);
     
    149150procedure TModuleSystem.InitStructure;
    150151var
    151   DbRows: TDbRows;
    152   DbRows2: TDbRows;
    153152  StructureVersion: string;
    154153  Data: TDictionaryStringString;
     
    156155  Tables: TListString;
    157156  I: Integer;
     157  NewProxy: TListProxy;
    158158begin
    159159  with TChronisBase(System) do
    160160  try
    161     DbRows := TDbRows.Create;
    162161    Tables := TListString.Create;
    163162    Data := TDictionaryStringString.Create;
    164163
    165     Database.Query(DbRows, 'SHOW TABLES');
    166     Tables.Count := DbRows.Count;
    167     for I := 0 to DbRows.Count - 1 do
    168       Tables[I] := DbRows[I].Items[0].Value;
    169 
    170     if Tables.IndexOf(InformationTable) = -1 then begin
    171       Database.Query(DbRows, 'CREATE TABLE IF NOT EXISTS `' + InformationTable + '` ( ' +
    172   '`Version` varchar(255) NOT NULL,' +
    173   '`LastUpdateTime` datetime NOT NULL' +
    174 ') ENGINE=InnoDB DEFAULT CHARSET=utf8;');
    175       Database.Query(DbRows, 'INSERT INTO `' + InformationTable + '` (`Version`, `LastUpdateTime`) VALUES ' +
    176   '("0.1", "0000-00-00 00:00:00");');
    177     end;
    178     Database.Select(DbRows, InformationTable);
    179     StructureVersion := DbRows[0].Values['Version'];
    180 
    181     if Tables.IndexOf(ObjectTable) = -1 then begin
     164    NewProxy := TListProxy.Create;
     165    NewProxy.SchemaName := 'information_schema';
     166    NewProxy.ObjectName := 'TABLES';
     167    NewProxy.Condition := 'TABLE_SCHEMA = "' + Client.Schema + '"';
     168    NewProxy.Load;
     169    //Database.Query(DbRows, 'SHOW TABLES');
     170    Tables.Count := NewProxy.Objects.Count;
     171    for I := 0 to NewProxy.Objects.Count - 1 do
     172      Tables[I] := TObjectProxy(NewProxy.Objects[I]).Properties.Values['TABLE'];
     173
     174(*    if Tables.IndexOf(ObjectTable) = -1 then begin
    182175      Database.Query(DbRows, 'CREATE TABLE IF NOT EXISTS `' + ObjectTable + '` ( ' +
    183176        '`Id` int(11) NOT NULL AUTO_INCREMENT,' +
     
    372365        'PRIMARY KEY (`Id`)' +
    373366        ') ENGINE=InnoDB  DEFAULT CHARSET=utf8');
    374     end;
     367    end;   *)
    375368  finally
    376369    Tables.Free;
    377370    Data.Free;
    378     DbRows.Free;
     371    NewProxy.Free;
    379372  end;
    380373end;
Note: See TracChangeset for help on using the changeset viewer.