Конференция "Базы" » не могу создать AdoConnection в потоке [D7, dBase, FoxPro]
 
  • Очень злой (01.03.11 13:14) [0]
    пытаюсь сделать
    AdoFox:=TAdoConnection.Create(Application)
    в дополнительном потоке.
    Не хочет работать.
    Это вообще можно делать в доп. потоке?
  • sniknik © (01.03.11 13:55) [1]
    > AdoFox:=TAdoConnection.Create(Application)
    Application у тебя тоже в дополнительном потоке?

    > Не хочет работать.
    больно слышать.

    > Это вообще можно делать в доп. потоке?
    да.
  • clickmaker © (01.03.11 14:02) [2]
    > Не хочет работать.

    так и говорит "не хочу!"?
  • Очень злой (01.03.11 14:22) [3]

    >
    > > Не хочет работать.
    > больно слышать.


    > > Не хочет работать.
    >
    > так и говорит "не хочу!"?


    В основном потоке работает, а в дополнительном возникает эксепшен.
    А "не хочет работать" - это просто образное выражение.


    > Application у тебя тоже в дополнительном потоке?


    О... А я ведь просто код, нормально работавший в основном потоке решил перенести в дополнительный, а об этом и не подумал...
    Спасибо.
  • Очень злой (01.03.11 14:29) [4]
    Убрал Application, все равно не хочет работать.
    Все равно срабатывает исключение:

             ...
             sleep(1000); // Задержка чтобы успеть увидеть в чем проблема
             try
                AdoFox:=TAdoConnection.Create(nil);
             except
                 s.XStatus:='Не хочу работать';
                 sleep(1000);
             end;
             ...

  • clickmaker © (01.03.11 14:33) [5]
    except
     on E:Exception
                s.XStatus:=E.Message;
  • Противный (01.03.11 14:39) [6]
    procedure TMyThread.Execute;
    begin
     CoInitialize(nil);
     try
       AdoFox:=TAdoConnection.Create(nil);
       {...}
     finally
       CoUninitialize;
     end;
    end;
  • Противный (01.03.11 14:41) [7]
    Потому что ADO - оно COM.
  • Очень злой (01.03.11 14:41) [8]

    > except
    >  on E:Exception
    >             s.XStatus:=E.Message;


    Не был произведен вызов Coinitialize
  • Очень злой (01.03.11 14:42) [9]
    Спасибо!!!
  • Inovet © (01.03.11 15:04) [10]
    > [8] Очень злой   (01.03.11 14:41)
    > Не был произведен вызов Coinitialize

    А зачем давил исключение бессмысленным сообщение?
  • Очень злой (01.03.11 15:07) [11]

    > А зачем давил исключение бессмысленным сообщение?


    Года 2-3 вообще не занимался Delphi. Позабывал много чего. :(
  • Anatoly Podgoretsky © (02.03.11 09:44) [12]

    > А "не хочет работать" - это просто образное выражение.

    Клиент уходит в несознанку.
 
Конференция "Базы" » не могу создать AdoConnection в потоке [D7, dBase, FoxPro]
Есть новые Нет новых   [134431   +15][b:0][p:0.001]