MFC数据库编程中的问题

海阔任鱼跃 2011-11-27 04:20:44
sql.Format(" Select * from MEMO_INFO_TAB "
" where DATEPART(wk,happen_date) = DATEPART(wk,'%s' and DATEPART(yy,happen_date) = DATEPART(yy,'%s')",strCurDate,strCurDate);
//GetWeekData(sql);

CRecordset rs(m_pWeek);
rs.Open(CRecordset::dynaset,sql);

strCurDate 为当前时间 happen_date 为数据库中的时间。

当执行Open的时候,sql语句出错。
1,但是在SQLserver 查询分析器中该SQL语句可以顺利执行,得到与当前时间为同一周的所有记录。
语句如下:(select * from memo_info_tab where DATEPART(wk,happen_date ) = DATEPART(wk, GETDATE()) and
DATEPART(yy, happen_date) = DATEPART(yy, GETDATE()))


2,在程序中应该怎样改写这个SQL 语句啊?
请大虾指教啊?
...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
buyong 2011-11-28
  • 打赏
  • 举报
回复
先在log里打印出要执行的sql语句,然后直接放在分析器里看能否执行
wyx100 2011-11-28
  • 打赏
  • 举报
回复
传变量的地方 要用双引号 '%s' => "%s"
龙行天下之Sky 2011-11-28
  • 打赏
  • 举报
回复
Open(CRecordset::forwardOnly, szSql,CRecordset::readOnly)
试试这个
yuucyf 2011-11-28
  • 打赏
  • 举报
回复
'%s'是否应该要改成\'%s\'.
海阔任鱼跃 2011-11-27
  • 打赏
  • 举报
回复
用双引号是错的,要用单引号。关键是在server里面可以执行。在C++写的就不对了。可能是函数有问题,例如:datepart 等
  • 打赏
  • 举报
回复
传变量的地方 要用双引号 '%s' => "%s"

4,012

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧