使用VC的ADO调用存储过程!declare @SqlStr nvarchar(1024)
set @SqlStr=N'select * from theGame.QiPaiGame.dbo.' + @GameName + ' where 帐号='''+@Account+''''
exec sp_executesql @SqlStr查看时@SqlStr是: select * from theGame.QiPaiGame.dbo.三人斗地主 where 帐号='abc'
这时存储过程调用正常我在后面加了一句 insert into theGame.QiPaiGame.dbo.三人斗地主 (Account) values ('xxxx')
为什么能编译通过!!!却在VC的ADO不能调用了呢?????

解决方案 »

  1.   

    declare @SqlStr nvarchar(1024) 
    set @SqlStr=N'select * from theGame.QiPaiGame.dbo.' + @GameName + ' where 帐号='''+@Account+'''' 
    exec sp_executesql @SqlStr 
    GO?
    insert into theGame.QiPaiGame.dbo.三人斗地主 (Account) values ('xxxx') 不太明白
      

  2.   

    编译只是C语句的检查和LINK。与数据库语法无关。你就是写个
    set @SqlStr=N' XXXX-XXX=123'; 也一定能通过的。
      

  3.   

    你在哪里加的
    insert into theGame.QiPaiGame.dbo.三人斗地主 (Account) values ('xxxx')
      

  4.   

    theGame是sp_addlinkedserver得来的。也就是另一个数据库中的表!
      

  5.   

    如果你没关掉链接的话没问题呀,
    是不是哪些字段不能为NULL的?
      

  6.   

    没关掉,其它都有默认值的,我在SQL下可以运行的。就是用VC的ADO运行不行。运掉那句就可以了!!!
      

  7.   

    用VC的ADO运行其他的语句行不行?如果行,就是这句有问题.
    如果不行,那就是ADO的问题了.