Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.09;
Скачать: CL | DM;

Вниз

вопрос про поток.   Найти похожие ветки 

 
Сергей М. ©   (2008-09-29 12:11) [40]


> при чём тут мемо и т.п.


мемо тут действительно ни причем, а вот "и т.п." оч даже причем.

Ну не желаешь отвечать - парься тогда сам)


 
Сергей М. ©   (2008-09-29 12:14) [41]


> почему в дочернем потоке не может осуществить конект


Кто сказал что "не может", кроме тебя ?
Никто и не сказал, это лишь плод твоего нездорового воображения)

До коннекта и дело-то не доходит - AV возникает еше до коннекта !


 
vegarulez ©   (2008-09-29 12:19) [42]


> Vlad Oshin ©   (29.09.08 12:07) [37]


> vegarulez ©   (29.09.08 12:11) [39]
> Vlad Oshin ©   (29.09.08 12:07) [37]не знаю как этим пользоваться.
>


поискал и нашёл про это

Прочёл
http://www.interface.ru/home.asp?artId=3447

сделал вот так в потоке:
uses ... ComObj, ActiveX...
...
procedure Tmsgsend.Execute;
var
s:string;
i,j:integer;
smsg: array[0..4] of string;
myzconection: TZConnection;
myzquery: TZQuery;
myList:TstringList;
begin
  CoInitFlags := COINIT_MULTITHREADED;
try
 myList:=TStringList.Create;
 j:=0;
 myzconection:= TZConnection.Create(nil);
 myzquery:= TZQuery.Create(nil);
 With myzconection do
  try
   Database:="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\a.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False";
   Protocol:="ado";
   Loginprompt:=false;
   Connected:=true;
   except on E: Exception do
      MessageDlg("Error" +#10#13+ E.Message +#10#13+ inttostr(E.HelpContext), mtWarning,[mbOk], 0);
   end;
....


всё заработало.


 
Vlad Oshin ©   (2008-09-29 12:19) [43]

unit SendMail;

interface

uses
Classes, SysUtils, QDialogs, ZAbstractRODataset, ZAbstractDataset, ZDataset, ZConnection;

type
Tmsgsend = class(TThread)
private
  { Private declarations }
protected
  procedure Execute; override;
end;

implementation
uses  unit1;

procedure Tmsgsend.Execute;
var
s:string;
i,j:integer;
smsg: array[0..4] of string;
myzconection: TZConnection;
myzquery: TZQuery;
myList:TstringList;
begin

//FormMain.sendmail:=1;
try
myList:=TStringList.Create;
j:=0;

CoInitializeEx (NIL, COINIT_APARTMENTTHREADED); //так или константы может другие, из по F1

myzconection:= TZConnection.Create(nil);
myzquery:= TZQuery.Create(nil);
With myzconection do
 try


 
sniknik ©   (2008-09-29 12:21) [44]

> ну канеш так работает. тоже самое и содержится в буттоне2.
я просил не так, просто создание, без остального "что содержится в буттоне2."

и объяснил зачем
> проверить, нужна инициализация или внутренний обьект

ты хоть читай что тебе пишут то, пытайся понять...


 
vegarulez ©   (2008-09-29 12:23) [45]

Так что
Vlad Oshin ©   (29.09.08 12:19) [43]
Спасибо!


 
Сергей М. ©   (2008-09-29 12:24) [46]


> всё заработало


Если рассказанные тобой чудеса действительно имели место быть, то Zeos можно смело выкинуть в топку - компонент обязан был возбудить совершенно иное исключение


 
sniknik ©   (2008-09-29 12:29) [47]

> сделал вот так в потоке:
> CoInitFlags := COINIT_MULTITHREADED;
т.е. все таки все упиралось с инициализацию ком-а (coinitialize и иже с ними...) а зеос вместо нормальной ошибки по этому поводу рушился в AV... забавные компоненты.
в печку их, вместе с Марксом и этим как его там Энгельсом! © профессор Преображенский

задумался бы о смене их на нормальные что ли...


 
sniknik ©   (2008-09-29 12:30) [48]

> то Zeos можно смело выкинуть в топку
;), не подсматривал....


 
Сергей М. ©   (2008-09-29 12:39) [49]


> sniknik ©   (29.09.08 12:30) [48]


Охотно верю)


 
vegarulez ©   (2008-09-29 13:34) [50]

Сергей М. ©   (29.09.08 12:24) [46]

Какое? Что типа не может создать конектинон или то что сам не может подгрузить необходимую модель для конектинона?
просто видишь странно... в основном потоке он(компонент) же нормально создал конектион и всё сделал. а как только вышел за пределы основного - уже ничего сделать не смог...


 
Сергей М. ©   (2008-09-29 13:44) [51]


> Какое?


В дословном переводе с буржуйского текст сообщения об исключении должен был быть следующим "Не был произведен вызов CoInitialize".

В тех же условиях ADO выдаст именно такое исключение. И не только ADO, но и многие другие "приличные" компоненты, использующие OLE/COM-механизмы.


 
Сергей М. ©   (2008-09-29 13:48) [52]


> просто видишь странно


Не столько странно, сколько страшно, если делать ставку на этот компонент в большом и серьезном проекте.
Если он такие фортели выкидывает уже при коннекте, то чего ожидать от него при дальнейшей работе ?

Короче - "фтопку", без вариантов)


 
Anatoly Podgoretsky ©   (2008-09-29 14:06) [53]

> Сергей М.  (29.09.2008 13:44:51)  [51]

Нормальный продукт уменьшает количество ошибок кодом except end;


 
sniknik ©   (2008-09-29 14:08) [54]

> в основном потоке он(компонент) же нормально создал конектион и всё сделал. а как только вышел за пределы основного - уже ничего сделать не смог...

sniknik ©   (29.09.08 11:41) [21]
> Да неиспользую я ADO... Zeos юзаю!!!
> народ повнимательнее плз....
зато зеос его использует, а ado нужен coinitialize() на каждый поток.



Страницы: 1 2 вся ветка

Текущий архив: 2008.11.09;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.011 c
2-1222836281
AlekseyB
2008-10-01 08:44
2008.11.09
CheckListBox


2-1222879419
lamer6666
2008-10-01 20:43
2008.11.09
Как на время выполнения SQL запроса Query изменить вид курсора


6-1194968418
artkil
2007-11-13 18:40
2008.11.09
Прокси


2-1222779966
cruiser
2008-09-30 17:06
2008.11.09
Ловим сообщения программы


2-1222849064
Игорь
2008-10-01 12:17
2008.11.09
Сортировка нескольких TStringList