Subject | RE: [IBO] Some help with thread-safe access |
---|---|
Author | Jason Wharton |
Post date | 2008-02-02T19:38:21Z |
I suggest you put a critical section around it so that only one thread can
access your connection at a time.
You may need something more elaborate if your usage is very heavy.
Jason Wharton
access your connection at a time.
You may need something more elaborate if your usage is very heavy.
Jason Wharton
> -----Original Message-----
> From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com]On
> Behalf Of ARP
> Sent: Friday, February 01, 2008 6:14 AM
> To: IBObjects@yahoogroups.com
> Subject: [IBO] Some help with thread-safe access
>
>
> Hi Guys,
>
> Please a need a help,
>
> I need make a application with TIDTcpServer, TIDTcpClient and
> IBO, but a have a question.
>
> I need do this:
>
> 1- I have to connect to server and pass a user name
> 2- With this user name, using TIB_Cursor to find the full
> name of user in my table
> 3- Return the name to the client program.
>
> I dont know how do this whit IBO because OnConnect event in
> TIDTcpServer is mult-thread. The access to the TIB_Cursor
> must be thread-safe
>
> How do This
>
> Exemple:
>
>
> TMyContext = class(TIdContext)
> public
> username: string;
> end;
>
> OnConnect event:
>
> procedure TForm1.IdTCPServer1Connect(AContext: TIdContext);
> begin
>
> with TMyContext(AContext) do
> begin
> username:= strtoint(Connection.IOHandler.ReadLn);
> if (username<> '') then
> begin
> ////////////////////////
>
> I need make the select here with TIB_Cursor. 'Select
> fullname from mytable where user=username'
>
> but I dont know how make this access being thread-safe
> for each connection...please help me
>
> /////////////////////
> Connection.IOHandler.WriteLn(fullname);
> end
> else
> begin
> Connection.IOHandler.WriteLn('error');
> Connection.Disconnect;
> end;
> end;
> end;
>
> Thx for some help
>
> Alexandre
> Brazil