asp——奇思妙想 & 困惑

这几天为学校做了几个网站,发现一个问题,有一些数据库(大部分是Access的,还有一些MSql的)在设计时出现了问题,造成了数据库里面的很多内容是冗余的,所以需要对数据库进行清理。所以就开始写了一个asp的文件CleanData.asp(代码见后文)。

关键问题在于数据库的问题,我本来在我的机器上有测试的数据,但是我需要修改网络上的数据,而我们学校为了安全,校园网的ftp不开,要更新网络的跑道网络不去更新数据,很麻烦的。

所以我就想,能不能在我本地使用文件访问远程的数据库了,进行远程操作呢?

我开始没有注意,在写代码时发现了这个东西:

objConn.ConnectionString

其中我用"Provider=Microsoft.Jet.oledb.4.0;Data  Source =" &  DataSourcePath

来连接,写到这得时候,我突然想到DataSourcePath的问题,我可不可以设置为远程的地址呢?比如:http://www.xxx.com/data.mdb

我刚才测试了一下,失败了!但是我还是不甘心,感觉到好像可以?等明天再看看,今天记录以下!

源码:

<!--#include file="Common/WebConfig.asp" -->
<!--#include file="Common/clsmain.asp" -->
<%
 dim action,datatype
 action=lcase(trim(request.QueryString("action")))
 datatype=lcase(trim(request.Form("datatype")))
 if action="clear" then
  call cleardata(datatype)
 end if
 
 %>
<form name="form1" method="post" action="?action=clear">
  <table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
      <td><div align="right">选择清除对象: </div></td>
      <td><label>
        <div align="left">
          <select name="datatype">
            <option value="0">一级分类</option>
            <option value="1">二级分类</option>
            <option value="2">新闻内容</option>
            <option value="3">全部</option>
          </select>
          </div>
      </label></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td colspan="2" rowspan="2">&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><label>
        <div align="center">
          <input type="submit" name="Submit" value="确定">
          </div>
      </label></td>
      <td><label>
        <div align="center">
          <input type="reset" name="Submit2" value="取消">
          </div>
      </label></td>
      <td>&nbsp;</td>
    </tr>
  </table>
</form>


<%sub cleardata(j)
 Dim dsj
 Set dsj=New clsDSJ
 dsj.debug=true
 IF NOT dsj.Debug Then ON ERROR RESUME NEXT
 dsj.ClientConnected
  
 dim str(3),msg
 str(0)="DELETE dsj_catalog.* " & _
   " FROM dsj_catalog " & _
   " WHERE " & _
      " catalogid NOT IN (SELECT parentid FROM dsj_class)"
 str(1)="DELETE dsj_class.* " & _
   " FROM dsj_class " & _
   " WHERE " & _
      " parentid NOT IN (SELECT catalogid FROM dsj_catalog)"
 str(2)="DELETE dsj_news.* " & _
   " FROM dsj_news " & _
   " WHERE " & _
      " classid NOT IN (SELECT classid FROM dsj_class)"
 
 dim conn,cmd
 set conn=server.CreateObject("adodb.Connection")
 conn.ConnectionTimeOut=15
 'conn.ConnectionString="Provider=Microsoft.Jet.oledb.4.0;data source=" & Server.MapPath(dbFolder & DataBase)
 dim remoteDB
 remoteDB="http://www.xxx.cn/database.mdb"
 conn.ConnectionString="Provider=Microsoft.Jet.oledb.4.0;data source=" & remoteDB
 conn.open()
 
 conn.begintrans()
 
 set cmd=server.CreateObject("ADODB.command")
 cmd.commandtimeout=15
 cmd.activeConnection=conn
 cmd.commandtype=1
 
 dim i
 for i=0 to 2
  if j=3 then j=i '保证全部执行
  cmd.commandText=str(j)
  cmd.execute()
  if (j<>3 and j<>i) then exit for '确保这里只执行一次
 next
 
 if conn.errors.count=0 then
  conn.committrans()
  msg="成功执行"
 else
  conn.rallbacktrans()
  msg="发生错误"
 end if
 
 dsj.alert(msg)

 set dsj=nothing
end sub
%>

 


上一篇:java线程学习5——线程同步之同步方法


下一篇:环境搭建 | Python 数据可视化库 Matplotlib 快速入门之一