Subject | Some help with thread-safe access |
---|---|
Author | ARP |
Post date | 2008-02-01T13:13:53Z |
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
[Non-text portions of this message have been removed]
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
[Non-text portions of this message have been removed]