m_db.Execute("delete from CombInfo where (NO4=NO3+1 and NO3=NO2+1 and NO2=NO1+1) or (NO5=NO4+1 and NO4=NO3+1 and NO3=NO2+1)");
上面的sql语句问什么不能正确执行?编译可以通过.语句中的NO几,都代表数字,想实现的功能是如果整数NO1 NO2 NO3 NO4 NO5有4个或全部连续则删除,如前4个连续1 2 3 4 7 ,全部连续 4 5 6 7 8 9 ,后4个连续2 5 6 7 8 ,另外,数字是以整型存储的.
上面的sql语句问什么不能正确执行?编译可以通过.语句中的NO几,都代表数字,想实现的功能是如果整数NO1 NO2 NO3 NO4 NO5有4个或全部连续则删除,如前4个连续1 2 3 4 7 ,全部连续 4 5 6 7 8 9 ,后4个连续2 5 6 7 8 ,另外,数字是以整型存储的.
CString str;
str.Format("delete from CombInfo where (%ld=%ld+1 and %ld=%ld+1 and %ld=%ld+1) or (%ld=%ld+1 and %ld=%ld+1 and %ld=%ld+1, NO4, NO3, NO3, NO2, NO2, NO1, NO5, NO4, NO4, NO3, NO3, NO2)");
m_db.Execute(str);
另外程序里的sql语句最好先在数据库里运行一下,看有错误没
str.Format("delete from CombInfo where (%ld=%ld+1 and %ld=%ld+1 and %ld=%ld+1) or (%ld=%ld+1 and %ld=%ld+1 and %ld=%ld+1, NO4, NO3, NO3, NO2, NO2, NO1, NO5, NO4, NO4, NO3, NO3, NO2)");
m_db.Execute(str);怎么显示查询表达式中逗号语法错误?我试着改了改但水平有限,还是不行.谢谢楼上2位的回答
str.Format("delete from CombInfo where (%ld=%ld+1 and %ld=%ld+1 and %ld=%ld+1) or (%ld=%ld+1 and %ld=%ld+1 and %ld=%ld+1)", NO4, NO3, NO3, NO2, NO2, NO1, NO5, NO4, NO4, NO3, NO3, NO2);
m_db.Execute(str);
D:\MyProjects\Comb\CombDlg.cpp(231) : error C2065: 'NO3' : undeclared identifier
D:\MyProjects\Comb\CombDlg.cpp(231) : error C2065: 'NO2' : undeclared identifier
D:\MyProjects\Comb\CombDlg.cpp(231) : error C2065: 'NO1' : undeclared identifier
D:\MyProjects\Comb\CombDlg.cpp(231) : error C2065: 'NO5' : undeclared identifier
Error executing cl.exe.Comb.exe - 5 error(s), 0 warning(s)
谢谢 syy64(太平洋) ( ) 信誉:145
但这样有错误~不知道怎么回事.呵呵,再帮帮忙吧,小弟学艺不精
D:\MyProjects\Comb\CombDlg.cpp(231) : error C2065: 'NO3' : undeclared identifier
D:\MyProjects\Comb\CombDlg.cpp(231) : error C2065: 'NO2' : undeclared identifier
D:\MyProjects\Comb\CombDlg.cpp(231) : error C2065: 'NO1' : undeclared identifier
D:\MyProjects\Comb\CombDlg.cpp(231) : error C2065: 'NO5' : undeclared identifier
Error executing cl.exe.
??
NO4都没有定义嘛
都是字段名.谢谢
where后面的用字段名称进行算术操作好像不行的吧!
拿去数据库中试一下就知道了!
...............
可以.
or ( no2=no3-1 and no3=no4-1 and no4=no5-1)
CString str;
str="delete CombInfo where (NO1=No2-1 and no2=no3-1 and no3=no4-1)or ( no2=no3-1 and no3=no4-1 and no4=no5-1)";
m_db.Execute(str);