As a suggestion.. Use the Micosoft's ODBD Driver for Oracle... For some
reason??? Oracle's drive doesn't like cercent things.. espeically when it
comes to select data in a long raw (blob) field..
Anyway.. Here how I open a database connection and login an ODBC data
source... And this does work with ever version of oracle that I have tested
with.. 7.3 to 9i
bool Database::OpenDatabase(char *DSN, char *UserID, char *Password)
{
bool Status = false;
try
{
strcpy((char *)this->DSN, DSN);
strcpy((char *)this->UserID, UserID);
strcpy((char *)this->Password, Password);
rc = SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);
if (rc == SQL_SUCCESS OR rc == SQL_SUCCESS_WITH_INFO)
{
rc = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,
(SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);
if (rc == SQL_SUCCESS OR rc == SQL_SUCCESS_WITH_INFO)
{
Status = Login();
if (Status == false)
CloseDatabase();
}
else
{
DBError("OpenDatabase: SQLSetEnvAttr");
CloseDatabase();
}
}
else
DBError("OpenDatabase: SQLAllocHandle: SQL_HANDLE_ENV");
}
catch(...)
{
Status = false;
DBError("OpenDatabase: Exception Caught");
CloseDatabase();
}
return (Status);
}
//************************************************************************
void Database::CloseDatabase(void)
{
try
{
if (hdbc)
{
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
hdbc = NULL;
}
if (henv)
{
SQLFreeHandle(SQL_HANDLE_ENV, henv);
henv = NULL;
}
}
catch(...)
{
DBError("CloseDatabase: Exception Caught");
}
}
//************************************************************************
bool Database::Login(void)
{
bool Status = false;
char DBType[128];
try
{
rc = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
if (rc == SQL_SUCCESS OR rc == SQL_SUCCESS_WITH_INFO)
{
rc = SQLConnect(hdbc,
DSN, (SWORD)strlen((char *)DSN),
UserID, (SWORD)strlen((char *)UserID),
Password, (SWORD)strlen((char *)Password));
if (rc == SQL_SUCCESS OR rc == SQL_SUCCESS_WITH_INFO)
{
LoggedIn = true;
rc = SQLGetInfo(hdbc, SQL_DBMS_NAME, &DBType,
sizeof(DBType), NULL);
if (rc == SQL_SUCCESS OR rc == SQL_SUCCESS_WITH_INFO)
{
if (strcmp(DBType, "Microsoft SQL Server") == 0)
{
DBMSType = dbMS_SQL;
strcpy(SQL_QuilifierPre, "[");
strcpy(SQL_QuilifierPost, "]");
}
else if (strcmp(DBType, "Oracle") == 0)
{
DBMSType = dbOracle;
strcpy(SQL_QuilifierPre, "\"");
strcpy(SQL_QuilifierPost, "\"");
SetOracleDateTimeFormat("MM/DD/YYYY HH:MI:SSAM");
}
else
{
DBMSType = dbUnknown;
strcpy(SQL_QuilifierPre, "");
strcpy(SQL_QuilifierPost, "");
}
Status = true;
}
else
DBError("Login: SQLGetInfo");
}
else
{
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
hdbc = NULL;
DBError("Login: SQLConnect");
}
}
else
DBError("Login: SQLAllocHandle");
}
catch(...)
{
Status = false;
DBError("Login: Exception Caught");
}
return (Status);
}
//************************************************************************
bool Database::Logout(void)
{
bool Status = false;
try
{
if (hdbc)
{
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
hdbc = NULL;
LoggedIn = false;
Status = true;
}
}
catch(...)
{
Status = false;
DBError("Logout: Exception Caught");
}
return (Status);
}
//************************************************************************
----- Original Message -----
From: "Adam Welch" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED] hread.zl6
Sent: Wednesday, September 24, 2003 10:57 AM
Subject: Re: [msvc] Connect to Oracle Database
> That's a good question. I would like to connect through the Microsoft ODBC
> Driver for Oracle. I am developing the application on an XP Machine. The
> Oracle Database is not on my machine, but a different server. I have the
> Oracle Client installed on my machine, but I was told, it was a better
idea
> to use Microsoft's ODBC Driver. I'm not really sure as to which connection
> string to use. Would it help to see the tnsnames.orl file?
>
>
>
>
> ----- Original Message -----
> From: "wfryatt" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED] hread.zl6
> Sent: Wednesday, September 24, 2003 11:35 AM
> Subject: Re: [msvc] Connect to Oracle Database
>
>
> > How are you trying to connect? via ODBC or Oracles OCI interface?
> >
> > ----- Original Message -----
> > From: "Adam Welch" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED] hread.zl6
> > Sent: Wednesday, September 24, 2003 10:22 AM
> > Subject: [msvc] Connect to Oracle Database
> >
> >
> > > Is there anyone out there with good knowledge of VC++ and connecting
to
> an
> > > Oracle database. I am having some problems. If there are, please
respond
> > > ASAP and I will let you know more. Thanks!
> > >
> > > Adam - N.Y.
> > >
> >
>
