如何解决在asp中不能对access数据库中的表进行插入记录问题

时间:2022-06-14 22:43:26

问题出现过程:我的access数据库是由sql数据库转变而来。但转变后

出现问题症状:1,不能直接登录access数据库

                        2.,在asp中不能对access中的表进行插入操作,可以进行其它操作正常,

解决办法:本人经过两天反复查找原因,终于找到解决方法如下:

                  问题1:需要对access数据文件路径用网站绝对目录

                  问题2:需要对access数据库中各表的索引字段和主键进行重建,原因是从sql数据库转换来的access数据库中的对应表,凡是含有主键索引的字段数据类型都变成了单纯的数字类型,必须在access的表设计中修改成自动编号类型,【常规】--》【索引】中改成:有(无重复)然后保存下数据表就可以了,即原来的索引字段失去了其对应的功能,这是 造成不能插入记录的原因

附图及示例源码:


<%
Const DataBaseType=0
If DataBaseType=0 then

DBPath="/database/eax.mdb"             '相对网站根目录下数据库文件位置
SqlNowString = "Now()"
ystr=true
nstr=false
suiji="rnd(id)"
Else
'如果是SQL数据库,请认真修改好以下数据库选项
DataServer = "" '数据库服务器IP
DataUser = "" '访问数据库用户名
DataBaseName = "ea" '数据库名称
DataBasePsw = "abc123 '访问数据库密码
SqlNowString = "getdate()"
ystr=1
nstr=0
suiji="newid()"
End if
On Error Resume Next
If DataBaseType = 1 Then
ConnStr="driver={SQL Server};server="&dataserver&";UID="&datauser&";PWD="&databasepsw&";Database="&databasename
Else

'''''''''''''''''''''''''''''' Access数据库设置 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SqlDataBase = "/database/ea.mdb"  '数据库路径
SqlProvider = "Microsoft.Jet.OLEDB.4.0"  '驱动程序[ Microsoft.Jet.OLEDB.4.0  Microsoft.ACE.OLEDB.12.0 ]
SqlPassword = ""       'ACCESS数据库密码
Connstr="Provider="&SqlProvider&";Jet Oledb:Database Password=" & SqlPassword &"; Data Source="&Server.MapPath(SqlDataBase)
'ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DBPath)
'ConnStr = "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(DBPath)

End If
Set conn = Server.CreateObject("ADODB.Connection")

conn.open ConnStr
If Err Then Err.Clear:Set conn = Nothing:Response.Write "数据库连接出错,请检查Conn.asp文件中的数据库参数设置。":Response.End
%>

如何解决在asp中不能对access数据库中的表进行插入记录问题