zoukankan      html  css  js  c++  java
  • 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
    %>


  • 相关阅读:
    入门学习嵌入式260期手把手配套视频7个项目实战送书
    使用from 的setTimeOut方法实现定时关闭Form
    C#面试题
    《JS语法字典》网友总结
    简单SQL语句小结
    面试前的简历
    Hello World的17种写法(C#)(转贴)
    张芸京 偏爱
    关于我对.setTmp()的理解及应用
    VS 2005使用技巧
  • 原文地址:https://www.cnblogs.com/AloneSword/p/2237616.html
Copyright © 2011-2022 走看看