This commit is contained in:
2024-08-07 09:16:27 -04:00
parent fdfadd5c7e
commit 5f971cf684
5200 changed files with 731717 additions and 0 deletions

81
sql/SQLDB.CPP Normal file
View File

@@ -0,0 +1,81 @@
#include <sql/sqldb.hpp>
#include <sql/sqlerror.hpp>
SQLDb::SQLDb(const String &nameData,const String &userID,const String &password)
: mhEnvironment(0), mhConnection(0), mIsOkay(FALSE), mNameData(nameData), mUserID(userID),
mPassword(password), mDisposition(InvalidDB)
{
if(mPassword.isNull())mPassword=" ";
open();
}
SQLDb::~SQLDb()
{
close();
}
SQLDb &SQLDb::operator=(const SQLDb &someSQLDb)
{
close();
mhEnvironment=someSQLDb.mhEnvironment;
mhConnection=someSQLDb.mhConnection;
mNameData=someSQLDb.mNameData;
mUserID=someSQLDb.mUserID;
mPassword=someSQLDb.mPassword;
mIsOkay=someSQLDb.mIsOkay;
mDisposition=AssumeDB;
return *this;
}
WORD SQLDb::open(const String &nameData,const String &userID,const String &password)
{
close();
mNameData=nameData;
mUserID=userID;
mPassword=password;
return open();
}
WORD SQLDb::open(void)
{
RETCODE sqlReturn;
close();
if(SQL_SUCCESS!=::SQLAllocEnv((HENV*)&mhEnvironment))return FALSE;
if(SQL_SUCCESS!=::SQLAllocConnect(mhEnvironment,(HDBC*)&mhConnection)){::SQLFreeEnv(mhEnvironment);return FALSE;}
sqlReturn=::SQLConnect(mhConnection,(unsigned char*)((char*)mNameData),SQL_NTS,(unsigned char*)((char*)mUserID),SQL_NTS,(unsigned char*)((char*)mPassword),SQL_NTS);
if(SQL_SUCCESS!=sqlReturn&&SQL_SUCCESS_WITH_INFO!=sqlReturn)
{
sqlReturn=::SQLConnect(mhConnection,(unsigned char*)((char*)mNameData),SQL_NTS,(unsigned char*)((char*)mUserID),SQL_NTS,(unsigned char*)((char*)mPassword),SQL_NTS);
if(SQL_SUCCESS!=sqlReturn&&SQL_SUCCESS_WITH_INFO!=sqlReturn)
{
::SQLFreeConnect(&mhConnection);
::SQLFreeEnv(mhEnvironment);
return FALSE;
}
}
mDisposition=CloseDB;
return (mIsOkay=TRUE);
}
WORD SQLDb::close(void)
{
if(!mIsOkay)return FALSE;
if(CloseDB==mDisposition)
{
__try{if(mhConnection){::SQLDisconnect(mhConnection);::SQLFreeConnect(mhConnection);mhConnection=0;}}
__except(0,EXCEPTION_EXECUTE_HANDLER){mIsOkay=FALSE;mDisposition=InvalidDB;return FALSE;}
}
mIsOkay=FALSE;
mDisposition=InvalidDB;
return TRUE;
}
WORD SQLDb::transact(TransactType transactType)
{
RETCODE sqlReturn;
if(!isOkay())return FALSE;
sqlReturn=::SQLTransact(mhEnvironment,mhConnection,(UINT)transactType);
if(SQL_SUCCESS!=sqlReturn||SQL_SUCCESS_WITH_INFO!=sqlReturn)return FALSE;
return TRUE;
}