hi!
Now I use SQL server7 and microsoft IIS to manage
database at web.
But when I read data(long length Text(SQL data format) - over about 400 bytes) at web, I meet database error. I use this data with CString at
isapi DLL that is my project file.
follow my programming.
==================================================
void CWhiteServer::PutTotal(CHttpServerContext* pCtxt, LPCTSTR id, int nClientTotalNum, int nClientMaxNum)
{
CString strFilter, strQuery, strOutput, strError;
BOOL bDownload;
CString strConnectString;
strConnectString.LoadString(IDS_CONNECT);
CString strWedDate;
CString strUpdateFormat;
try
{
CDatabase db;
if (!db.OpenEx(strConnectString,
CDatabase::openReadOnly | CDatabase::noOdbcDialog))
{
strError.LoadString(IDS_ERR_FAILED_ODBC_OPEN);
*pCtxt << strError;
}
else
{
CRecordset rsSource(&db);
strQuery.Format("SELECT COUNT(¹øÈ£), MAX(¹øÈ£) FROM addBook WHERE id = \'%s\'", id);
if (rsSource.Open(CRecordset::snapshot, strQuery))
{
if (rsSource.IsBOF() || rsSource.IsEOF()){
strError.LoadString(IDS_ERR_TABLE_BOF_EOF);
*pCtxt << strError;
return;
}
else
{
int nServerTotalNum, nServerMaxNum;
CDBVariant varValue;
rsSource.GetFieldValue((short)0, varValue );
nServerTotalNum = varValue.m_lVal;
rsSource.GetFieldValue((short)1, varValue);
nServerMaxNum = varValue.m_lVal;
if(nServerTotalNum == 0) {
rsSource.Close();
db.Close();
*pCtxt << "ServerNothing";
return;
}
if(nClientTotalNum < nServerTotalNum)
bDownload = TRUE;
else
bDownload = FALSE;
}
rsSource.Close();
}
else{
strError.LoadString(IDS_ERR_FAILED_RECORD_OPEN);
*pCtxt << strError;
return;
}
//Check bDownload
if(bDownload){
int nTotal;
CAddBook AddBookQuery(&db);//, bUserList);
strFilter.Format("¹øÈ£ >= %d AND id='%s'", nClientMaxNum, id);
AddBookQuery.m_strFilter = strFilter;
if (AddBookQuery.Open())
{
if (AddBookQuery.IsBOF()){
strError.LoadString(IDS_ERR_TABLE_BOF);
*pCtxt << strError;
}
else
{
while (!AddBookQuery.IsEOF())
{
nTotal++;
int bDel = 0, bSecret = 0, bBirthMoon = 0, bSex = 0;
int bDMHome = 0, bDMOffice = 0;
if(AddBookQuery.m_bDel) bDel = 1;
if(AddBookQuery.m_bSecret) bSecret = 1;
if(AddBookQuery.m_bBirthMoon) bBirthMoon = 1;
if(AddBookQuery.m_bSex) bSex = 1;
if(AddBookQuery.m_bDMHome) bDMHome = 1;
if(AddBookQuery.m_bDMOffice) bDMOffice = 1;
strWedDate = (LPCTSTR)AddBookQuery.m_weddingDate.Format("%Y/%m/%d/%H/%M/%S");
if(strWedDate == "1970/01/01/09/00/00")
strWedDate = "";
// test ÇÊ¿ä
if(AddBookQuery.m_nViewNameHow == 32484)
AddBookQuery.m_nViewNameHow = 0;
if(AddBookQuery.m_nViewTelCon == 32484)
AddBookQuery.m_nViewTelCon = 0;
if(AddBookQuery.m_oNum == 1246576928)
AddBookQuery.m_oNum = 0;
if(AddBookQuery.m_kuNum == 1246576928)
AddBookQuery.m_kuNum = 0;
// AddBookQuery.m_Memo = AddBookQuery.m_Memo.Left(20);
//ISAPITRACE1( "¸Þ¸ð %s\n",AddBookQuery.m_Memo);
//MB_SERVICE_NOTIFICATION
//AfxMessageBox("test",MB_TOPMOST);
strUpdateFormat = "INSERT%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^";
strUpdateFormat += "%s`^%d`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%d`^%s`^%s`^%d`^";
strUpdateFormat += "%s`^%s`^%d`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%s`^%d`^%d`^%d`^%d`^%s`^";
strUpdateFormat += "%d`^%d`^%d`^";
strOutput.Format(strUpdateFormat, (LPCTSTR)AddBookQuery.m_Name,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_Sir,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_National,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_Company,//\n%s`^%s`^
(LPCTSTR)AddBookQuery.m_Depart,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_oPosition,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_oTel3,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_oTel,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_oTel2,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_oFax,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_oHomePage,//%s`^
(LPCTSTR)AddBookQuery.m_oAdd1,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_oAdd2,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_oPostal,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_oNational,//%s`^%d`^
bDMOffice, //%d`^%s`^
(LPCTSTR)AddBookQuery.m_oMap,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_Pager,//%s`^
(LPCTSTR)AddBookQuery.m_MobilePhone,//%s`^
(LPCTSTR)AddBookQuery.m_hTel,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_hFax,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_eMail,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_eMail2,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_HomePage,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_hAdd1,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_hAdd2,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_hPostal,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_hNational,//\n%s`^%s`^
bDMHome,//\n%d`^%s`^
(LPCTSTR)AddBookQuery.m_hMap,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_Birth,//%s`^%s`^
bBirthMoon,//%d`^%d`^
strWedDate,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_wedName,//%s`^%s`^
bSex, //%d`^%d`^
(LPCTSTR)AddBookQuery.m_Arrange,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_undefined1,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_undefined2,//%s`^%d`^
(LPCTSTR)AddBookQuery.m_undefined3,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_undefined4, //%s`^%s`^
(LPCTSTR)AddBookQuery.m_regDate.Format("%Y/%m/%d/%H/%M/%S"),//%s`^%s`^
(LPCTSTR)AddBookQuery.m_updateDate.Format("%Y/%m/%d/%H/%M/%S"),//%s`^%s`^
(LPCTSTR)AddBookQuery.m_Memo,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_ViewName,//%s`^%s`^
(LPCTSTR)AddBookQuery.m_ViewTel,//\n%s`^%s`^
AddBookQuery.m_nViewNameHow,//%d`^%s`^
AddBookQuery.m_nViewTelCon,//%d`^%s`^
bDel, //%d`^%s`^
bSecret,//%d`^%d`^
(LPCTSTR)AddBookQuery.m_telTime.Format("%Y/%m/%d/%H/%M/%S"),//%s`^%d`^
AddBookQuery.m_oNum,//%d`^%d`^
AddBookQuery.m_kuNum,//%d`^%d`^
AddBookQuery.m_Num); //%d`^%s`^
*pCtxt << strOutput;
*pCtxt << _T("\r\n");
AddBookQuery.MoveNext();
}
}
AddBookQuery.Close();
}
else{
strError.LoadString(IDS_ERR_FAILED_RECORD_OPEN);
*pCtxt << strError;
}
}
else
*pCtxt << "NoINST";
db.Close();
}
}
catch(CDBException* pEx)
{
//strError.LoadString(IDS_ERR_FAILED_DB_OPEN);
strError="»óÁ¾ÀÌ °¡ µ¥ÀÌŸ À߷ȵ¥";
*pCtxt << strError;
TCHAR szError[1024];
if(pEx->GetErrorMessage(szError, sizeof(szError)))
{
*pCtxt << szError;
*pCtxt << _T("\r\n");
return;
}
}
}
=================================================
please help me.
