回 帖 发 新 帖 刷新版面

主题:两个vSQL中使用SQL语言的头疼问题

最近在编数据库的课程设计,前台使用VC++6.0,后台是SQLSercer2000。
突然遇到两个很头疼的问题:
    vSQL = "INSERT INTO Storage (BookID, DepotID, Booknam, Couindepot) VALUES('" + BookID + "','" + DepotID + "','" + Bookname + "'," + count + ")";
    编译错误,提示说:error C2666: '+' : 4 overloads have similar conversions

    vSQL = "UPDATE Storage SET Couindepot=" + count + " where BookID='" + BookID + "' AND DepotID='" + DepotID +"'";
    编译也出错,提示说:error C2110: cannot add two pointers

    其中BookID、DepotID、Bookname都是CString型,count是int型。
    由于我是初次编写数据库运用程序,对这两个错误感到莫名其妙,头疼、头疼、头疼!!
    请教各位大虾了!!![em2]

回复列表 (共9个回复)

沙发

vSQL你把这个定义成什么类型?

板凳

定义成 _bstr_t 型了。

3 楼

vSQL = "INSERT INTO Storage(BookID, DepotID, Booknam, Couindepot) VALUES('" + BookID + "','" + DepotID + "','" + Bookname + "'," + count + ")";
去掉storage与"("之间的空格试试

4 楼

不行啊,问题依旧,可能不是SQL语句格式的问题。[em18]

5 楼

vSQL = "INSERT INTO Storage (BookID, DepotID, Booknam) VALUES('" + BookID + "','" + DepotID + "','" + Bookname + "')";
去掉最后一个变量试试。

6 楼

谢谢。行了,第一个错误没了。


可是这是为什么呢?要是我非得要插入那一项“Couindepot”该怎么办呢?[em18]

7 楼

vSQL = "INSERT INTO Storage (BookID, DepotID, Booknam, Couindepot) VALUES('" + BookID + "','" + DepotID + "','" + Bookname + "','" + count + "')";
现在试试

8 楼

还是老问题啊。

不过我发现,要是在vSQL之前添加如下语句:
    CString strcount;
    strcount.Format("%d", count);

然后把vSQL赋值语句改为:
    vSQL = "INSERT INTO Storage (BookID, DepotID, Booknam, Couindepot) VALUES('" + BookID + "','" + DepotID + "','" + Bookname + "'," + [color=FF0000]strcount[/color] + ")";

    这样编译倒通过了。第二个错误用这个办法也能解决。

    是不是在vSQL中使用SQL语句," +   + "中间的变量必须是CString型的?

9 楼

我也有一个类似的问题:
vlong gcd( const vlong &X, const vlong &Y )
{
  vlong x=X, y=Y;
  while (1)
  {
    [color=FF00FF]if(y==0.0)return x;[/color]
    x = x % y;
    [color=FF00FF]if(x==0.0)return y;[/color]
    y = y % x;
  }
}

vlong i=0;
 [color=FF00FF]if(i<0) i += m;[/color]

error C2666: '==' : 2 overloads have similar conversions
error C2666: '==' : 2 overloads have similar conversions
error C2666: '<' : 2 overloads have similar conversions

我来回复

您尚未登录,请登录后再回复。点此登录或注册