access数据库转换成mssql数据库时asp程序带来的问题

来源:百度知道 编辑:UC知道 时间:2024/04/28 21:14:43
我把access导入mssql后
代码出现一些问题
在access时是正常的,但在使用mssql时出现错误

Microsoft OLE DB Provider for SQL Server 错误 '80040e14'

第 1 行: '=' 附近有语法错误。

/index.asp,行 813

set rs = server.createobject ("adodb.recordset")
rs.open "select Dm from "&ss&" where Did="&Did&"",conn,1,3
Dm=rs("Dm")
rs.close()
set rs=nothing

这行是813
rs.open "select Dm from "&ss&" where Did="&Did&"",conn,1,3

前面定义的ss是这样的
rs.open "select Sc,ss from S where Sid="&Sid&"",conn,1,3
ss=Rs("ss")

数据库方面:
1、AC自动编号与MSSQL标识转换
2、AC默认值过渡问题。
3、AC库的NOW()与MSSQL的GETDATE()问题
4、AC库 是/否 字段格式与MSSQL转换问题
程序方面:
1、NOW()转换成GETDATE问题。
2、AC库和MSSQL语句,datediff书写格式问题
3、时间加减换算语句问题
4、关于SQL语句书写格式和关键字引发的问题,比如表名 name要写成[name],不允许time字段等问题.

比如在ASP程序中的SQL语句,就要注意以下问题:
使用AC库时的代码:datediff('d',regtime,now())
使用SQL库时代码:datediff(d,regtime,getdate())
如DID有值的话
建议rs.open "select Dm from ["& ss &"] where Did="&Did,conn,1,3
因为在SQL里有好多字符都所有他们的标识字符,对于这些必须加[]来加以区别,养成良好的习惯,最好在数据表前都加[表名]。
参考资料:XX网站

如DID有值的话
建议rs.open "select Dm from ["& ss &"] where Did="&Did,conn,1,3
因为在SQL里有好多字符都所有他们的标识字符,对于这些必须加[]来加以区别,养成良好的习惯,最好在数据表前都加[表名]。

那么Did又是怎么定义的?
如果Did定义正确试改成:
rs.open "select Dm from ["& ss &"] where Did="&Did,conn,1,3

1.看一下SS查出来的表名是什么?然后看该表的Did字段类型是否为Int型,是否为自增量,不是请改过来!
2.查一下传进去的参数DID是否有值。。。。

rs.open "selec