anchor.diff:    public
       Name : String;
       VendorType : TmDatabaseVendor;
  +    DatabaseVersion : String;
       ConnectionClass : TmDatabaseConnectionImplClass;
       QueryClass : TmDatabaseQueryImplClass;
       CommandClass : TmDatabaseCommandImplClass;
  
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:     constructor Create;
      destructor Destroy; override;
  
      procedure RegisterImplementations (const aName : String; const aVendorType : TmDatabaseVendor; const aDatabaseVersion : string; const aConnectionImplementationClass : TmDatabaseConnectionImplClass;
        const aQueryImplementationClass : TmDatabaseQueryImplClass; const aCommandImplementationClass : TmDatabaseCommandImplClass);
  
  
      function GetConnectionImpl (const aVendorType: TmDatabaseVendor; const aDatabaseVersion : String) : TmDatabaseConnectionImpl;
      function GetQueryImpl(const AName : String): TmDatabaseQueryImpl;
      function GetCommandImpl(const AName : String) : TmDatabaseCommandImpl;
    end;
  