首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

标准表达式中数据类型不匹配,该怎么处理

2012-03-22 
标准表达式中数据类型不匹配C/C++ codeAnsiString cEndTime FormatDateTime(yyyy-mm-dd,Now())Form1-

标准表达式中数据类型不匹配

C/C++ code
  AnsiString cEndTime =  FormatDateTime("yyyy-mm-dd",Now());  Form1->ArrayType="TerminalType,Building,Unit,Storey,Room,TNum";  DataModule35->qry3->Close();  DataModule35->qry3->SQL->Clear();  DataModule35->qry3->SQL->Add("Select " + Form1->CdtCol + " from cdtinfo");  DataModule35->qry3->SQL->Add(" where ComputerNo = :ComputerNo and (TerminalType = 3 or TerminalType = 4)");  DataModule35->qry3->SQL->Add(" and Address in (select Author from CardAuthor where CardNo in(Select CardNo from Card where EndTime <= :cEndTime))");  DataModule35->qry3->Parameters->ParamByName("cEndTime")->Value = cEndTime;


提示"标准表达式中数据类型不匹配",Card表中EndTime是 日期/时间 型的。

我记得以前这样用过,没出现过什么错误啊,这次就不行了,不知道为什么。

[解决办法]
C/C++ code
DataModule35->qry3->Parameters->ParamByName("cEndTime")->Value = StrToDateTime( cEndTime);
[解决办法]
SQL语句中直接用字符串试试:
C/C++ code
AnsiString cEndTime = FormatDateTime("yyyy-mm-dd", Now());String strSQL = String().sprintf("Select %s from cdtinfo"    " where ComputerNo = :ComputerNo and (TerminalType = 3 or TerminalType = 4"    " and Address in (select Author from CardAuthor where CardNo in "    "(Select CardNo from Card where EndTime <= '%s')))",    Form1->CdtCol, cEndTime);DataModule35->qry3->Close();DataModule35->qry3->SQL->Text = strSQL;... 

热点排行