VC6 Dao数据库模糊条件、参数查询和字符型转日期型字段等问题
我用VC的Dao进行数据库操作,在操作过程中需要用到条件查询如下:
在我的程序中所有的字段都是char 类型的包括日期字段和金额字段等,
当我要查询处理日期介于 起始日期和终止日期之间的所有记录时,我
不知要如何写查询语句?请各位高手帮帮忙!
请问是不是要先考虑以下几点?
1、先要把起始日期字段(char 型)和终止日期字段(char 型)转换为日期型,
怎么转换?
2、介于……之间的是不是用Between ……and ?
3、是不是要考虑用参数查询?参数查询应该怎么写代码?请给一个实例。
void CCxmx::OnCxyeBtn()
{
CString seekstr,strSQL;
CString startdate,enddate,tyear,tmonth,tdate,end_year,end_month,end_date;
m_startDate.GetWindowText(startdate);
m_endDate.GetWindowText(enddate);
tyear=startdate.Left(4);//取出年4位--取左4位
tmonth=startdate.Left(7).Right(2);//取出月2位--先取整个串的左7位,再取左7位的右2位
tdate=startdate.Right(2);//取出日2位--取右2位
end_year=enddate.Left(4);
end_month=enddate.Left(7).Right(2);//取出月2位--先取整个串的左7位,再取左7位的右2位
en_date=enddate.Right(2);//取出日2位--取右2位
startdate=tyear+tmonth+tdate;//起始日期
enddate=end_year+end_month+end_date;//终止日期
//以下这句是我写的查询语句,这是不对的请帮我修改?
strSQL="SELECT account,transactdate,amount FROM [t_jy] WHERE (CDate(transactdate) Between CDate(startdate) and CDate(enddate)) ";
}
CDaoRecordset rs(&hrnbs_Db); //打开数据库记录集
try
{
rs.Open(dbOpenDynaset,strSQL); //根据查询条件strSQL生成动态记录集
if (!rs.IsBOF())
{rs.MoveFirst();
}
while (!rs.IsEOF()) //while
{
}//End While
rs.Close(); //关闭数据库记录集
} // End try
catch( CDaoException* e )
{
e->Delete( );
}
}