2个回答
展开全部
"select [*] from [table] where [*]'"cstr(var)"' order by [*] desc"
把后面的那对单引号去掉
答案补充
改完应该是这样:"select [*] from [table] where [*]"cstr(var)" order by [*] desc"
假设var为1,那么最终送到ODBC的语句应该是这样:select [*] from [table] where [*]1 order by [*] desc
还有一种调试方法:你先将这个SQL语句保存到某个变量中,然后显示出来,看看生成的语句有没有问题
答案补充
你实际使用的字段和表名就是*和table吗?如果确实是这样的,可能ODBC的支持会不够好,即使加了[]也可能会出现失误
答案补充
那你继续检查一下rs在创建的时候的属性吧,或者拿一句简单的语句,比如SELECT * FROM [table]去试试是否正常
答案补充
执行过程?VB执行Basic语句,生成一个字符串形式的SQL代码。然后将这个代码发送给Connection对象对应的数据库,假如是ODBC,那么发送给ODBC引擎。ODBC引擎根据物理数据库类型,将语句进行必要的处理,不过一般对于SQLServer没有什么可处理的。接着就是ODBC将命令转交给物理数据库执行,执行后将结果反馈给VB。
答案补充
不过呢,你这里出现的问题,因为没有上下文,很难判定是具体的什么问题,就这个查询语句而言是没有错的,执行的方法也基本上没有问题。只能在其他地方找找原因了。
把后面的那对单引号去掉
答案补充
改完应该是这样:"select [*] from [table] where [*]"cstr(var)" order by [*] desc"
假设var为1,那么最终送到ODBC的语句应该是这样:select [*] from [table] where [*]1 order by [*] desc
还有一种调试方法:你先将这个SQL语句保存到某个变量中,然后显示出来,看看生成的语句有没有问题
答案补充
你实际使用的字段和表名就是*和table吗?如果确实是这样的,可能ODBC的支持会不够好,即使加了[]也可能会出现失误
答案补充
那你继续检查一下rs在创建的时候的属性吧,或者拿一句简单的语句,比如SELECT * FROM [table]去试试是否正常
答案补充
执行过程?VB执行Basic语句,生成一个字符串形式的SQL代码。然后将这个代码发送给Connection对象对应的数据库,假如是ODBC,那么发送给ODBC引擎。ODBC引擎根据物理数据库类型,将语句进行必要的处理,不过一般对于SQLServer没有什么可处理的。接着就是ODBC将命令转交给物理数据库执行,执行后将结果反馈给VB。
答案补充
不过呢,你这里出现的问题,因为没有上下文,很难判定是具体的什么问题,就这个查询语句而言是没有错的,执行的方法也基本上没有问题。只能在其他地方找找原因了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询