读书人

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

发布时间: 2012-03-22 17:43:57 作者: rapoo

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

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;... 

读书人网 >C++ Builder

热点推荐