Qlik Community

QlikView App Dev

Discussion Board for collaboration related to QlikView App Development.

Announcements
IMPORTANT security patches for GeoAnalytics Server available to download: READ DETAILS
cancel
Showing results for 
Search instead for 
Did you mean: 
drj12345
Contributor III
Contributor III

Multiple Connection Strings in one QVS file

Hi,

I have multiple connection strings that are being used. Can I create QVS file with all the connection strings in that one single file? If yes, how?

1 Solution

Accepted Solutions
syukyo_zhu
Creator III
Creator III

Hi,

Yes you can

in your qvs, your define these connexions

v_DB_SALESFORCE

= 'CUSTOM CONNECT TO     ';

v_DB_Oracle ='                    ';

//Then in your application Qvw

//you can call your conexion like this

$(v_DB_SALESFORCE);

//At the end of your connexion

DISCONNECT;

//then you can an other connexion

$(v_DB_Oracle);

DISCONNECT;

View solution in original post

7 Replies
Anonymous
Not applicable

you can use as many Connection strings as you like

But: you must extract the data from each database you want to connect to before the next Connection string

occurs

connect to ...

select * from tablea

select * from tableb

connect to ...

select *from tablec

select * from tabled

other possibility: if you want only 1 qvs with only Connection strings you may work with variables and use a Sub

Sub connect (DBA)

if (DBA=1, connect to ..)

if (DBA)2, connect to ...)

in your main script you call the Sub and then extract the data

call connect(1)

select * from tablea

does this helps you?

drj12345
Contributor III
Contributor III
Author

If i have only one connection String, I can do it as :

SCRIPT:

$(Must_Include=$(Config)\ConnectionString.qvs) ;

TableA:

LOAD

....

...

And in the ConnectionString.qvs file, define the Connection String.

How will I do it if I have multiple connection strings and I want all those connection strings to be stored in a single .qvs file instead of one qvs file for each connection string?

santiago_respane
Specialist
Specialist

Hi,

you can have as many connection strings as you like, i use something like this:

  • In your QVS:

//First conn

set v.DBConnString1='Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=myUser;Data Source=mySource1;UseSessionFormat = 1;Extended Properties=""';

set v.DBConnString1Pass='RVEePSJMDSDFSDFDdeFRFNJE';

//second conn

set v.DBConnString2='Provider=OraOLEDB.Oracle.1;Persist Security Info=True;User ID=myUser;Data Source=mySource2;UseSessionFormat = 1;Extended Properties=""';

set v.DBConnString2Pass='RVEePRTSDFGSDF3453NJE';

  • And in your app:

//Connect to first db

OLEDB CONNECT TO [$(v.DBConnString1)] (XPassword is $(v.DBConnString1Pass));

//Do some stuff

DISCONNECT;

//Connect to second db

OLEDB CONNECT TO [$(v.DBConnString2)] (XPassword is $(v.DBConnString2Pass));

//Do some stuff;

DISCONNECT;

Let me know if this helps.

Kind regards,

Anonymous
Not applicable

I would use my second choice:

you define your Connection strings in a single qvs by defining a Sub

Sub connect(DBA)

if (DBA=1, connect to Database1)

if (DBA=2, connect to Database2

end Sub

you call the include like you wrote

$(Must_Include=$(Config)\ConnectionString.qvs) ;

But before extracting data you define the datasource using a parameter

CALL CONNECT(1)

TableA:

load

..

does this clarifys your question?

syukyo_zhu
Creator III
Creator III

Hi,

Yes you can

in your qvs, your define these connexions

v_DB_SALESFORCE

= 'CUSTOM CONNECT TO     ';

v_DB_Oracle ='                    ';

//Then in your application Qvw

//you can call your conexion like this

$(v_DB_SALESFORCE);

//At the end of your connexion

DISCONNECT;

//then you can an other connexion

$(v_DB_Oracle);

DISCONNECT;

drj12345
Contributor III
Contributor III
Author

I will try one and if it doesn't work, will switch to the next one. Will let you know guys. Thanks

drj12345
Contributor III
Contributor III
Author

The one provided by xia worked. I had issues with Santiago's solution. Anyway, thanks guys