数据库操作问题
char tmptext[50]; 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("ComputerNo")->Value = Form1->ComputerNo; DataModule35->qry3->Parameters->ParamByName("cEndTime")->Value = cEndTime;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))");
[解决办法]
我一般使用格式化字符串写:
String sql=String().sprintf("select XX from Table where date>'%s' and data<'%s'",StartDate.c_str(),EndDate.c_str());ADOQuery->SQL->Text=sql;
[解决办法]
Access时间加#号的吧
EndTime <= #cEndTime#