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
    -----------------------------------------------------------------------------------------------------------------------


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

  • 相关阅读:
    HDU2059(龟兔赛跑)
    pat 1012 The Best Rank
    pat 1010 Radix
    pat 1007 Maximum Subsequence Sum
    pat 1005 Sign In and Sign Out
    pat 1005 Spell It Right
    pat 1004 Counting Leaves
    1003 Emergency
    第7章 输入/输出系统
    第六章 总线
  • 原文地址:https://www.cnblogs.com/zerogo/p/2209401.html
Copyright © 2011-2022 走看看