Problem in when I run insert query
Hi !
I am getting run time exception when I run insert query.
Actually I am calling some database related function from my main CPP file.
The code is as follow:
Code:
//Main.cpp
void ABC::Insert_Database(char* filepath,int UserId,char *EmailService)
{
try
{
int c,i=0;
CDatabase *pdatabase=new CDatabase();
pdatabase->Connect();
char size[300];
FILE* LogFile=NULL;
if(pdatabase)
{
int userid=3;
string mailservice="yahoo";
string emaildata="sasaa";
string parsed="";
string logpath="c:\dad";
string sRecDate = pdatabase->GetDateTime();
string logfileext="html";
string date="03/05/2006 03:34:44";
char query[400];
sprintf(query, "insert into tblEmailService (uID , EmailService, logfileExtension,\
EmailData, RecDate, EmailLogPath, EmailDate) values ( %d, '%s', '%s', '%s',format(#%s#,\"mm/dd/yyyy hh:mm:ss\"), '%s', '%s')",\
userid, mailservice.c_str(),logfileext.c_str(),\
emaildata.c_str (), date.c_str (), logpath.c_str (), emaildate.c_str ());
pdatabase->Insert((CString)query);
}
catch(_com_error &e)
{
std::ofstream f1("C:\\error.txt",ios::app);
f1.write(e.ErrorMessage(),100);
}
//Database function related CPP file
//connection related function
BOOL CDatabaseSingleton::Connect()
{
CoInitialize(NULL);
if(!m_bIsDBConnected)
{
string DBPath =C:\\Database\\abc.mdb";
string Cnn = "Provider=Microsoft.Jet.OLEDB.4.0; DATA SOURCE=";
Cnn+=DBPath;
Cnn+=";USER ID=admin;PASSWORD=;Jet OleDB:Database Password =...;";
try
{
m_pDBConnect.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(m_pDBConnect->Open(CnnStr.c_str(),"","",0)))
{
m_bIsDBConnected = true;
m_pRecordSet.CreateInstance(__uuidof(Recordset));
m_pCommandPtr.CreateInstance(__uuidof(Command));
m_pCommandPtr->ActiveConnection = m_pDBConnect;
}
}
catch (_com_error &e)
{
m_bIsDBConnected = false;
_bstr_t err = e.Description ();
string sError (err);
CActivityLoggerSingleton *pLogger = CActivityLoggerSingleton::CreateActivityLoggerInstance ();
pLogger->WriteLog ("CDatabaseSingleton::Connect ", sError.c_str ());
//string str = HandleError (e);
}
}
return m_bIsDBConnected;
}
///insert function
BOOL CDatabase::Insert(CString sInsert)
{
BOOL bResult = FALSE;
CDatabase *Dis=new CDatabase();
_bstr_t bstrQuery (sInsert.GetBuffer (sInsert.GetLength ()));
try
{
variant_t vNull;
vNull.vt = VT_NULL;
vNull.scode = DISP_E_PARAMNOTFOUND;
m_pCommandPtr->CommandType = adCmdText;
m_pCommandPtr->CommandText = bstrQuery;
_RecordsetPtr pRecSet = m_pCommandPtr->Execute(&vNull, &vNull, adExecuteNoRecords);
bResult = true;
}
catch( _com_error &e )
{
_bstr_t err = e.Description ();
string sError (err);
CActivityLoggerSingleton *pLogger = CActivityLoggerSingleton::CreateActivityLoggerInstance ();
pLogger->WriteLog ("CDatabaseSingleton::Insert ", sError.c_str ());
string sSQL (bstrQuery);
pLogger->WriteLog ("CDatabaseSingleton::Insert ",sSQL.c_str () );
bResult = false;
}
This code successfully insert record but give unhandled exception.
Please tell where I am wrong.
Thanks'