CString 的讨论重分奖励,我每次用这个类时,调试时无错大运行时错误多多,但不跟踪时

washingli 2003-06-25 01:49:33
CString 的讨论重分奖励,我每次用这个类时,调试时无错,运行时错误多多,但跟踪时有些问题简直无法解释,在察看内存变量时竟能被告知该变量为定义但不报错,却不能正常运行。
...全文
19 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
washingli 2003-06-25
  • 打赏
  • 举报
回复
何错之有
washingli 2003-06-25
  • 打赏
  • 举报
回复
else//该字段不存在,按t_frm_field.field_len的长度填充空格
{
long temsize=pFieldRecordSet->GetCollect(_variant_t(long(2)));
fout.width(temsize);
if(strfieldname == "KYII_INFORMANT_MOBILE_1" || strfieldname== "KYII_INFORMANT_MOBILE_2")
{
fout.fill('0');
fout<<"";
fout<<"!";
fout.fill(' ');
}
else
{
fout<<"";
fout<<"!";
}
}
pFieldRecordSet->MoveNext();
}
if(!pValueRecordSet->EndOfFile && !bd_only)
fout<<endl;
v_cardid2=pValueRecordSet->GetCollect(_bstr_t(L"KYII_ID_2"));
if(v_cardid2.vt!=VT_NULL)
{
HandleAttachCard(pValueRecordSet,pFieldRecordSet,fout);
}
pTaskList->pTasks[k].bIsDone=true;
// pValueRecordSet->MoveNext();

}
nRetval=CCAIMS_STATUS_SUCCESS;
}
catch(_com_error &e)
{
flog<<e.ErrorMessage()<<endl;
// flog<<e.Description()<<endl;
//fout.clear();
nRetval=CCAIMS_STATUS_UNKNOWN_ERROR;
}
catch(char serr[])
{
flog<<serr<<endl;
//fout.clear();
nRetval=CCAIMS_STATUS_UNKNOWN_ERROR;
}
catch(...)
{
flog<<"unknow error"<<endl;
nRetval=CCAIMS_STATUS_UNKNOWN_ERROR;
}
if(pConnection1)
if(pConnection1->GetState() == adStateOpen)
pConnection1->Close();
if(pFieldRecordSet)
if(pFieldRecordSet->GetState()==adStateOpen)
pFieldRecordSet->Close();
if(pValueRecordSet)
if(pValueRecordSet->GetState()==adStateOpen)
pValueRecordSet->Close();
if(fout)
fout.close();
flog<<"主机档转档完成"<<endl;
// MessageBox(NULL,"主机档转档完成","线程",MB_OK);
return nRetval;
}
*/
washingli 2003-06-25
  • 打赏
  • 举报
回复
int CBsConvFile::CreateMainFile(TaskList* pTaskList)
{
// ::CoInitialize(NULL);
//document name will define
int nRetval;
HRESULT hr;
char logstr[50]="create main file";

_ConnectionPtr pConnection1 = NULL;
_RecordsetPtr pFieldRecordSet=NULL;
_RecordsetPtr pValueRecordSet=NULL;
_RecordsetPtr pFormFdReSet=NULL;
ofstream fout("mainframe.txt");

try
{

if(!fout)
throw "open file error when create mainframe";



hr=pConnection1.CreateInstance(__uuidof(Connection));
hr=pFieldRecordSet.CreateInstance(__uuidof(Recordset));
pValueRecordSet.CreateInstance(__uuidof(Recordset));
pFormFdReSet.CreateInstance(__uuidof(Recordset));

pConnection1->ConnectionString = g_sConnString;
pConnection1->ConnectionTimeout = 30;

hr=pConnection1->Open("","","",adConnectUnspecified);
//初始化一个纪录集
pFieldRecordSet->Open("select FIELD_ID,MAINFRAME_DOC_SEQ,FIELD_LEN FROM T_FRM_FIELD WHERE MAINFRAME_DOC_SEQ IS NOT NULL ORDER BY MAINFRAME_DOC_SEQ"
,_variant_t((IDispatch *)pConnection1,true)
,adOpenDynamic// ,adOpenKeyset
,adLockOptimistic
,adCmdText);
pValueRecordSet->Open("select top 1 * from T_APP_KEYIN_ULTIMATE where case_no in (select case_no from T_APP_CASE) "
,_variant_t((IDispatch *)pConnection1,true)
,adOpenDynamic// ,adOpenKeyset
,adLockOptimistic
,adCmdText);
char strSql[200];

_variant_t vfieldname;
_variant_t vvalue;

FieldPtr ftr;
long size;
_variant_t v_caseno;
_variant_t v_cardid2;

bool bd_only=false;//only attach card

long fcount=pValueRecordSet->Fields->GetCount();

///////////////////////////////

_variant_t vd_only;
vd_only=L"0";
for(int k=0;k<(pTaskList->nTasksCount);k++)
{
sprintf(strSql,"select * from T_APP_KEYIN_ULTIMATE where case_no in (select case_no from T_APP_CASE) and case_no='%s'",pTaskList->pTasks[k].sCaseNo);
if(pValueRecordSet!=NULL )
if(pConnection1->GetState()==adStateOpen)
pValueRecordSet->Close();
hr=pValueRecordSet->Open(_variant_t(strSql)//"select * from T_APP_KEYIN_ULTIMATE where case_no in (select case_no from T_APP_CASE) "
,_variant_t((IDispatch *)pConnection1,true)
,adOpenDynamic// ,adOpenKeyset
,adLockOptimistic
,adCmdText);
if(FAILED(hr))
throw "Open recordset failed";
if(pValueRecordSet->GetRecordCount()==0)
{
return CCAIMS_STATUS_UNKNOWN_ERROR;
}
fout.setf(ios::left);
vd_only=pValueRecordSet->GetCollect(_variant_t(L"D_ONLY"));
v_caseno=pValueRecordSet->GetCollect(_variant_t(L"CASE_NO")//*long(0)));

//if(GetInputType(LPCTSTR(_bstr_t(v_caseno)),"KYII_APPL_NO")==-1)
//throw "This caseno not in T_APP_CASE didn't create mainframe document ";
if(vd_only.vt==VT_NULL || vd_only==_variant_t(L"0"))
bd_only=false;
else
bd_only=true;
if(!pFieldRecordSet->BOF)
pFieldRecordSet->MoveFirst();
while(!pFieldRecordSet->EndOfFile && !bd_only )
{
vfieldname=pFieldRecordSet->GetCollect(_variant_t(long(0)));
char sTemp[100];
if(vfieldname.vt==VT_NULL)
throw "fieldname is null when create mainframe document ";
strcpy(sTemp,(char*)(_bstr_t)vfieldname);
CString strfieldname=sTemp;
strfieldname.TrimLeft();
strfieldname.TrimRight();
strfieldname.MakeUpper();
for(int j=0;j<fcount;j++)
{
ftr=pValueRecordSet->Fields->GetItem(_variant_t(long(j)));
BSTR f_name;
ftr->get_Name(&f_name);
if(_bstr_t(f_name)==strfieldname)
{
break;
}
}
if(j<fcount) //该字段存在
{ //要修改是否是全角在此处更改就行
size=pFieldRecordSet->GetCollect(_variant_t(long(2)));
if(strfieldname=="KYII_APPL_NO")
{
strfieldname.Empty();
strfieldname="CASE_NO";
}
vvalue=pValueRecordSet->GetCollect(_variant_t(strfieldname));
if(strfieldname != "KYII_ID" && strfieldname != "KYII_RECOM_CREDITLINE_RMB" && strfieldname != "KYII_MAJOR_ID" && strfieldname != "CASE_NO")
{
if(vvalue.vt!=VT_NULL)
{
int iinputtype;
iinputtype=GetInputType(LPCTSTR(_bstr_t(v_caseno)),strfieldname);
if(iinputtype==-1)
throw "get inputtype error in create mainframe document ";
if(iinputtype==1)
size=size-2;
if(strfieldname == "KYII_J_CAR_NUMBER_G"
|| strfieldname == "KYII_V_CAR_NUMBER_G"
|| strfieldname =="KYII_M_CAR_NUMBER_G")
{//处理第一个字符是全角
CString wstr;
wstr=LPCTSTR(_bstr_t(vvalue));
wstr.TrimLeft();
wstr.TrimRight();
if(wstr[0]<0)
{
fout.width(size-2);
fout<<wstr;
}
else
{
fout.width(size);
fout<<_bstr_t(vvalue);
}
}
else
{
fout.width(size);
fout<<_bstr_t(vvalue);
}
if(strfieldname!="KYII_INFORMANT_ZONE_1" && strfieldname != "KYII_SEQ_CODE" && strfieldname!="KYII_INFORMANT_ZONE_2")
fout<<"!";
}
else
{
// int iinputtype=-1;
// iinputtype=GetInputType(LPCTSTR(_bstr_t(v_caseno)),strfieldname);
// if(iinputtype==-1)
// throw "get inputtype error in create mainframe document ";

fout.width(size);
fout<<"";
if(strfieldname!="KYII_INFORMANT_ZONE_1" && strfieldname != "KYII_SEQ_CODE" && strfieldname!="KYII_INFORMANT_ZONE_2")
fout<<"!";
}
}
else//作特殊处理
{
if(strfieldname=="KYII_ID" || strfieldname=="KYII_MAJOR_ID")
{
_variant_t vvidflag;
vvidflag=pValueRecordSet->GetCollect(_variant_t("KYII_ID_FLAG"));
if(vvidflag.vt!=VT_NULL && vvalue.vt != VT_NULL)
{ //此处应再修改//2003-6-5修改完毕
fout<<"0";
fout<<_bstr_t(vvidflag);
}
else
{
fout<<" ";
}
if(vvalue.vt!=VT_NULL)
{ //此处应再修改
fout.setf(ios::left);
fout.width(size-2);
CString strvvalue;
strvvalue=LPCTSTR((_bstr_t)vvalue);
strvvalue.TrimRight();
strvvalue.TrimLeft();
fout<<strvvalue;
fout<<"!";
//fout.setf(ios::right);
}
else
{
fout.width(size-2);
fout<<"";
fout<<"!";
}
}
if(strfieldname=="KYII_RECOM_CREDITLINE_RMB")
{
if(vvalue.vt!=VT_NULL)
{
size=pFieldRecordSet->GetCollect(_variant_t(long(2)));
fout.fill('0');
fout<<_bstr_t(vvalue)<<"!";
fout.fill(' ');
}
else
{
fout.width(size);
fout.fill('0');
fout<<"0";
fout.fill(' ');
fout<<"!";
}

}
if(strfieldname=="CASE_NO")
{
if(vvalue.vt!=VT_NULL)
{
fout<<_bstr_t(vvalue)<<"1"<<"!";
}
else
{
fout.width(size);
fout.setf('0');
fout<<"";
fout<<"!";
fout.setf(' ');
}
}
}
}

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧