??请教:Oracle的Date类型与1970问题—— 我的组合条件查询中,只有时间为1970的才可以从Oracle数据库中读出数据,但我的数据库中根本就不存在时间为1970的记录,为什么,请高手指教?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 上述情况是我用ADO时出现的,而用ODBC时,则出现如下情况:条件1:1997记录1:1998-1-1条件2:1998记录2:1998-2-1(只要月份大于1,就可以取到正确的结果)哪位能帮帮我,不胜感激!! UINT getDataProc(LPVOID pParam){ CString m_strRcvBxzh, //提取字符串中的bxzh字段 m_strRcvNd, //提取字符串中的nd字段 strValue, //中间变量 msg; int iLen, //发送串的长度 iSent, //标志发送是否成功 iErrorCode=0; //错误码 VARIANT varNd,varCounter; VARIANT var_value; CSbcx rs; Field *field; recvThread* pInfo=(recvThread*)pParam; m_strRcvBxzh=strRecvd.Left(8); m_strRcvNd=strRecvd.Mid(8,8); pInfo->ctlRecvd->AddString(strRecvd); ::CoInitialize(NULL); varCounter.vt=VT_I4; varCounter.lVal=0; _RecordsetPtr pRs; try{ //ado连接数据库 pRs.CreateInstance("ADODB.Recordset"); IADORecordBindingPtr picRs(pRs); pRs->Open("SELECT * FROM sbcx ", "dsn=sbcx0;uid=sa;pwd=;", adOpenStatic, adLockOptimistic, adCmdText); TESTHR(picRs->BindToRecordset(&rs)); } catch(_com_error &e) { e.ErrorMessage(); } try{ if(!pRs->BOF) pRs->MoveFirst(); while(msg =="") { varCounter.lVal=0; pRs->Fields->get_Item(varCounter,&field); field->get_Value(&var_value); strValue=VariantToCtring(var_value); if(_tcscmp(strValue,LPCTSTR(m_strRcvBxzh+" "))==0) { //以下是对日期的处理 CTime mTime = 0; varCounter.lVal = 3; pRs->Fields->get_Item(varCounter,&field); field->get_Value(&var_value); mTime=var_value.date; strValue=mTime.Format("%Y"); if(_tcscmp(strValue,_T (m_strRcvNd))==0) { varCounter.lVal=0; msg=""; while (varCounter.lVal<9&&varCounter.lVal!=3) { pRs->Fields->get_Item(varCounter,&field); field->get_Value(&var_value); msg+=VariantToCtring(var_value); varCounter.lVal++; } msg+=strValue; break; } } if(!pRs->adoEOF) { pRs->MoveNext(); strValue=(""); } else break; } } catch(_com_error &e) { e.ErrorMessage(); return 0; } if(msg =="") sendmsg ="此记录不存在!"; else sendmsg=msg; iLen =sendmsg.GetLength (); iSent=Info.m_connet->Send(LPCTSTR(sendmsg),iLen); pRs->Close(); if(iSent==SOCKET_ERROR) { AfxMessageBox("Server send after"); return 0; } return 1;} UINT getDataProc(LPVOID pParam){ CString m_strRcvBxzh, //提取字符串中的bxzh字段 m_strRcvNd, //提取字符串中的nd字段 strValue, //中间变量 msg; int iLen, //发送串的长度 iSent, //标志发送是否成功 iErrorCode=0; //错误码 VARIANT varNd,varCounter; VARIANT var_value; CSbcx rs; Field *field; recvThread* pInfo=(recvThread*)pParam; m_strRcvBxzh=strRecvd.Left(8); m_strRcvNd=strRecvd.Mid(8,8); pInfo->ctlRecvd->AddString(strRecvd); ::CoInitialize(NULL); varCounter.vt=VT_I4; varCounter.lVal=0; _RecordsetPtr pRs; try{ //ado连接数据库 pRs.CreateInstance("ADODB.Recordset"); IADORecordBindingPtr picRs(pRs); pRs->Open("SELECT * FROM sbcx ", "dsn=sbcx0;uid=sa;pwd=;", adOpenStatic, adLockOptimistic, adCmdText); TESTHR(picRs->BindToRecordset(&rs)); } catch(_com_error &e) { e.ErrorMessage(); } try{ if(!pRs->BOF) pRs->MoveFirst(); while(msg =="") { varCounter.lVal=0; pRs->Fields->get_Item(varCounter,&field); field->get_Value(&var_value); strValue=VariantToCtring(var_value); if(_tcscmp(strValue,LPCTSTR(m_strRcvBxzh+" "))==0) { //以下是对日期的处理 CTime mTime = 0; varCounter.lVal = 3; pRs->Fields->get_Item(varCounter,&field); field->get_Value(&var_value); mTime=var_value.date; strValue=mTime.Format("%Y"); if(_tcscmp(strValue,_T (m_strRcvNd))==0) { varCounter.lVal=0; msg=""; while (varCounter.lVal<9&&varCounter.lVal!=3) { pRs->Fields->get_Item(varCounter,&field); field->get_Value(&var_value); msg+=VariantToCtring(var_value); varCounter.lVal++; } msg+=strValue; break; } } if(!pRs->adoEOF) { pRs->MoveNext(); strValue=(""); } else break; } } catch(_com_error &e) { e.ErrorMessage(); return 0; } if(msg =="") sendmsg ="此记录不存在!"; else sendmsg=msg; iLen =sendmsg.GetLength (); iSent=Info.m_connet->Send(LPCTSTR(sendmsg),iLen); pRs->Close(); if(iSent==SOCKET_ERROR) { AfxMessageBox("Server send after"); return 0; } return 1;} CTime mTime = 0; varCounter.lVal = 3; pRs->Fields->get_Item(varCounter,&field); field->get_Value(&var_value); mTime=var_value.date; strValue=mTime.Format("%Y"); 这样写问题在哪儿,高手快出现啊 你知道吗? 100分,求用对话框显示"生产者与消费者"模型 关于DialogBox的问题 如何从工程中干净的删除一基于MFC的类? 如何实现对CListCtrl内容的查找后高亮显示???? 如何抓取ip数据包,分析ip包,请高手帮忙! vc共享目录? 我是个初学者,希望和我一样的朋友多多联系QQ78143897 巨难的问题,为什么用Create动态创建MSFlxGrid网格控件在没有安装VC的机器上就没有显示? win7服务程序中怎么实现注销? 救命~~~~~~~,在服务程序中如何使用SOCKET? 我不用dao,用什么能代替CDaoFieldInfo
记录1:1998-1-1条件2:1998
记录2:1998-2-1(只要月份大于1,就可以取到正确的结果)哪位能帮帮我,不胜感激!!
{
CString m_strRcvBxzh, //提取字符串中的bxzh字段
m_strRcvNd, //提取字符串中的nd字段
strValue, //中间变量
msg;
int iLen, //发送串的长度
iSent, //标志发送是否成功
iErrorCode=0; //错误码
VARIANT varNd,varCounter;
VARIANT var_value;
CSbcx rs;
Field *field; recvThread* pInfo=(recvThread*)pParam;
m_strRcvBxzh=strRecvd.Left(8);
m_strRcvNd=strRecvd.Mid(8,8);
pInfo->ctlRecvd->AddString(strRecvd); ::CoInitialize(NULL);
varCounter.vt=VT_I4;
varCounter.lVal=0;
_RecordsetPtr pRs;
try{ //ado连接数据库
pRs.CreateInstance("ADODB.Recordset");
IADORecordBindingPtr picRs(pRs);
pRs->Open("SELECT * FROM sbcx ",
"dsn=sbcx0;uid=sa;pwd=;",
adOpenStatic, adLockOptimistic, adCmdText);
TESTHR(picRs->BindToRecordset(&rs));
}
catch(_com_error &e)
{
e.ErrorMessage();
}
try{
if(!pRs->BOF)
pRs->MoveFirst();
while(msg =="")
{
varCounter.lVal=0;
pRs->Fields->get_Item(varCounter,&field);
field->get_Value(&var_value);
strValue=VariantToCtring(var_value);
if(_tcscmp(strValue,LPCTSTR(m_strRcvBxzh+" "))==0)
{ //以下是对日期的处理
CTime mTime = 0;
varCounter.lVal = 3;
pRs->Fields->get_Item(varCounter,&field);
field->get_Value(&var_value);
mTime=var_value.date;
strValue=mTime.Format("%Y");
if(_tcscmp(strValue,_T (m_strRcvNd))==0)
{
varCounter.lVal=0;
msg="";
while (varCounter.lVal<9&&varCounter.lVal!=3)
{
pRs->Fields->get_Item(varCounter,&field);
field->get_Value(&var_value);
msg+=VariantToCtring(var_value);
varCounter.lVal++;
}
msg+=strValue;
break;
}
}
if(!pRs->adoEOF)
{
pRs->MoveNext();
strValue=("");
}
else
break;
}
}
catch(_com_error &e)
{
e.ErrorMessage();
return 0;
} if(msg =="")
sendmsg ="此记录不存在!";
else
sendmsg=msg;
iLen =sendmsg.GetLength ();
iSent=Info.m_connet->Send(LPCTSTR(sendmsg),iLen);
pRs->Close(); if(iSent==SOCKET_ERROR)
{
AfxMessageBox("Server send after");
return 0;
}
return 1;
}
{
CString m_strRcvBxzh, //提取字符串中的bxzh字段
m_strRcvNd, //提取字符串中的nd字段
strValue, //中间变量
msg;
int iLen, //发送串的长度
iSent, //标志发送是否成功
iErrorCode=0; //错误码
VARIANT varNd,varCounter;
VARIANT var_value;
CSbcx rs;
Field *field; recvThread* pInfo=(recvThread*)pParam;
m_strRcvBxzh=strRecvd.Left(8);
m_strRcvNd=strRecvd.Mid(8,8);
pInfo->ctlRecvd->AddString(strRecvd); ::CoInitialize(NULL);
varCounter.vt=VT_I4;
varCounter.lVal=0;
_RecordsetPtr pRs;
try{ //ado连接数据库
pRs.CreateInstance("ADODB.Recordset");
IADORecordBindingPtr picRs(pRs);
pRs->Open("SELECT * FROM sbcx ",
"dsn=sbcx0;uid=sa;pwd=;",
adOpenStatic, adLockOptimistic, adCmdText);
TESTHR(picRs->BindToRecordset(&rs));
}
catch(_com_error &e)
{
e.ErrorMessage();
}
try{
if(!pRs->BOF)
pRs->MoveFirst();
while(msg =="")
{
varCounter.lVal=0;
pRs->Fields->get_Item(varCounter,&field);
field->get_Value(&var_value);
strValue=VariantToCtring(var_value);
if(_tcscmp(strValue,LPCTSTR(m_strRcvBxzh+" "))==0)
{ //以下是对日期的处理
CTime mTime = 0;
varCounter.lVal = 3;
pRs->Fields->get_Item(varCounter,&field);
field->get_Value(&var_value);
mTime=var_value.date;
strValue=mTime.Format("%Y");
if(_tcscmp(strValue,_T (m_strRcvNd))==0)
{
varCounter.lVal=0;
msg="";
while (varCounter.lVal<9&&varCounter.lVal!=3)
{
pRs->Fields->get_Item(varCounter,&field);
field->get_Value(&var_value);
msg+=VariantToCtring(var_value);
varCounter.lVal++;
}
msg+=strValue;
break;
}
}
if(!pRs->adoEOF)
{
pRs->MoveNext();
strValue=("");
}
else
break;
}
}
catch(_com_error &e)
{
e.ErrorMessage();
return 0;
} if(msg =="")
sendmsg ="此记录不存在!";
else
sendmsg=msg;
iLen =sendmsg.GetLength ();
iSent=Info.m_connet->Send(LPCTSTR(sendmsg),iLen);
pRs->Close(); if(iSent==SOCKET_ERROR)
{
AfxMessageBox("Server send after");
return 0;
}
return 1;
}
varCounter.lVal = 3;
pRs->Fields->get_Item(varCounter,&field);
field->get_Value(&var_value);
mTime=var_value.date;
strValue=mTime.Format("%Y");
这样写问题在哪儿,高手快出现啊