OBLOG Accesss 转SQL Server 常见问题及解决方法
我在想一个问题:如果博客用ACCESS数据库,能走多远?或者说,这样能为博客爱好者们提供更好的服务吗?这几乎是我的心病,昨天晚上要睡下时又想到这个问题,十分不爽,几乎爬起来转换数据库了。
我不确定自己能否修改成功,因为SQL数据库所用到的查询语句与ACCESS是有些差距的。好在以前有过修改经验,于是今天到公司的第一件事儿便是动手改代码。
打开数据库连接文件,读到一半开心的几乎跳起来:伟大的OBLOG已经提供了SQL数据库的连接代码,我需要做的只是改动几个参数。备份好源文件,修改了相关代码。战战兢兢的打开网页,居然打开了!
进入后台测试时,发现生成静态页面有问题,无法找到字段。相关代码如下:
if is_sqldata then
dim cmd,rs
Set cmd = Server.CreateObject(“ADODB.Command”)
Set Cmd.ActiveConnection=conn
Cmd.CommandText=”ob_calendar”
Cmd.CommandType=4
Cmd(“@logdate”)=logdate
Cmd(“@userid”)=user_id
set rs=cmd.Execute
set cmd=nothing
sql=”SELECT addtime,logfile from oblog_log WHERE datediff(n,addtime,getdate())>0 and userid=”&user_id
set rs=oblog.execute(sql)
else
sql=”SELECT addtime,logfile from oblog_log WHERE datediff(‘n’,'”&logdate&”‘,addtime)>0 and userid=”&user_id
set rs=oblog.execute(sql)
end if
修改办法:
if is_sqldata then
’dim cmd,rs
’Set cmd = Server.CreateObject(“ADODB.Command”)
’Set Cmd.ActiveConnection=conn
’Cmd.CommandText=”ob_calendar”
’Cmd.CommandType=4
’Cmd(“@logdate”)=logdate
’Cmd(“@userid”)=user_id
’set rs=cmd.Execute
’set cmd=nothing
sql=”SELECT addtime,logfile from oblog_log WHERE datediff(n,addtime,getdate())>0 and userid=”&user_id
set rs=oblog.execute(sql)
else
sql=”SELECT addtime,logfile from oblog_log WHERE datediff(‘n’,'”&logdate&”‘,addtime)>0 and userid=”&user_id
set rs=oblog.execute(sql)
end if
用等效查询替换一下而已,成功。开心:)
发日志时出现不能更新的错误。
代码如下:
if log_modiid>0 then
rs.open “select * from oblog_log where logid=”&log_modiid,conn,2,2
else
rs.open “select top 1 * from oblog_log”,conn,2,2
rs.addnew
修改办法:
if log_modiid>0 then
rs.open “select * from oblog_log where logid=”&log_modiid,conn,2,2
else
rs.open “select from oblog_log”,conn,2,2
rs.addnew
不知道这种办法有无不妥,但确实好用了。现在测试的是修改日志:)