mfc写数据至sqlserver2000:第一行:‘=’附近有语法异常

mfc写数据至sqlserver2000:第一行:‘=’附近有语法错误
问题如标题所示,我在用mfc写数据至sqlserver2000时,提示说:第一行:'='附近有语法错误!
请教各位,这是什么问题呢?代码如下:
[code=C/C++] CADOConn adoconn;
adoconn.OnInitADOConn();

CString str = "";
str.Format("insert into base_Member values('%s','%s','%s','%s','%s','%s',%d,%d,%d,'%s')",
  mb_num,mb_pw,mb_group,mb_name,mb_sex,mb_idnum,mb_score,mb_money,mb_statu,mb_open_date);


adoconn.ExecuteSQL((_bstr_t)str);
adoconn.ExitConnect();
[/code]

数据库的连接是没有问题的,因为我能从数据库里面取出数据来!
另外“str.Format();”一句是一整句,在我的程序里面是只占一行的!
我用同样的语句,在sql查询分析器里面也试过,是成功的!

------解决方案--------------------
可设断点,在str.Format执行完毕之后,把str的内容贴上来给大家看看。
------解决方案--------------------
是的编译时提示错误还是在执行时错误?
在SQL语句里把你要插入的字段名称也写上,注意要与后面的值对应,比如:
insert into base_Member(name, pwd, age) values('aaa','bbb',10)
------解决方案--------------------
可能是你的变量和你要格式化的方式不对应。
比如你字符串 用%s,不小心写成%d。
又或者是把 INT 变量 用%s格式化了。好好对对看。
------解决方案--------------------
变量和数据库中的字段要是一一对应的。
------解决方案--------------------
或者试试,,不要给str赋空值看;
------解决方案--------------------
你如果用的VC6可以这样写,如果用的是VC2005及以上要这样写

CString str = _T("");

CString str = L"";

再有就是你这里已经不需要置空了,因为你下边就是Format函数了
------解决方案--------------------
把str打印出来,放到查询分析器去执行下,看看