Solved

loosing database connectivity to a other database powerbuilder 10.5

Posted on 2009-07-02
10
948 Views
Last Modified: 2013-12-26
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
0
Comment
Question by:1030071002
  • 5
  • 4
10 Comments
 
LVL 6

Accepted Solution

by:
IncisiveOne earned 200 total points
Comment Utility
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
 
LVL 14

Assisted Solution

by:shru_0409
shru_0409 earned 50 total points
Comment Utility
why r u not create a ini file? through ini file u can connect two diffent database.
0
 
LVL 14

Assisted Solution

by:sandeep_patel
sandeep_patel earned 250 total points
Comment Utility
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
 
LVL 14

Assisted Solution

by:sandeep_patel
sandeep_patel earned 250 total points
Comment Utility
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
 
LVL 6

Assisted Solution

by:IncisiveOne
IncisiveOne earned 200 total points
Comment Utility
>> 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
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 
LVL 14

Assisted Solution

by:sandeep_patel
sandeep_patel earned 250 total points
Comment Utility
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
 
LVL 14

Assisted Solution

by:sandeep_patel
sandeep_patel earned 250 total points
Comment Utility
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
 
LVL 6

Assisted Solution

by:IncisiveOne
IncisiveOne earned 200 total points
Comment Utility
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
 
LVL 14

Assisted Solution

by:sandeep_patel
sandeep_patel earned 250 total points
Comment Utility
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
 
LVL 6

Assisted Solution

by:IncisiveOne
IncisiveOne earned 200 total points
Comment Utility
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

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

Here is a helpful source code for C++ Builder programmers that allows you to manage and manipulate HTML content from C++ code, while also handling HTML events like onclick, onmouseover, ... Some objects defined and used in this source include: …
Jaspersoft Studio is a plugin for Eclipse that lets you create reports from a datasource.  In this article, we'll go over creating a report from a default template and setting up a datasource that connects to your database.
THe viewer will learn how to use NetBeans IDE 8.0 for Windows to perform CRUD operations on a MySql database.
The viewer will learn how to use and create new code templates in NetBeans IDE 8.0 for Windows.

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now