zoukankan      html  css  js  c++  java
  • asp 收集的资料了,为了方便查阅。

    今天将之前收集到的资料逐步更新到这里。一部分为自己写的,多数为网上收集。

    06.06.07

    XP下安装装SQL2000企业版本

    办法如下:

      一.在SQL服务器的安装盘中找到MSDE这个目录,并且点击setup.exe安装它,过程简单直接下一步就OK了。

      二. 重启系统WINDOWSXP,这下就可以看到SQL服务的图标出现了。

    三. 再拿出SQL服务器版的安装光盘,直接安装客户端工具(这个不要多说吧?最简单的方法就是直接点击光盘根目录下的autorun.exe)

    根据提示安装,自检过程中知道系统不是SERVER版,会提示只安装客户端工具。(哈哈,服务端我已有了)

    四. 打开企业管理器,试用SA用户连一下看看,是不是发现SA用户登陆失败?因为你还没有与信任SQL SERVER连接相关联。还好这个只要对系统注册表稍加修改就可以啦:

    在运行中输入regedit打开注册表编辑器,找到[HKEY_LOCAL_MACHINESOFTWARE/MICROSOFT/MSSQLSERVER/MSSQLSERVER],这个项里面

    有一个键值LoginMode,默认下,值是1,现在将值改为2,重启电脑。

    五. 再打开企业管理,再连接试试,是不是OK了!
    ----------------------------------

    ASP 列出 Access 数据库表名 与 查询视图名 By Stabx 作用:
    列出已知 Access 数据库名中的数据库表与视图的名称
    shawl.qiu
    2006-5-30
    CODE:

    CODE:

    For Example: -----------------------/视图 between_
    表/--- buarticle
    表/--- buclass
    表/--- bunclass
    表/--- bureply
    表/--- butag
    -----------------------/视图 count_
    -----------------------/视图 count_union_1
    表/--- ctarticle
    表/--- ctclass
    表/--- ctglossary
    表/--- ctglossarysubcat
    表/--- ctglossarysubsubcat
    表/--- ctglossarysupercat
    表/--- ctnclass
    表/--- ctreply
    表/--- ctsearch
    表/--- cttag
    -----------------------/视图 date_query_by_month
    -----------------------/视图 distinct_year
    -----------------------/视图 group_by_gr
    -----------------------/视图 having_2
    -----------------------/视图 having_repeat_title
    -----------------------/视图 iif_1
    -----------------------/视图 inner_join_select_3
    -----------------------/视图 inner_join_select_4
    -----------------------/视图 inner_join-cascading2
    -----------------------/视图 isnull
    -----------------------/视图 select_
    -----------------------/视图 select_distinct
    -----------------------/视图 select_less_great
    -----------------------/视图 t3
    表/--- Ta
    表/--- tg
    表/--- ts
    表/--- ts1
    表/--- tscC
    表/--- tspic
    -----------------------/视图 v_column_siteall
    -----------------------/视图 v_column_subcat
    -----------------------/视图 v_column_supercat
    -----------------------/视图 v_page_article
    -----------------------/视图 v_page_class_ctclass
    -----------------------/视图 v_page_class_ctnclass
    -----------------------/视图 v_page_ctglossary
    -----------------------/视图 v_page_date
    -----------------------/视图 v_page_search_ctarticle
    -----------------------/视图 v_page_search_ctglossary

    <% '查找数据库中所有数据库表名, 与视图为查询类型的视图
         set rs=server.createobject("Adodb.connection")
             rs.open MM_conn_string
                 set rsSchema=rs.openSchema(20)'20 指定查找表,视图; 23 指定查找视图
                     while not rsSchema.EOF
                         if rsSchema("TABLE_TYPE")="TABLE" then '显示表名
                              response.write "表/--- "
                              response.write rsSchema("TABLE_NAME")
                              response.write  "<br>"   
                         end if
                         if rsSchema("TABLE_TYPE")="VIEW" then '显示视图名
                              response.write "-----------------------/视图 "
                              response.write rsSchema("TABLE_NAME")
                              response.write  "<br>"   
                         end if
                             rsSchema.movenext
                     wend
                         rsSchema.close
                 set rsSchema=nothing
             rs.close
         set rs=nothing 'code by shawl.qiu
    %>


    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=765067
    -----------------------------------------------

    1、自动增加字段需要重写。在access中经常使用的自动编号字段,导入到mssql后,他并不是自增型的int,需要手工设置,把导入后的自动编号字段的标识的“否”改为“是”,“种子”和“递增量”都为“1”,才能成为自动编号。


    2、所有的默认值都丢失了。主要是数字类型和日期类型


    3、所有now(),time(),date()要改成getdate()


    4、所有datediff('d', time1, time2)要改成datediff(day, time1, time2)


    5、所有datediff('ww', time1, time2)要改成datediff(week, time1, time2)


    6、所有datediff('d', time1, time2)要改成datediff(day, time1, time2)


    7、在mssql server中,有许多保留字,在access中是没有的,当你把数据导入到mssql的时候,问题就出来了。mssql在导入的时候,会自动给这些字段(包括数据库中的表名)加上“[字段名]”,因此,你必须修改你的脚本,把相应的字段名字(或者表名字)加上中括号,或改变字段名字为不是mssql的保留字


    8、在用access关于时间的使用,大家喜欢使用“select * from aaaa while time=&quot;&now()”这样的sql语句,然而,在mssql中没有“now()”这个函数,而是使用“getdate()”,所以,所有的sql语句中的“now()”必须换成“getdate()”。


    9、日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对
        SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。


    10、转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。有时用smalldatetime型时,转化失败,而用datetime型时,转化成功


    11、isnull(rowname)要改成rowname = null


    12、CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整


    13、备注类型要通过cast(column as varchar)来使用


    14、true/false类型不能使用,要变为1/0


    15、对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:"delete * from user where id=10",而对SQL SERVER数据库进行删除是用:"delete user where id=10".


    16、在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用


    17、在access的sql语句中的时间使用变量查询的时候,大家一般使用"select * from aaaa while time=#"&变量名&"#",在mssql中是不行的,他的语法是“select * from aaaa while time='"&变量名&"'"”。(意思是让你把日期时间变量当成字符串来使用,呵呵~~~)


    18、原来ASP里的“DELETE * FROM ……”要改为“DELETE FROM ……”


    19、有可能rs.update失败,修改成update 表名 set 字段=‘值’ 这样通过(遇到的情况,提示为:
    Microsoft OLE DB Provider for SQL Server 错误 '80040e38'

    乐观并发检查失败。已在此游标之外修改了该行。

    /Admin_ClassOrder.asp,行 164 )


    20、access里面除法可以使用"/"或者"/",MSSQL里面只能使用"/"

    21、请在SqlServer中建立主键
    (错误可能是:
    ADODB.Recordset 错误 '800a0cb3'

    当前 Recordset 不支持更新。这可能是提供者限制的,也可能是选定的锁定类型限制的。

    /admin/ema.asp,行97 )

    22、如果还有问题用:rs.open sql,conn,3,2试试

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=556166

    -----------------------------------------------

    如何把ACCESS转成SQL数据库
    [日期:2006-04-28] 来源:  作者:未知 [字体:大 中 小] 


    很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项

    一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的;

    二,转换的方法

    1,打开”控制面板“下”管理工具“中的”数据库源“;

    2,按”添加“添加一个新的数据源,在选择栏里选“Driver do microsoft Access (*.mdb)”,完成后将出现一个框,在“数据库源”里面输入你想写的名称,我取名叫“ABC”,说明不需要填,接着,按下面的选择,寻找你的数据库地址和选中(注意,请先备份自己的ACCESS数据库),然后确定。数据源在这里建好了,剩下转换了。

    3,打开SQL2000企业管理器,进入数据库,新建一个空的数据库“ABC”;

    4,选择新建立的数据库,按鼠标右键,选择“所有任务”下“导入数据”,按“下一步”继续;

    5,在数据库源下拉但中选择”Driver do microsoft Access(*.mdb)“,在”用户/系统DSN“中,选种你刚才添加的”ABC“,按 ”下一步“;

    6,“目的”不需要修改,选择服务器(一般下为自己的本机local,也可以选择服务器地址或者局域网地址,确定你的权限是否可以操作,),使用WINDOWS 身份验证指用自己的系统管理员身份操作,使用SQL身份操作验证可以用于网站的操作,推荐用后者;

    7,选上使用SQL身份操作验证后,填写你的用户名和密码,我自己选择的是系统默认号码sa,****,数据库选择刚新建的ABC,按下一步;

    8,这一步的两个单项选择,从数据源复制表和视图与用一条查询指令指定要传输的数据,选择前者,按下一步继续;

    9,这里将出现你自己ACCESS数据库的表,按全选后,下一步;

    10,DTS导入/导出向导,看立即运行被选中按下一步,

    11,按完成继续;

    12,这个步骤你将看到你的数据被导入SQL2000里面,当出现已经成功把XXX个表导入到数据库的字样,而且所有的表前面都有绿色的勾,就表示成功导入所有数据,如果中途出现问题或者表前面有红色的叉的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了.

    三,数据修改

    1,由于SQL2000里面没有自动编号,所以你的以自动编号设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的标示选择是,种子为1,增量为1,

    2,另外,ACCESS2000转换成SQL2000后,原来属性为是/否的字段将被转换成非空的bit,这时候你必须修改成自己想要的属性了;

    3,另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的.

    ACCESS转MS SQL数据库的几点经验

    1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!

    2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。

    3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:delete * from user where id=10,而对SQL SERVER数据库进行删除是用:delete user where id=10.

    4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。

    5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。

    ------------------------------------------------

    Request.ServerVariables是获取环境变量的ASP内置对象。用代码Request.ServerVariables("SCRIPT_NAME")的值就是当前执行的ASP页面的路径。例如,访问http://www.scat.com/aBc/test.asp(注意大小写!)时,Request.ServerVariables("SCRIPT_NAME")的值就是:“/aBc/test.asp“

    ------------------------------------------------

    来源为网络114最新网上购物系统,在资料中已经搜集。
    <!--#include file="top.asp"-->
    <%
     
     dim sort_id, sort_name, Nsort_id, Nsort_name
        dim totalPut  
        dim CurrentPage, TotalPages
      
            if request("sort_id")<>"" then
      sort_id=request("sort_id")
        else
      sort_id=0
        end if
     if request("sort_id")="" then
     sort_id=1
     end if
        if not isempty(request("page")) then
            currentPage=cint(request("page"))
        else
            currentPage=1
        end if
       
     dim order
     if request("order")<>"" then
         order=request("order")
      else
      order="time"
      end if
      'rs.close
        'else
     ' Nsort_id=0
     ' Nsort_name="分类"
       ' end if
     
      sql="select * from sort where sort_ID="&cstr(sort_id)
       rs.open sql,conn,1,1
     if not rs.eof then
     sort_name=rs("sort_name")
      end if
     rs.close
    %>

    <table width=778 border=0 align="center" cellpadding=0 cellspacing=0>
      <tbody>
      <tr>
        <td width=181 align="center" valign="top"><!--#include file="log.asp"-->
    <!--#include file="insearch.asp"-->   
    <!--#include file="insort.asp"--></td>
        <td  height=150 valign="top">
          <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" style="margin-bottom: 6" height="338">
            <tr bgcolor="#FFFFFF">
              <td height="338" colspan="2" align="center" valign="top">
                <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" style="margin-bottom: 6">
                  <tr>
                    <td height="100" colspan="2" bgcolor="#FFFFFF">
                      <div align="center"></div>
                      <table width="100%" height="5" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
                        <tr>
                            <td align="center">
    <%
      set ad=server.CreateObject("adodb.recordset")
      sql="select  * from logo where  sort="&request("sort_id")
      ad.open sql,conn,1,1
      do while not ad.eof
    %>
    <tr>
      <td align="center">
        <a href="<%=ad("url")%>"target="_blank"><img src="<%=ad("banner")%>" width="575" height="118" border="0"></a></td>
    </tr>
    <%
    ad.movenext
    loop
    ad.close
    %></td>
                        </tr>

                        <%set rs=server.createobject("adodb.recordset")
    sort_id=trim(request("sort_id"))
          if sort_id=empty then
              response.redirect "index.asp"
          end if
          
          page=request.querystring("page")
          if page="" then page=1
          if not(isnumeric(page)) then page=1
          if page<1 then page=1
          page=int(page)
         
    if Nsort_id<>0 then
     sql="select * from hw where Nsort_id="+cstr(Nsort_id)+" and sort_id="+cstr(sort_id)+"  order by hw_id desc"
    elseif sort_id<>0 then
     sql="select * from hw where sort_id="+cstr(sort_id)+" order by hw_id desc"
    else
     sql="select * from hw order by hw_id desc"
    end if

    if order="time" then
        sql="select * from hw where sort_id="+cstr(sort_id)+" order by hw_id desc"
     elseif order="price1" then
        sql="select * from hw where sort_id="+cstr(sort_id)+" order by hw_cash desc , hw_id desc"
     elseif order="price2" then
     sql="select * from hw where sort_id="+cstr(sort_id)+" order by hw_cash asc , hw_id desc"
     end if
     
      
          rs.open sql,conn,3,3
          if rs.eof then
              response.write "你所选的类别没有商品"
              response.end
          else
              rs.pagesize=16
              totalrec=rs.recordcount
              totalpage=rs.pagecount
              if page>totalpage then page=totalpage
              rs.absolutepage=page
              rs.cachesize=rs.pagesize
              %>
                        <tr>
                          <td  height="2">
    <div align="center">
    <table width="575" border="0" bgcolor="#F7F7F7">
                                      <tr>
                                        <td style="border-left- 1px; border-right- 1px; border-top: 1px solid #C8C8C8; border-bottom: 1px solid #C8C8C8" bgcolor="#F7F7F7" height="25"><div align="left">产品 <b><%=sort_name%></b>,共 <b><%=totalrec%></b> 件,这是第 <%=(page-1)*16+1%>--<%if page+1<=totalpage then%><%=page*16%><%else%><%=totalrec%><%end if%> 件</div></td>
                                      </tr>
                                    </table>
                                    </div>
                                    </td>
                        </tr>
                        <tr>
                          <td width="100%">
     <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0">
                                                        <tr>
    <%i=0
              do while not rs.eof and (i<rs.pagesize)
              i=i+1
             %>
                                                          <td width="25%" height="134" align="left" bgcolor="#FFFFFF">
                  <div align="center">
     <table width="100" border="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111">
                         
                          <tr>
                            <td align="center" width="100" height="100">
                            <a target="_blank" href="views.asp?hw_id=<%=rs("hw_id")%>">
                            <img border="0" src="<%=rs("hw_pic")%>" width="90" height="90"  style="border: 1px solid #C0C0C0"></a></td>
                          </tr> <tr>
                            <td valign="bottom" align="center" height="20"><b><%=rs("hw_name")%></b></td>
                          </tr>
          <tr>
                            <td align="center">市场价:<s><%=rs("pifa")%></s>元</td>
                          </tr>
          <tr>
                            <td align="center">会员价:<font color="#D03430"><%=rs("hw_cash")%></font>元</td>
                          </tr>
         
                          <tr>
                            <td align="center">积分:<%=rs("isbn")%></td>
                          </tr>
                          <tr>
                            <td valign="top" align="center">
                            <a target="_blank" href="views.asp?hw_id=<%=rs("hw_id")%>"><img border="0" src="img/xiang.gif"></a>
                            <a href='javascript:openbag(<%=rs("hw_id")%>)'><img border="0" src="img/buy.gif"></a></td>
                          </tr>
                          </table>
    </div>
    </td>
    <%
      if (i mod 4=0) and i>=4 then
    %>
                                                        </tr>
                 <tr>
                           <%
     end if
    rs.movenext
    loop
    rs.close
    %>
                                                        </tr>
                                                      </table></td>
                        </tr>
                        <tr>
                          <td width="100%" height="20">
                            <div align="center"></div>
                          </td>
                        </tr>
                        <tr>
                          <td width=478 height="23">
                            <p align="right">第<%=page%>页/共<%=totalpage%>页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <%if page-1>0 then%><a href="sort.asp?sort_id=<%=sort_id%>&page=<%=page-1%>&order=<%=order%>">上一页</a>
                              <%else%>
                              上一页
                              <%end if%>
                               
                              <%if page+1<=totalpage then%>
                              <a href="sort.asp?sort_id=<%=sort_id%>&amp;page=<%=page+1%>&order=<%=order%>">下一页</a>
                              <%else%>
                              下一页
                              <%end if
            end if%>
                              </font></p>
                          </td>
                        </tr>
                      </table>
                    </td>
                  </tr>
                </table>
              </td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_jumpMenu(targ,selObj,restore){ //v3.0
      eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
      if (restore) selObj.selectedIndex=0;
    }
    //-->
    </script>
    <!--#include file="copy.asp"-->

    -------------------------------------------------

    <!--index.htm---------------------->
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>

    <body>
    <table width="770" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td><form name="form1" method="post" action="send.asp">
    <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#CCFFFF">
    <tr>
    <td height="20"><div align="center">发送消息</div></td>
    </tr>
    <tr>
    <td><div align="center">
    <textarea name="msg" cols="100" rows="6"></textarea>
    </div></td>
    </tr>
    <tr>
    <td><div align="center">
    <input type="submit" name="Submit" value="Submit">
    <input type="reset" name="Submit2" value="Reset">
    </div></td>
    </tr>
    </table>
    </form></td>
    </tr>
    </table>
    </body>
    </html>

    '//send.asp
    <%
    function chan_time(shijian)'转换日期时间函数
    s_year=year(shijian)
    if len(s_year)=2 then s_year="20"&s_year
    s_month=month(shijian)
    if s_month<10 then s_month="0"&s_month
    s_day=day(shijian)
    if s_day<10 then s_day="0"&s_day
    s_hour=hour(shijian)
    if s_hour<10 then s_hour="0"&s_hour
    s_minute=minute(shijian)
    if s_minute<10 then s_minute="0"&s_minute
    chan_time=s_year & s_month & s_day & s_hour & s_minute
    end function

    function chan_data(shijian) '转换日期时间函数
    s_year=year(shijian)
    if len(s_year)=2 then s_year="20"&s_year
    s_month=month(shijian)
    if s_month<10 then s_month="0"&s_month
    s_day=day(shijian)
    if s_day<10 then s_day="0"&s_day
    chan_data=s_year & s_month & s_day
    end function
    function chan_file(shijian)'转换日期时间函数
    s_month=month(shijian)
    if s_month<10 then s_month="0"&s_month
    s_day=day(shijian)
    if s_day<10 then s_day="0"&s_day
    s_hour=hour(shijian)
    if s_hour<10 then s_hour="0"&s_hour
    s_minute=minute(shijian)
    if s_minute<10 then s_minute="0"&s_minute
    s_ss=second(shijian)
    if s_ss<10 then s_ss="0"&s_ss
    chan_file = s_month & s_day & s_hour & s_minute & s_ss
    end function
    top="<html><head><title>news</title></head><body>"
    botom="</body></html>"
    msg=request.Form("msg")
    msg=replace(msg,vbcrlf,"")
    msg=replace(msg,chr(9),"")
    msg=replace(msg," ","&nbsp;")
    msg=replace(msg,"","<br>")
    msg=replace(msg,"/n","<br>")
    msg=top&msg&botom
    Set fs=Server.CreateObject("Scripting.FileSystemObject")
    all_tree2=server.mappath("news")&"/"&chan_data(now)
    if (fs.FolderExists(all_tree2)) then'判断今天的文件夹是否存在
    else
    fs.CreateFolder(all_tree2)
    end if
    pass=chan_file(now)
    randomize '使用系统计时器来初始化乱数产生器
    pass=rnd(pass)
    pass=get_pass(pass)
    pass=left(pass,10)
    file1=pass
    files=file1&".txt"
    filez=all_tree2&"/"&files

    set ts = fs.createtextfile(filez,true) '写文件
    for z=1 to len(msg)
    write_now=mid(msg,z,1)
    ts.write(write_now)
    next
    ' ts.writeline(all_msg)
    ts.close
    set ts=nothing '文件生成

    if err.number<>0 or err then%>
    <script language="javascript">
    alert("不能完成")
    </script>
    <%else%>
    <script language="javascript">
    alert("已完成")
    history.back();
    </script>
    <%end if
    Set MyFile = fs.GetFile(filez)
    all_tree2=server.mappath("news")&"/"&chan_data(now)
    if (fs.FolderExists(all_tree2)) then
    else
    fs.CreateFolder(all_tree2)
    end if
    MyFile.name= left(MyFile.name,len(MyFile.name)-4)&".htm"
    set MyFile=nothing
    set fs=nothing
    set fdir=nothing
    function get_pass(pass)

    pass=replace(pass," ","")
    pass=replace(pass," ","")
    pass=replace(pass,"-","")
    pass=replace(pass," ","")
    pass=replace(pass,":","")
    pass=replace(pass,".","")
    pass=replace(pass,"+","")
    pass=replace(pass,"_","")
    pass=replace(pass,"<","")
    pass=replace(pass,">","")
    pass=replace(pass,"!","")
    pass=replace(pass,"@","")
    pass=replace(pass,"#","")
    pass=replace(pass,"$","")
    pass=replace(pass,"%","")
    pass=replace(pass,"^","")
    pass=replace(pass,"&","")
    pass=replace(pass,"*","")
    pass=replace(pass,"(","")
    pass=replace(pass,")","")
    pass=replace(pass,"=","")
    pass=replace(pass,"/","")
    pass=replace(pass,"/","")
    pass=replace(pass,"|","")
    get_pass=pass

    end function

    %>


    '//

    把send.asp和index.htm放到你的ASP目录下,然后再建一个news文件夹。打开浏览器,在地址栏里输入:http://你的机器名/你的ASP虚拟目录名/index.html输入文字,然后提交,OK!看看你的ASP目录里新建的news文件夹里是不是多了个新的文件夹,而且是以当前日期命名的。里面有你刚刚提交的文字,看看是不是生成了HTML文件。怎么样,你可以在此基础上做个简单的新闻发布系统。。
    ------------------------------------------------

    FSO生成静态HTML文件的时候替换模板标签一直是一个很麻烦的问题,至少我是这么认为的,还要别外做一个模板,麻烦!,我今天看见有一个方法可以解决这个问题

    如一个正常的index.asp页面,并且用ASP代码调出数据库中的内容,另建一个makehtml.asp的页面,加入一个textarea域,假设为name="body",将index.asp在textarea里调出来,如:
    <textarea name="body"><!--#include file="index.asp"--></textarea>,将这个textarea包含在表单中,在接收表单页用创建FSO对象,如下生成index.html文件!

    <%
    filename="../index.html"
    if request("body")<>"" then
    set fso = Server.CreateObject("Scripting.FileSystemObject")
    set fout = fso.CreateTextFile(server.mappath(""&filename&""))
    fout.write request.form("body")
    fout.close
    set fout=nothing
    set fso=nothing
    end if
    %>

    这样index.html文件就生成了,连模板都用不着,只要将正常情况下使用的ASP文件读取到textarea里就可以了,目前尚未发现问题!当然前提是服务器要支持FSO

    ------------------------------------------------

    一、先介绍一下什么是存储过程
    存储过程是利用SQL Server所提供的Tranact-SQL语言所编写的程序。Tranact-SQL语言是SQL Server提供专为设计数据库应用程序的语言,它是应用程序和SQL Server数据库间的主要程序式设计界面。它好比Oracle数据库系统中的Pro-SQL和Informix的数据库系统能够中的Informix-4GL语言一样。这类语言主要提供以下功能,让用户可以设计出符合引用需求的程序:
    1)、变量说明
    2)、ANSI兼容的SQL命令(如Select,Update….)
    3)、一般流程控制命令(if…else…、while….)
    4)、内部函数

    二、存储过程的书写格

    CREATE PROCEDURE [拥有者.]存储过程名[;程序编号]
    [(参数#1,…参数#1024)]
    [WITH
    {RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}
    ]
    [FOR REPLICATION]
    AS 程序行

    其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数
    (SQL Server 7.0以上版本),参数的使用方法如下:

    @参数名 数据类型 [VARYING] [=内定值] [OUTPUT]

    每个参数名前要有一个“@”符号,每一个存储过程的参数仅为该程序内部使用,参数的类型除了IMAGE外,其他SQL Server所支持的数据类型都可使用。
    [=内定值]相当于我们在建立数据库时设定一个字段的默认值,这里是为这个参数设定默认值。[OUTPUT]是用来指定该参数是既有输入又有输出值的,也就是在调用了这个存储过程时,如果所指定的参数值是我们需要输入的参数,同时也需要在结果中输出的,则该项必须为OUTPUT,而如果只是做输出参数用,可以用CURSOR,同时在使用该参数时,必须指定VARYING和OUTPUT这两个语句。

    例子:
    CREATE PROCEDURE order_tot_amt @o_id int,@p_tot int output AS
    SELECT @p_tot = sum(Unitprice*Quantity)
    FROM orderdetails
    WHERE ordered=@o_id

    例子说明:
    该例子是建立一个简单的存储过程order_tot_amt,这个存储过程根据用户输入的定单ID号码(@o_id),由定单明细表(orderdetails)中计算该定单销售总额[单价(Unitprice)*数量(Quantity)],这一金额通过@p_tot这一参数输出给调用这一存储过程的程序

    三、在SQL Server中执行存储过程

    在SQL Server的查询分析器中,输入以下代码:
    declare @tot_amt int
    execute order_tot_amt 1,@tot_amt output
    select @tot_amt

    以上代码是执行order_tot_amt这一存储过程,以计算出定单编号为1的定单销售金额,我们定义@tot_amt为输出参数,用来承接我们所要的结果

    四、在ASP中调用存储过程

    <!--           必须加载adovbs.inc文件,否则将出错        -->
    <!--#include file="adovbs.inc"-->
    <%
    dim objCnn
    dim objCmd
    dim Rs
    const o_id=112

    ’-----建立Connection对象----------
    set objCnn=Server.CreateObject("Adodb.connection")
    objCnn.Open "driver={sql server};server=localhost;uid=sa;pwd=cncanet;database=check;"
    ’-----建立Command对象-----------
    set objCmd=Server.CreateObject("Adodb.Command")
    objCmd.ActiveConnection=objCnn
    objCmd.CommandText="order_tot_amt" ’指定存储过程名称
    objCmd.CommandType=adCmdStoredProc ’其为Stored Procedure
    ’-----准备stored procedure 的参数-------
    objCmd.Parameters.Append _
    objCmd.CreateParameter("o_id",adInteger,adParamInput,,o_id)
    objCmd.Parameters.Append _
    objCmd.CreateParameter("p_tot",adBigInt,adParamOutput,,0)
    ’-----执行存储过程----------------------
    objCmd.Execute

    ’-----输出参数以及处理结果--------------
    for each parm in objCmd.Parameters
    Response.Write parm.name &"="& trim(parm) &"<br>"
    next
    %>

    -------------------------------------------------

    一般用JS检验用户输入的内容是否合法的时候都是用alert("您的输入不合法")此效果来提示用户输入的内容不合法,今天偶尔想到用DHTML里的innerHTML或innertText来提示也是满有个性的一种效果,不妨一用。
    测试代码如下:
    <script>
    function chk(){
       if(document.form1.uname.value=="")
         {uname1.innerHTML="<font color=red>请输入用户名</font>"
         return false;}
       else{
       uname1.innerHTML=""}
      
       if(document.form1.pwd.value=="")
         {pwd1.innerHTML="<font color=red>请输入密码</font>"
          return false;}
       else{
       pwd1.innerHTML=""}
    }
     
    </script>
    <FORM name="form1" METHOD=POST ACTION="test.asp?a=1" onsubmit="return chk()">
    用户名:<INPUT TYPE="text" NAME="uname"><span id="uname1"></span><br></br>
    密 &nbsp;&nbsp;码:<INPUT TYPE="text" NAME="pwd"><span id="pwd1"></span>
    <br><INPUT TYPE="submit" value="提交"></FORM>

    Ctrl+A,Ctrl+C,Ctrl+V,运行一下看看效果吧


    这个不会弹出JS窗口,也不会到下一页,只是在本页。和csdn登陆效果一样得
    ------------------------------------------------

    一.怎样删除一个表中某个字段重复的列呀,举个例子
    表[table1]
    id    name
    1 aa
    2 bb
    3 cc
    1 aa
    2 bb
    3 cc
    我想最后的表是这样的
    id    name
    1 aa
    2 bb
    3 cc
    回答:
    将记录存到临时表#t中,重复的记录只存一条,然后将临时表#t中的记录再存回原表中,注意“select distinct id,class,name”要包含你需要的所有字段,否则有些字段就被删掉了。
    在查询管理器里执行下面代码:
    -----------------------------
    SELECT DISTINCT id,, name
    INTO #t
    FROM table1 DELETE table1
              INSERT
            INTO table1
                      SELECT *
                    FROM #t
    ------------------------------
    二.找出既会VB又会PHP的人
    表是这样的:
    ID 员工 技能
    1 1 VB
    2 1 PHP
    3 1 ASP
    4 2 PHP
    5 3 ASP
    6 4 VB
    7 4 ASP
    要从这张表中找出既会VB又会PHP的人,SQL该怎么写啊?
    回答:
    ---------------------------------------------------------------------------------------------
    SELECT 员工 FROM [Table] WHERE 员工 IN(SELECT 员工 FROM [Table] WHERE 技能='VB' ) AND 技能='PHP'
    ----------------------------------------------------------------------------------------------
    三.数据库合并问题
    access里的两个表,想让两个表的内容合并

    表[a]结构如下:
    [id]        编号        自动编号
    [name]      名称        文本
    [price]     价格        数字
    [guige]     规格        文本
    [changjia]  生产厂家    文本
    [baozhuang] 包装        文本
    [danwei]    单位        文本
    共有900条记录,除了id和name字段,其他均可以为空

    表[b]结构如下:
    [id]        编号        自动编号
    [name]      名称        文本
    [price]     价格        数字
    [changjia]  生产厂家    文本
    [danwei]    单位        文本
    [xingzhi]   性质        文本
    共有800条记录,除了id和name字段,比表[a]少几个字段,但还多一个[xingzhi]的字符安其它均可以为空

    现在想生成一个新表[c],结构如下,而且内容是两个表的内容之和,
    [id]        编号        自动编号
    [name]      名称        文本
    [price]     价格        数字
    [guige]     规格        文本
    [changjia]  生产厂家    文本
    [baozhuang] 包装        文本
    [danwei]    单位        文本
    [xingzhi]   性质        文本

    用sql语句也可以,手工操作也好,xml也好,别管怎么着吧,怎么实现呀,哥们要郁闷坏了,真要让我们再输入800条记录,我就挂了,
    回答:
    1.这样
    -----------------------------
    insert into c(id,name,.....)
    select id,name,.....
    from a
    insert into c(id,name,.....)
    select max(id)+1,name,.....
    from b
    ------------------------------
    2.更正:
    如果直接在查询分析器里执行:
    -------------------------------
    insert into c(name,.....)
    select name,.....
    from a
    insert into c(name,.....)
    select name,.....
    from b
    --------------------------------
    3.用union方法
    ---------------------------------
    insert into [c] ([id] ,编号,自动编号)
    select [id],编号,自动编号 from [a]
    union
    select [id],编号,自动编号 from [b]
    -----------------------------------
    4.asp的解决办法
    ------------------------------------------------------------
    <% '循环检测a表
    Set rs = Server.CreateObect("ADODB.RECORDSET")
          rs.open "select * from a order by id",conn,1,1
          Do while not rs.eof
              Call actAdd(rs("name"))    '调用像b表添加内容的函数!
          rs.MoveNext
          Loop
    rs.Close
    Set rs = Nothing

    Sub actAdd(txt)
    Dim ts, sql
    sql = "insert into b(name) values('"& txt &"')"
    Set ts = Conn.Execute(sql)
          ts.Close
    Set ts = Nothing
    end Sub
    %>
    ------------------------------------------------------------------
    5.asp的解决办法
    -----------------------------------------------------------------------------------
    <%
    dim arr_temp1,arr_temp2,arr_data
    set rs=conn.execute("select id,name,price,guige,changjia,baozhuang,danwei from a")
    arr_temp1=rs.getrows
    rs.close
    set rs=nothing

    set rs=conn.execute("select id,name,price,guige,changjia,danwei,xingzhi from b")
    arr_temp2=rs.getrows
    rs.close
    set rs=nothing

    rem 开始处理
    redim arr_data(ubound(arr_temp1,2)+ubound(arr_temp2,2),7)
    rem 把两个数组的内容复制进来
    这一部分自己写了做两个循环
    然后再存进数据库
    %>
    ---------------------------------------------------------------------------------------
    最后转一些经典的SQL语句:
    1.蛙蛙推荐:一些精妙的SQL语句
    -----------------------------------------------------------------------------------------------------------------------
    说明:复制表(只复制结构,源表名:a 新表名:b)

    SQL: select * into b from a where 1<>1

    说明:拷贝表(拷贝数据,源表名:a 目标表名:b)

    SQL: insert into b(a, b, c) select d,e,f from b;

    说明:显示文章、提交人和最后回复时间

    SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

    说明:外连接查询(表名1:a 表名2:b)

    SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

    说明:日程安排提前五分钟提醒

    SQL:  select * from 日程安排 where datediff('minute',f开始时间,getdate())>5

    说明:两张关联表,删除主表中已经在副表中没有的信息

    SQL: 

    delete from info where not exists ( select * from infobz where info.infid=infobz.infid )

    说明:--

    SQL: 

    SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE

      FROM TABLE1,

        (SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE

            FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND

                    FROM TABLE2

                  WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X,

                (SELECT NUM, UPD_DATE, STOCK_ONHAND

                    FROM TABLE2

                  WHERE TO_CHAR(UPD_DATE,'YYYY/MM') =

                        TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') &brvbar;&brvbar; '/01','YYYY/MM/DD') - 1, 'YYYY/MM') ) Y,

            WHERE X.NUM = Y.NUM (+)

              AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND ) B

    WHERE A.NUM = B.NUM

    说明:--

    SQL: 

    select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名称='"&strdepartmentname&"' and 专业名称='"&strprofessionname&"' order by 性别,生源地,高考总成绩

    说明:

    从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源)

    SQL:

    SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') AS telyear,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) AS JAN,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) AS FRI,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) AS MAR,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) AS APR,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) AS MAY,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) AS JUE,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) AS JUL,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) AS AGU,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) AS SEP,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) AS OCT,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) AS NOV,

          SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) AS DEC

    FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration

            FROM TELFEESTAND a, TELFEE b

            WHERE a.tel = b.telfax) a

    GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy')

    说明:四表联查问题:

    SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c  inner join d on a.a=d.d where .....

    说明:得到表中最小的未使用的ID号

    SQL:

    SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID

     FROM  Handle

    WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)
    -----------------------------------------------------------------------------------------------------------------------
    2.删除重复数据
    -----------------------------------------------------------------------------------------------------------------------
    一、具有主键的情况
    a.具有唯一性的字段id(为唯一主键)
    delete table
    where id not in
    (
    select max(id) from table group by col1,col2,col3...
    )
    group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,
    那么只要col1字段内容相同即表示记录相同。

    b.具有联合主键
    假设col1+','+col2+','...col5 为联合主键
    select * from  table where col1+','+col2+','...col5 in (
      select max(col1+','+col2+','...col5) from table
    where having count(*)>1
    group by col1,col2,col3,col4
    )
    group by 子句后跟的字段就是你用来判断重复的条件,
    如只有col1,那么只要col1字段内容相同即表示记录相同。

    c:判断所有的字段
      select * into #aa from table group by id1,id2,....
      delete table
      insert into table
      select * from #aa

    二、没有主键的情况

    a:用临时表实现
    select identity(int,1,1) as id,* into #temp from ta
    delete #temp
    where id not in
    (
      select max(id) from # group by col1,col2,col3...
    )
    delete table ta
    inset into ta(...)
       select ..... from #temp

    b:用改变表结构(加一个唯一字段)来实现
    alter table 表 add  newfield int identity(1,1)
    delete 表
    where newfield not in
    (
    select min(newfield) from 表 group by 除newfield外的所有字段
    )

    alter table 表 drop column newfield
    -----------------------------------------------------------------------------------------------------------------------


    -------------------------------------------------

  • 相关阅读:
    关于TCP/IP协议栈
    关于java socket
    批处理的高吞吐率和高延迟的解释
    关于Xmanager使用问题的总结
    关于Storm Stream grouping
    django url 传递多个参数
    多线程 python threading 信号量/递归锁
    多线程 python threading 简单锁/互斥锁
    django 1.9 wsgi + nginx
    django models ForeignKey Many-to-ManyField 操作
  • 原文地址:https://www.cnblogs.com/zerogo/p/2209401.html
Copyright © 2011-2022 走看看