procedure TMainServer.IdTCPServer1Execute(AThread: TIdPeerThread);
var
sCommand,User,Password: string;
MS:TMemoryStream;
Connection1:TADOConnection;
begin
with AThread.Connection do begin
sCommand := ReadLn;
if SameText(sCommand, 'QUIT') then Disconnect; // клиент прислал команду
//на отсоединение
if SameText(Copy(sCommand,1,5), 'LINE#') then //клиент хочет получить данные
begin
Delete(sCommand, 1, Pos('#', sCommand)); //Здесь получаем пароль и имя
//пользователя
User:=Copy(sCommand, 0, Pos('#', sCommand) -1);
Delete(sCommand, 1, Pos('#', sCommand));
Password:=Copy(sCommand, 0, Pos('#', sCommand) -1);
Connection1:=TADOConnection.Create(nil);// Вот здесь возникает ошибка
//класса EOleSysError - "Не был произведен вызов CoInitialize"
//Чем ее лечить?
Connection1.ConnectionString:='Provider=SQLOLEDB.1;Integrated'+
'Security=SSPI;Persist Security Info=False;Initial'+
'Catalog=overtime';
if Connection1<>nil then
begin
Connection1.Open(User,Password);
Connection1.Close;
Connection1.Free;
end;
spGetUserKassByServer.Parameters.ParamByName('@UserName').Value:= User;
AThread.Synchronize(spGetUserKassByServer.Open);
if spGetUserKassByServer.RecordCount>0 then
AddLog(DateTimeToStr(Now),LocalName,
spGetUserKassByServer.FieldByName('FIO').AsString+' '+
spGetUserKassByServer.FieldByName('Name').AsString+' ');
AThread.Synchronize(spGetUserKassByServer.Close);
MS:=TMemoryStream.Create;
MS.LoadFromFile('Unit2.pas');
WriteLn(IntToStr(Ms.Size));
WriteStream(MS);
MS.Free;
end;
end;
end;
|