loosing database connectivity to a other database powerbuilder 10.5

I have two database which are ODBC on two different application when I open the first application every thing works find. if I open the second application it picks up the first database. I have to connect the second database and then disconnect the first database. and if I go  back into the first application the second database is connected. how can I make the application remember thier right database.
using powerbuilder 10.5
1030071002Asked:
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.

IncisiveOneCommented:
This is not a Sybase problem, it is an ODBC configuration problem.

BTW, you do not have any databases "on ODBC", the databases are in Sybase, Oracle, etc.  ODBC "Open Database Connectivity" is the software on your PC which gives you connection to the database.  Very slow compared to the native connection to the db (Open Client); ODBC is another, additional layer of software on top of the native connection; additionally it introduces many problems and limitations that Open Client does not have.  PB is a Sybase product, and connects to Sybase directly ... why on Earth are you using ODBC-Open CLient-Sybase instead of Open Client-Sybase ?
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
shru_0409Commented:
why r u not create a ini file? through ini file u can connect two diffent database.
0
sandeep_patelCommented:
I think you have problem while coding not while running the application. Actually this is the problem with sybase it always remembers the last database profile used (database connected) irrespective of application you are using. So when you open PB next time and when pb connects to database for any reason (say while opening a datawindow) it will connect to the last profile.

PB keeps this last profile in registry

HKEY_CURRENT_USER\Software\Sybase\PowerBuilder\10.5\DatabaseProfiles\PowerBuilder.... MRUProfile

Sybase should alteast allow to co-relate dbprofile with workspace. relating with target is again a problem. Let's see when they add this feature

Regards,
Sandeep
0
CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

sandeep_patelCommented:
after investigating further i found one more registry entry not sure where PB is using that but it should be of some help

HKEY_CURRENT_USER\Software\Sybase\PowerBuilder\10.5\Workspace\<workspacename>\Connection\MRUList

Need some more research on this :)
0
IncisiveOneCommented:
>> Actually this is the problem with sybase it always remembers the last database profile used (database connected) irrespective of application you are using.
That is incorrect.  Sybase keeps no such information.  Your ODBC setup keeps that information.  PB may also keep that information.  There is no "problem with Sybase" or Sybase Open Client.  There is a problem with your additional layers of connectivity before you even get to Sybase.
0
sandeep_patelCommented:
If I understood the problem correctly then problem is...

1. say there are two applications ( X and Y) in PB.
2. there are two different database profiles (x_data and y_data) in database painter using ODBC drivers to connect to database.
3. application X is using database profile X_data and Y is using y_data.
4. he first opens application X in PB and to create a datawindow needs to connect x_data
5. Now he opens application Y in PB and disconnects X_data and connects Y_data.
6. now when he goes back to first application X still y_data is connected so again needs to connect x_data and disconnect y_data.

what user wants is whenever any application is opened related database profile should be connected automatically instead of manually switching between two different profiles.

And for this problem above registry entries are being used.

Regards,
Sandeep
0
sandeep_patelCommented:
Also user didn't say that which database trying to connect (sybase or oracle) and it's not necessary that your tool always directly supports native database drivers for all databases and their latest versions. when there are no native database drivers available user will have to use ODBC.

For example.

Company has licensed version of Powerbuilder 6.5 and Oracle 11g. How PB6.5 will have native database interface for Oracle11g. In such scenarios use of native drivers is restricted.
0
IncisiveOneCommented:
Sandeep

I would say that post 24775689 is a reasonable summary up to [6], after that it is conjecture (may be right or wrong, we do not know).  If you are right re PB storing one (or two or five) Registry entries, then sure, that would the point of focus.  And yes, it appears OP would need to formally set up two profiles (instead of the current default to one profile)

OP has stated Sybase; OP has not identified any other RDBMS.  I will stick to the Sybase context only.

Native Drivers.  I am not having a discussion here re ntive drivers in general.  I am answering OP's question.  PB and Sybase ASE both come from Sybase Inc.  Sybase is supplied with Open-Client (what you are calling "Native Driver", although I would not use those terms); that sits on every PC in the organisation, and is the prescribed, very fast, method of connecting to Sybase.

There are Hundreds of pieces of software (BusinessObjects/DBArtisan/SQLProgrammer to name a few; Excel is not one of them) that run on PCS, using Sybase Open Client.  PowerBuilder is one of them.  If used in its ordinary state, one can access many Sybase servers, and any number of databases within each server.  The Open CLient set up is server:port.  MicroShaft Excel does not connect to either MS SQL or Sybase; it connects to databases via ODBC only.

Enter ODBC.  That's where the "drivers" come in.  That sits on top of Sybase Open Client.  You can get ODBC drivers from many orgs, but of course the ODBC driver from Sybase is most secure and supported.  OBDC is very, very slow.  What is relevant here is, ODBC has its own limitations, as in you can "connect" to only one "database" at a time.  But in fact the "database" is actually a server:port:database:login:password.  These are all set up in the ODBC "data source name".  If you set up your datasource correctly AND you have Sybase Open Client on your PC, then ODBC-enabled apps can connect to Sybase; Excel can select directly from Sybase tables.

For PowerBuilder, which comes from the same company, and runs against Open Client directly, it is a bit silly (slow and limited connectivity) to set up ODBC and use that additional layer instead.

As per my first post, the problem is not with Sybase or Open Client; it is with the ODBC set up (which is incomplete for what OP wants to do).  First I have recommended avoiding ODBC altogether: the problem, which is a product of the ODBC limitation disappears; PB will perform faster.

But if OP wishes to use PB to ODBC to OC to Sybase, fine.  In that case, you may be right, the most recently used profile may be in the registry, and that needs to be tweaked.  More probably, two ODBC profiles need to be set up, and the two PB apps need to be changed to select the correct profile when launched.

Cheers
0
sandeep_patelCommented:
Your explanation about open client and ODBC is correct... but I just tried to answer in the direction of the problem.

and that is the reason i don't agree with your first post and comment 'This is not a Sybase problem, it is an ODBC configuration problem'

Regards,
Sandeep

0
IncisiveOneCommented:
We are here to help OP, right, not to get into our separate little stoushes, right ?  They have to read all this and figure out what to do; what works; etc.  We do not want to waste his time by adding confusion, the problem needs clear understanding and then the solution is simple.

In the determination of the problem, then, so that the resolution can be identified, if you agree that my definition of Open Client and ODBC is correct, how can the following be false:
- 'This is not a Sybase problem, it is an ODBC configuration problem" ?

The resolution to the problem:
- either by using PB directly with Open Client (which is a PB configuration change)
- or by setting up a second ODBC Datasource name correctly (which is an ODBC configuration change)
does not "fix" or "change" Sybase or Open Client in any way; they will keep working unchanged ... once you get access to it.  Therefore:
- this is not a Sybase problem
- this is an ODBC configuration problem
- (or if you remove the use of ODBC) this is a PB/Open Client configuration problem.

My post 24775342 remains relevant, the purpose is to gain clarity re the problem (then you can fix it).  Blaming Sybase; "it always", etc, is simply incorrect.  And that has been proved already, thus far.

Cheers
0
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
Editors IDEs

From novice to tech pro — start learning today.