Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 30th, 2012  |  syntax: None  |  size: 1.18 KB  |  hits: 71  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. DBX Error: Driver could not be properly initialized when use OmniThreadLibrary (but ok otherwise)
  2. type
  3.   TdbManager = class(TObject)
  4.   private
  5.     { private declarations }
  6.     FCon: TSQLConnection;
  7.   public
  8.     { public declarations }
  9.     procedure Open(Driver:String; aparams:TStringList);overload;
  10.     procedure Close;
  11.  
  12.     constructor Create;
  13.     destructor Destroy;override;
  14.   end;
  15.  
  16.   constructor TdbManager.Create;
  17. begin
  18.   inherited Create;
  19.   FCon := TSQLConnection.Create(nil);
  20. end;
  21.  
  22. procedure TdbManager.Open(Driver: String; aparams: TStringList);
  23. var
  24.   i: Integer;
  25.   key:string;
  26. begin
  27.   FCon.DriverName := Driver;
  28.  
  29.   for i := 0 to params.Count - 1 do
  30.   begin
  31.     key := params.Names[i];
  32.     FCon.Params.Values[key] := params.Values[key];
  33.   end;
  34.  
  35.   LogMsg('Open DB '+ Driver + ': ' + FHost + '' + FDatabase);
  36.  
  37.   FCon.Open;
  38.   LogMsg('Done.');
  39. end;
  40.        
  41. procedure TBackupPlan.OnScheduleTrigger(Sender: TScheduledEvent);
  42. begin
  43.   Parallel.Async(procedure
  44.   begin
  45.     ExecuteDataTask( Sender.Name );
  46.   end);
  47. end;
  48.  
  49. procedure TBackupPlan.ExecuteDataTask(const Name: String);
  50. var
  51.   db:TdbManager;
  52. begin
  53.   db := nil;
  54.  
  55.   db := TSqlServerManager.Create;
  56.   db.Open(self.Driver, options);
  57.  
  58.   result := db;
  59. end;