TSession and Login Dialog

How do I prevent from the Login Dialog to be displayed when opening a table, connected to a TSession.
I know how to do it with TDatabase, but the TSession creates a new one on the fly, when the table is opened and I can't access that TDatabase prior table opening.
LVL 5
ronit051397Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ZifNabCommented:
Hi ronit,

Use AddPassword property :

Session.AddPassword('ASecret');

If no password exists you'll get a dialog.

Regards, Zif.
0
ronit051397Author Commented:
Now I get the dialog twice. I don't want to see it at all.
This is my code:

Session1.AddPassword('informix');
Session1.open;
Table1.open;

Any other suggestions?
0
ZifNabCommented:
What about coding the OnPassword event?
0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

ronit051397Author Commented:
I tried with no success.
0
ZifNabCommented:
What sort of database tables are you using?
0
ronit051397Author Commented:
INFORMIX. When we use Far database, before connecting, we get login dialog. I don't want this dialog to be displayed. I want to put the password in the code.
0
bijoynCommented:
Ronit,

This is what I tried Out -

I dropped a TDatabase component and set its LoginPrompt property to False. In the Params property, I added the following statements-
username='Name Of The User'
password='Password'.

Then I dropped the TSession Component on the form and set the KeepConnections property to true. In the Session property of the TDatabase component, I assigned the newly dropped TSession component name.

By doing this the dialog does not come up at all.

Does this answer your question ?.

Bijoy.
0
ZifNabCommented:
Yes, for each TSession you need another TDatabase component.
0
bijoynCommented:
Ronit,

U can link multiple databases to one TSession component and specifically open each database by using the Session.Opendatabase('DatabaseName') statement.

Bijoy.
0
ZifNabCommented:
Bijoy, strange I thought that for multi-threaded applications each tsession needs another tdatabase. Well, if not I learned again something. Great.
0
ronit051397Author Commented:
I create TSessions on the fly and open Tables via these sessions.
When a Table is opened via a TSession, Automatically a temporary TDatabase is created by that session and a connection is established.

In my case in each new connection, that bothering dialog apears.
To prevent it I need to set The new TDatabase parameters as Bijoy says, but the problem is that I can't access it before the connection, because it is created internaly by the TSession, so what I do is Create my own, prior the Table connection as follows:

begin
  Session1.Open;
  with TDatabase.Create(nil) do
  begin
    LoginPrompt:=False;
    Params.Values['PASSWORD']:='informix';
    Temporary := True;
    DatabaseName:='RRAServer';
    KeepConnection:=Session1.KeepConnections;
    SessionName := Session1.SessionName;
  end;
  Table1.SessionName:=Session1.SessionName;
  Table1.open;//here where the dialog should apear but now it doesn't
end;

There is no need to free the TDatabase, because it was declared as Temporary and will be freed automatically when that session closes.

Thank you all, I don't know who should get the points ZifNab or Bijoy, what do you think?
0
bijoynCommented:
Hey Ronit,

MAybe ZifNab and Myself can split the points. What say ZifNab ?.

Cheers,

Bijoy
0
ZifNabCommented:
Sure no, problem. But if Bijoy wants them all, he also may get them (maybe easier).

Regards, Zif.
0
ronit051397Author Commented:
I don't know how to split the points, So since Bijoy was closer to the answer, then he/she should get the points.
Sorry ZifNab, I'll have to reject your answer.
Bijoy post some extra tips as an answer and you'll get the points.
0
bijoynCommented:
Zif,

I am not greedy u know. Knowing u people seems better than the points that I receive.

Bijoy.
0
ZifNabCommented:
Hi all,

Same for me Bijoyn, learning and knowing of each other is much more than just earning these points. Have totally no problem with you getting the points, because you really deserve them, besides, heck, why do we need points.

Regards.
c.u. Zif.
0
ronit051397Author Commented:
Hi every body,
There is no need to be the Pope. This is some kind of Game/Competition, which one loses and the other wins, no big deal. With This points you can then ask your own questions. So?

0
ZifNabCommented:
? Ronit. You can't ask questions with points earned for a correct answer. Or am I wrong? Besides, you're right it makes things a little bit funnier to make a sort of competition of it. But for that we don't have to pull each others hear out ;-)
0
bijoynCommented:
Hi Zif & Ronit,

Lets Close This. I personally would like to see this question off the list.

Cheers,

Bijoy
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.