anchor.diff:      constructor Create;
       destructor Destroy; override;
   
  -    procedure RegisterImplementations (const AName : String; const VendorType : TmDatabaseVendor; const ConnectionImplementationClass : TmDatabaseConnectionImplClass;
  -      const QueryImplementationClass : TmDatabaseQueryImplClass; const CommandImplementationClass : TmDatabaseCommandImplClass);
  +    procedure RegisterImplementations (const aName : String; const aVendorType : TmDatabaseVendor; const aDatabaseVersion : string; const aConnectionImplementationClass : TmDatabaseConnectionImplClass;
  +      const aQueryImplementationClass : TmDatabaseQueryImplClass; const aCommandImplementationClass : TmDatabaseCommandImplClass);
   
   
  -    function GetConnectionImpl (const VendorType : TmDatabaseVendor) : TmDatabaseConnectionImpl;
  +    function GetConnectionImpl (const aVendorType: TmDatabaseVendor; const aDatabaseVersion : String) : TmDatabaseConnectionImpl;
       function GetQueryImpl(const AName : String): TmDatabaseQueryImpl;
       function GetCommandImpl(const AName : String) : TmDatabaseCommandImpl;
     end;
  
positive.code:   for i := 0 to FImplementationsList.Count -1 do
    begin
      TempShell := FImplementationsList[i] as TImplementationClassesShell;
      if TempShell.VendorType = VendorType then
      begin
        Result := TempShell.ConnectionClass.Create;
        exit;
  
negative.code:   public
      Name : String;
      VendorType : TmDatabaseVendor;
      DatabaseVersion : String;
      ConnectionClass : TmDatabaseConnectionImplClass;
      QueryClass : TmDatabaseQueryImplClass;
      CommandClass : TmDatabaseCommandImplClass;
  