菜鸟请教:数据库连接出错问题。谢谢!
我注册了个国外空间。空间里只有一个db目录。我把(老Y文章管理系统 v2.5 SP1)程序放在db目录里。结果访问 一直提示 “数据库连接出错,请检查Inc/Config.Asp里的数据库名称及路径是否正确。我该怎么改Config.Asp这个文件呢?conn.asp文件也要改吗?在网上看了这个。我和他的空间一样。但不知以下这段代码插在那呀?怎么改呀?
《国外免费空间数据库出错问题的解决》
最近申请了个国外ASP服务器空间,100M空间,无强制广告,Asp+Access,支持FTP和WEB上传和管理文件,速度也不错,是个很理想的ASP主页免费空间。
可是当我把网站文件上传服务器试着打开网页时,却出现数据库连接错误。查了提供商网站的说明,服务器提供了一个"DB"文件夹,用来专门放置你的网站数据,同时网站上提供了一段数据库连接的代码如下:
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
strConnection = "DRIVER=Microsoft Access Driver(*.mdb);DBQ=" & Server.MapPath("/USERNAME/db/yourdatabase.mdb")
oConn.Open(strConnection)
.
oConn.Close
按上面要求做后,打开网页还是出现数据库连接错误。
仔细查看了上面的代码,居然发现服务商提供的代码有两处错误:
一是 Conn 这个变量,到下面变成了 oConn;
二是 在第三句,这个错误很难发现,就是在 Driver和(*.mdb)之间少个空格。
因此这段代码正确写法是:
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
strConnection = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("/USERNAME/db/yourdatabase.mdb")
Conn.Open(strConnection)
.
Conn.Close
代码的错误查出来,该正常了吧。一试还是不行。晕啊!百思不得其解。正要放弃时,忽然想是否与支持的语言有关,我用的是微软office办公软件中提供的中文Access,而国外的服务只支持英文的,想到这就在本机上打开Access,打开“菜单\工具\选项”面板,选“常规”这页,在“新建数据库排序次序”这项上改选“常规”,“确定”后对话框关闭,再点“工具\数据实用工具\压缩和修复数据库”,完成后上传,打开网页一切正常了。
附上我的Config.Asp文件:
<%
Dim dataname
'数据库名称,数据库位于Data目录下,更改名称后在这里相应修改
dataname = "##DatalaoY2.5.mdb"
Dim SitePath
'网站安装目录,如/laoy2.5/,根目录填写/即可
SitePath = "/"
Dim SiteAdmin
'后台管理目录
SiteAdmin = "Admin"
dim sitetitle
'网站名称
sitetitle = "老Y文章管理系统V2.5"
dim ishomeimg
'幻灯显示图片数量
ishomeimg = 5
dim sitetitle2
'首页副标题
sitetitle2 = "最简单的文章管理系统"
dim siteurl
'网站域名
siteurl = "127.0.0.1"
dim siteup
'上传目录
siteup = "UploadFiles"
dim sitekeywords
'关 键 字
sitekeywords = "老Y"
dim sitedescription
'网站描述
sitedescription = "老Y文章管理系统V2.4"
dim sitelx
'底部联系方式
sitelx = "Email:yw800@ 站长QQ:888888"
dim css
'默认风格
css = 3
dim menuimg
'菜单分隔字符
menuimg = "|"
dim rss
'站点rss功能
rss = 1
dim html
'网站显示模式
html = 2
dim sitetcp
'备案序号
sitetcp = "移ICP备10086号"
dim indexnum
'首页右下角热门文章数量
indexnum = 18
dim indexuser
'首页显示的会员数量
indexuser = 10
dim indexpg
'首页显示留言及评论数量
indexpg = 6
dim noticid
'公告栏目id
noticid = 5
dim isvote
'首页显示的投票id
isvote = 2
dim noticnum
'公告显示数量
noticnum = 5
dim isping
'文章是否显示评论
isping = 1
dim iszhaiyao
'文章是否显示摘要
iszhaiyao = 1
dim iswz
'文章是否显示加入网摘
iswz = 1
dim pingoff
'评论是否需要审核
pingoff = 1
dim bookoff
'留言是否需要审核
bookoff = 1
dim ishits
'内容页是否显示点击数
ishits = 1
dim isfrom
'内容页是否显示来源
isfrom = 1
dim mood
'文章是否显示心情投票
mood = 1
dim isauthor
'内容页是否显示作者
isauthor = 1
dim mouserimg
'文章是否启用鼠标缩放
mouserimg = 0
dim artlist
'文章列表页显示模式
artlist = 0
dim artlistnum
'文章列表每页显示记录
artlistnum = 10
dim pingnum
'评论表情个数
pingnum = 30
dim badword1
'正文脏话过滤
badword1 = "杂志=书"
dim userword
'禁止注册的字符
userword = "!,@,#,$,%,^,&,*,(,),{,},[,],|,\,.,/,\,?,`,~,',=,<,>,admin,管理,妈,操,游客,注册,屁,垃圾,你,测试,test"
dim moneyname
'积分名称
moneyname = "Y币"
dim killword
'前台禁止发布字符
killword = "你妈,女马,日你,操你,JB"
dim useroff
'是否启用会员系统
useroff = 1
dim userynoff
'会员注册是否要审核
userynoff = 1
dim useraddoff
'会员发表文章是否审核
useraddoff = 0
dim money1
'会员发表文章增加积分
money1 = 5
dim money2
'会员自己删除减少积分
money2 = 6
dim money3
'管理员删除文章减少积分
money3 = 5
dim yaopostgetime
'发表文章,评论等时间间隔(秒)
yaopostgetime = 15
dim isaspjpeg
'水印及缩略图开关
isaspjpeg = 1
dim fontsize
'水印文字大小
fontsize = 12
dim fontfamily
'水印文字字体
fontfamily = "宋体"
dim color1
'水印文字颜色
color1 = "FFFFFF"
dim color2
'文字背景颜色
color2 = "000000"
dim fonttext
'水印文字内容
fonttext = "www.
Dim version
version = "V2.5"
%>
我的conn.asp文件
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="Config.asp"-->
<!--#include file="Function.asp"-->
<%
dim conn,connstr,db
dim admintable
admintable="Yao_Admin" '管理员数据表名,默认表名Yao_Admin
db=SitePath&"data/"&DataName
on error resume next
Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)
conn.Open connstr
If Err Then
err.Clear
Set Conn = Nothing
Response.Write "<div style='margin:100px;font-size:14px;text-align:center'>数据库连接出错,请检查Inc/Config.Asp里的数据库名称及路径是否正确。</div>"
Response.End
End If
LaoYID=Request.Cookies("Yao")("ID")
LaoYName=Request.Cookies("Yao")("UserName")
LaoYPass=Request.Cookies("Yao")("UserPass")
If LaoYID<>"" and LaoYName<>"" and LaoYPass<>"" then
set rs4 = server.CreateObject ("adodb.recordset")
sql="select * from Yao_User where id="& LaoYRequest(LaoYID) &" and PassWord='"&CheckStr(LaoYPass)&"' and UserName='"&CheckStr(LaoYName)&"'"
on error resume next
rs4.open sql,conn,1,1
mymoney=rs4("UserMoney")
username=rs4("UserName")
dengjipic=rs4("dengjipic")
dengji=rs4("dengji")
UserPass=rs4("PassWord")
rs4.close
set rs4=nothing
If UserPass<>LaoYPass or username<>LaoYName Then
LaoYID=""
LaoYName=""
LaoYPass=""
Else
IsUser=1
End if
End if
Sub ShowAD(ID)
set rsad=conn.execute("select * from Yao_AD Where ID = "&ID&"")
If Not rsad.Eof Then
If rsad("yn")=1 then
Response.Write(laoy(rsad("Content")))
End if
End if
rsad.close
set rsad=nothing
End Sub
Sub Label(ID)
set rsLabel=conn.execute("select * from Yao_Label Where ID = "&ID&"")
If ID=2 then
Response.Write(" <li>P"&"o"&"w"&"e"&"r"&"e"&"d"&" b"&"y <b>"&"l"&"a"&"o"&"y"&"8"&"!"&" <a href=""ht"&"tp:"&"/"&"/"&"ww"&"w."&"l"&"a"&"o"&"y"&"8"&".c"&"n"" target=""_blank"">"&Version&"</a><b></li>"&rsLabel("Content")&"")
else
Response.Write(rsLabel("Content"))
End if
rsLabel.close
set rsLabel=nothing
End Sub
%>
谢谢大家的无私帮助!