Reputation: 7630
I'm working against a Informix DB from C# ASP .Net 4.0 via an ODBC connection. This database does change frequently so I read out what DBs that are installed from the sysmaster table.
Depending on choice my user makes I need to setup a ODBC connection to the choosen DB or change the current connection to change from the systmaster DB to the one choosen.
Anyone got any idea how to do this? I suspect it must be possible to setup a temporary ODBC connection. Also in Visual Studio under the properties for my ODBC connection I do have a connection string looking like this:
Dsn=Informix;uid=xxxxx;database=sysmaster;host=10.10.10.10;srvr=testdb1;serv=3000;pro=onsoctcp;cloc=en_US.819;dloc=en_US.819;vmb=0;curb=0;scur=0;icur=0;oac=1;optofc=0;rkc=0;odtyp=0;ddfp=0;dnl=0;rcwc=0
I have looked around for a library to connect directly without the ODBC to informix but with now success.
Thanks, Stefan
Upvotes: 4
Views: 3715
Reputation: 7630
I have worked out a working solution that is quite nice. I did not realise .NET had full support to do this from code behind without actually modifying the ODBC settings.
const string sConnString = "Driver=Informix;uid=user;pwd=password;database=x10stg01_1312;host=10.10.10.10;srvr=testdb1;serv=3000;pro=onsoctcp;cloc=en_US.819;dloc=en_US.819;vmb=0;curb=0;scur=0;icur=0;oac=1;optofc=0;rkc=0;odtyp=0;ddfp=0;dnl=0;rcwc=0";
var oOdbcConnection = new System.Data.Odbc.OdbcConnection(sConnString);
string queryString =
"SELECT * FROM tevoc WHERE ev_oc_id=6599098";
OdbcCommand command = new OdbcCommand(queryString);
command.Connection = oOdbcConnection;
oOdbcConnection.Open();
OdbcDataReader odbcDataReader = command.ExecuteReader();
while (odbcDataReader.Read())
{
CheckDiv.InnerHtml += "Result: " + odbcDataReader.GetString(6) + "<br/>";
}
I guess you have to setup a working ODBC connection one before trying the code behind to just be sure the Driver can be located ok or at least look in the list of available ODBC drivers.
Upvotes: 3
Reputation: 13864
I suppose you could mess with the registry directly, but you could also call odbcconf.exe
, which is a standard Windows utility. Here's an MSDN link
Back when I was looking into how to manipulate ODBC connections, I did something like the following to add a connection:
odbcconf.exe /a {CONFIGSYSDSN "SQL Server" "DSN=?|Description=?|SERVER=?(local)|Trusted_Connection=no|Database=?"}
Of course, you'd replace the ?
with your own parameters.
Upvotes: 2