| 发表于:2007-05-10 15:55:41 楼主 |
提示错误代码如下: project autoexpress.exe raised exception class edbengineerror with message 'generan sql error. [ibm][cli driver][db2/6000]sql401n 运算“=”的操作数的数据类型不兼容。 sqlstate=42818 '.process stopped.use step or run to continue. 如下就是保存按扭的程序,__worktype为1时候是新建交易时候的保存,没问题;__worktype为2时是编辑交易时候的保存,问题就出在编辑交易时候的保存程序段上。表中的左右字段都是 char 型的。请高人指教,谢谢! // 0 : none // 1 : new a record // 2 : edit a record // 3 : delete // 4 : normal exit // init database // def var char _chr= '/ ',*ptr; string tmpstring; char *trans_str; // test and creat database linking if(db_connect() == 0) { tquery *_query = new tquery(this); application-> processmessages(); _query-> databasename = ovr_aliasname; // before working, close database _query-> close(); _query-> requestlive = true; try{ // while user append a new record if( __worktype == 1 ) { _query-> sql-> clear(); // open dbtable / 表 _query-> sql-> add( " select * from t_pb_atom_tran "); _query-> open(); _query-> first(); _query-> append(); _query-> edit(); // 区域号 / areano char(6) _query-> fieldbyname( "areano ")-> asstring = label429-> caption; // 原子交易码 atomtrancode char(5) _query-> fieldbyname( "atomtrancode ")-> asstring = edit52-> text; // 原子交易名称 atomtranname char(40) _query-> fieldbyname( "atomtranname ")-> asstring = edit53-> text; // 控制流代码 streamcode char(2) //_query-> fieldbyname( "streamcode ")-> asstring = edit53-> text; tmpstring = combobox23-> text; ptr=strchr(tmpstring.c_str(), _chr); if (ptr) { trans_str = (char *)(ptr+1); } _query-> fieldbyname( "streamcode ")-> asstring = trans_str; // 函数名 funcname char(40) _query-> fieldbyname( "funcname ")-> asstring = edit54-> text; // 原子交易说明 atomtranexpl varchar(80) _query-> fieldbyname( "atomtranexpl ")-> asstring = edit55-> text; // 原子交易状态 atomtranstatus char(1) // 0-不可用1-可用 if( radiobutton20-> checked == true ) _query-> fieldbyname( "atomtranstatus ")-> asstring = "1 "; if( radiobutton21-> checked == true ) _query-> fieldbyname( "atomtranstatus ")-> asstring = "0 "; // 参数类型 paramtype char(2) _query-> fieldbyname( "paramtype ")-> asstring = edit51-> text; // 文件名 filename _query-> fieldbyname( "filename ")-> asstring = edit59-> text; // 库名 libname _query-> fieldbyname( "libname ")-> asstring = edit60-> text; // 建柜员 createtlr char(6) _query-> fieldbyname( "createtlr ")-> asstring = edit57-> text; // 创建日期 createdate char(8) _query-> fieldbyname( "createdate ")-> asstring = edit58-> text; // after gave all value, save them _query-> post(); _query-> close(); } // while user edit a record if( __worktype == 2 ) { // move the point to current record _query-> sql-> clear(); // open dbtable / 表 _query-> sql-> add( " select * from t_pb_atom_tran "); if (checkbox1-> checked == true) { _query-> sql-> add( " where areano = " + label429-> caption + " and atomtrancode = " + statictext1-> caption + " and streamcode = " + statictext2-> caption); }else{ _query-> sql-> add( " where areano = " + label429-> caption + " and atomtrancode = " + statictext1-> caption + " and streamcode = " + statictext2-> caption); } _query-> open(); if(_query-> recordcount == 1) { _query-> edit(); // 原子交易码 atomtrancode char(5) // _query-> fieldbyname( "atomtrancode ")-> asstring = edit52-> text; _query-> fieldbyname( "atomtrancode ")-> asstring = edit52-> text; // 原子交易名称 atomtranname char(40) _query-> fieldbyname( "atomtranname ")-> asstring = edit53-> text; // 控制流代码 streamcode char(2) tmpstring = combobox23-> text; ptr=strchr(tmpstring.c_str(), _chr); /*if (ptr) { trans_str = (char *)(ptr+1); } _query-> fieldbyname( "streamcode ")-> asstring = trans_str; // 函数名 funcname char(40) _query-> fieldbyname( "funcname ")-> asstring = edit54-> text; // 原子交易说明 atomtranexpl varchar(80) _query-> fieldbyname( "atomtranexpl ")-> asstring = edit55-> text; // 原子交易状态 atomtranstatus char(1) // 0-不可用1-可用 if( radiobutton20-> checked == true ) _query-> fieldbyname( "atomtranstatus ")-> asstring = "1 "; if( radiobutton21-> checked == true ) _query-> fieldbyname( "atomtranstatus ")-> asstring = "0 "; // 参数类型 paramtype char(2) _query-> fieldbyname( "paramtype ")-> asstring = edit51-> text; // 文件名 filename _query-> fieldbyname( "filename ")-> asstring = edit59-> text; // 库名 libname _query-> fieldbyname( "libname ")-> asstring = edit60-> text; */ // after gave all value, save them _query-> post(); _query-> close(); } } } __finally { _query-> close(); delete _query; } } //after saved all data, flash the list // current table is "原子交易 " notebook1-> activepage = "page4 "; // current table is "原子交易 " // condition : 控制流代码 streamcode current_table = "t_pb_atom_tran "; p_comm_listview_bysome( "t_pb_atom_tran ",ansistring(label23-> caption), "streamcode ", "atomtranname ", "atomtrancode "); operationtype = 2; |
|
|
|
|