<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我的人生路  
    日歷
    <2005年7月>
    262728293012
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456
    統計
    • 隨筆 - 74
    • 文章 - 57
    • 評論 - 7
    • 引用 - 0

    導航

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    顏色

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     

    2005年7月14日

    在java算法(Scott robert ladd)中看到快速傅立葉變換,講的很詳細,摘錄下來跟大家分享!
    以下正文:
    FFT或許是已知的最有效的算法,他應用范圍廣。從信號的處理到數據壓縮到地震分析和圖形放大,FFT通過領域間的信息轉換
    提供了一個強有力的工具,本節講討論FFT如何改進多項式乘法的性能:
     到目前為止,我用系數形式表示多項式,但有些應用程序最適合用point-value形式表示多項式,任何多項式都可被n個點值
     對來表示,這里,value是多項式在給定點point的值,許多數學應用要使用FFT實現點值和系數之間的快速變換。
        兩個多項式A和B快速相乘的過程如下:
     1,用同一組值把A和B從十形式轉換為點值形式pA和pB。
     2。pA和pB對應的點值相乘,得到pC。
     3。對pC進行插值得到系數多項式C,他等于A乘上B。
    表面上看,上述算法比在mul中使用之際相乘并不高效--卻更復雜,選擇合適的計算值可以使點-值乘法非常快。

    public class PolynomialFFTextends polynomial
    {
     //utility field
     final protected static Complex p|2|=new Complex(0.0D,6.283185307179586D);

     //utility methods
     protected static int log2(int n)
     {
      int x=1;
      int c=0;
      while(true)
      {
       if (x>=n) break;
       ++c;
       x<<=1;
       if (x==0) break;
       
      }
      return c;
     }
     protected static int FlipBits(int k,int bits)
     {
      int lm=1<<(bits-1);
      int rm=1;
      int r=0;
      while (lm != 0)
      {
       if ((k&rm)!=0)
       {
        r|=lm;
        lm>>=1;
        rm<<=1;
       }
      }
      return r;
     }
    };

    //increase degree to power of two
    protected static PolynomialFFT stretchFFT(PolynomialFFT p)
    {
     int n=1;
     int d=p.m_nDegree;
     while(true)
     {
      if (d<=n) break;
      n<<=1;
      if (n==0)
      {
       throw new ArithmeticException("StretchFFT failed");
      }
      n<<=1;
      return new PolynomialFFT(p.stretch(n));
     }
    }

    //待續

    posted @ 2006-02-16 10:16 一天一點愛戀 閱讀(1091) | 評論 (0)編輯 收藏
     

    ping命令詳解

            對于Windows下ping命令相信大家已經再熟悉不過了,但是能把ping的功能發揮到最大的人卻并不是很多,當然我也并不是說我可以讓ping發揮最大的功能,我也只不過經常用ping這個工具,也總結了一些小經驗,現在和大家分享一下。
    現在我就參照ping命令的幫助說明來給大家說說我使用ping時會用到的技巧,ping只有在安裝了TCP/IP協議以后才可以使用:

         Options:


    -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
    不停的ping地方主機,直到你按下Control-C。
    此功能沒有什么特別的技巧,不過可以配合其他參數使用,將在下面提到。

    -a Resolve addresses to hostnames.
    解析計算機NetBios名。
    示例:C:\>ping -a 192.168.1.21
    Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
    Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
    Ping statistics for 192.168.1.21:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
    從上面就可以知道IP為192.168.1.21的計算機NetBios名為iceblood.yofor.com。


    -l size Send buffer size.
    定義echo數據包大小。
    在默認的情況下windows的ping發送的數據包大小為32byt,我們也可以自己定義它的大小,但有一個大小的限制,就是最大只能發送65500byt,也許有人會問為什么要限制到65500byt,因為Windows系列的系統都有一個安全漏洞(也許還包括其他系統)就是當向對方一次發送的數據包大于或等于65532時,對方就很有可能擋機,所以微軟公司為了解決這一安全漏洞于是限制了ping的數據包大小。雖然微軟公司已經做了此限制,但這個參數配合其他參數以后危害依然非常強大,比如我們就可以通過配合-t參數來實現一個帶有攻擊性的命令:(以下介紹帶有危險性,僅用于試驗,請勿輕易施于別人機器上,否則后果自負)
    C:\>ping -l 65500 -t 192.168.1.21
    Pinging 192.168.1.21 with 65500 bytes of data:
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
    Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
    ………………
    這樣它就會不停的向192.168.1.21計算機發送大小為65500byt的數據包,如果你只有一臺計算機也許沒有什么效果,但如果有很多計算機那么就可以使對方完全癱瘓,我曾經就做過這樣的試驗,當我同時使用10臺以上計算機ping一臺Win2000Pro系統的計算機時,不到5分鐘對方的網絡就已經完全癱瘓,網絡嚴重堵塞,HTTP和FTP服務完全停止,由此可見威力非同小可。

    r count Record route for count hops.
    在“記錄路由”字段中記錄傳出和返回數據包的路由。
    在一般情況下你發送的數據包是通過一個個路由才到達對方的,但到底是經過了哪些路由呢?通過此參數就可以設定你想探測經過的路由的個數,不過限制在了9個,也就是說你只能跟蹤到9個路由,如果想探測更多,可以通過其他命令實現,我將在以后的文章中給大家講解。以下為示例:
    C:\>ping -n 1 -r 9 202.96.105.101 (發送一個數據包,最多記錄9個路由)


    Pinging 202.96.105.101 with 32 bytes of data:


    Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
    Route: 202.107.208.187 ->
    202.107.210.214 ->
    61.153.112.70 ->
    61.153.112.89 ->
    202.96.105.149 ->
    202.96.105.97 ->
    202.96.105.101 ->
    202.96.105.150 ->
    61.153.112.90


    Ping statistics for 202.96.105.101:
    Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 10ms, Maximum = 10ms, Average = 10ms
    從上面我就可以知道從我的計算機到202.96.105.101一共通過了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97這幾個路由。

    ping命令的其他技巧:在一般情況下還可以通過ping對方讓對方返回給你的TTL值大小,粗略的判斷目標主機的系統類型是Windows系列還是UNIX/Linux系列,一般情況下Windows系列的系統返回的TTL值在100-130之間,而UNIX/Linux系列的系統返回的TTL值在240-255之間,TTL 字段值可以幫助我們識別操作系統類型。
    UNIX 及類 UNIX 操作系統 ICMP 回顯應答的 TTL 字段值為 255
    Compaq Tru64 5.0 ICMP 回顯應答的 TTL 字段值為 64
    微軟 Windows NT/2K操作系統 ICMP 回顯應答的 TTL 字段值為 128
    微軟 Windows 95 操作系統 ICMP 回顯應答的 TTL 字段值為 32
    當然TTL的值在對方的主機里是可以修改的,Windows系列的系統可以通過修改注冊表以下鍵值實現:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
    "DefaultTTL"=dword:000000ff
    255---FF
      128---80
      64----40
      32----20
    好了,ping命令也基本上完全講解完了,其中還有-j,-k參數我還沒有詳細說明,由于某些原因也包括我自己所收集的資料過少這里也沒有向大家詳細介紹,請大家見諒,如果在看了這篇文章的朋友當中有知道得比我更多的,以及其他使用技巧的也希望您能告訴我,并在此先謝過。
     

    posted @ 2005-12-30 13:46 一天一點愛戀 閱讀(294) | 評論 (0)編輯 收藏
     

    Windows 開始→運行→命令 集錦
    winver---------檢查Windows版本  
    wmimgmt.msc----打開windows管理體系結構(WMI)  
    wupdmgr--------windows更新程序  
    wscript--------windows腳本宿主設置  
    write----------寫字板  
    winmsd---------系統信息  
    wiaacmgr-------掃描儀和照相機向導  
    winchat--------XP自帶局域網聊天  

    mem.exe--------顯示內存使用情況  
    Msconfig.exe---系統配置實用程序  
    mplayer2-------簡易widnows media player  
    mspaint--------畫圖板  
    mstsc----------遠程桌面連接  
    mplayer2-------媒體播放機  
    magnify--------放大鏡實用程序  
    mmc------------打開控制臺  
    mobsync--------同步命令  

    dxdiag---------檢查DirectX信息  
    drwtsn32------ 系統醫生  
    devmgmt.msc--- 設備管理器  
    dfrg.msc-------磁盤碎片整理程序  
    diskmgmt.msc---磁盤管理實用程序  
    dcomcnfg-------打開系統組件服務  
    ddeshare-------打開DDE共享設置  
    dvdplay--------DVD播放器  

    net stop messenger-----停止信使服務  
    net start messenger----開始信使服務  
    notepad--------打開記事本  
    nslookup-------網絡管理的工具向導  
    ntbackup-------系統備份和還原  
    narrator-------屏幕“講述人”  
    ntmsmgr.msc----移動存儲管理器  
    ntmsoprq.msc---移動存儲管理員操作請求  
    netstat -an----(TC)命令檢查接口  

    syncapp--------創建一個公文包  
    sysedit--------系統配置編輯器  
    sigverif-------文件簽名驗證程序  
    sndrec32-------錄音機  
    shrpubw--------創建共享文件夾  
    secpol.msc-----本地安全策略  
    syskey---------系統加密,一旦加密就不能解開,保護windows xp系統的雙重密碼  
    services.msc---本地服務設置  
    Sndvol32-------音量控制程序  
    sfc.exe--------系統文件檢查器  
    sfc /scannow---windows文件保護  

    tsshutdn-------60秒倒計時關機命令  
    tourstart------xp簡介(安裝完成后出現的漫游xp程序)  
    taskmgr--------任務管理器  

    eventvwr-------事件查看器  
    eudcedit-------造字程序  
    explorer-------打開資源管理器  

    packager-------對象包裝程序  
    perfmon.msc----計算機性能監測程序  
    progman--------程序管理器  

    regedit.exe----注冊表  
    rsop.msc-------組策略結果集  
    regedt32-------注冊表編輯器  
    rononce -p ----15秒關機  
    regsvr32 /u *.dll----停止dll文件運行  
    regsvr32 /u zipfldr.dll------取消ZIP支持  

    cmd.exe--------CMD命令提示符  
    chkdsk.exe-----Chkdsk磁盤檢查  
    certmgr.msc----證書管理實用程序  
    calc-----------啟動計算器  
    charmap--------啟動字符映射表  
    cliconfg-------SQL SERVER 客戶端網絡實用程序  
    Clipbrd--------剪貼板查看器  
    conf-----------啟動netmeeting  
    compmgmt.msc---計算機管理  
    cleanmgr-------垃圾整理  
    ciadv.msc------索引服務程序  

    osk------------打開屏幕鍵盤  
    odbcad32-------ODBC數據源管理器  
    oobe/msoobe /a----檢查XP是否激活  
    lusrmgr.msc----本機用戶和組  
    logoff---------注銷命令  

    iexpress-------木馬捆綁工具,系統自帶  

    Nslookup-------IP地址偵測器  

    fsmgmt.msc-----共享文件夾管理器  

    utilman--------輔助工具管理器  

    gpedit.msc-----組策略

    posted @ 2005-12-30 13:41 一天一點愛戀 閱讀(410) | 評論 (0)編輯 收藏
     
     我想大家都看過各種各樣的滾動(最常用的就是用在新聞的更新上面),一般情況下只要不是圖片,都是用HTML本身就有提供一個很不錯的滾動標記——marquee來完成的(用JS也可以同樣實現這種效果);當然并不是說圖片就不能那樣做。
      以下為marquee的一些基本的參數:
      該標記語法格式如下:
    <marquee
    aligh=left|center|right|top|bottom
    bgcolor=#n
    direction=left|right|up|down
    behavior=type
    height=n
    hspace=n
    scrollamount=n
    Scrolldelay=n
    width=n
    VSpace=n
    loop=n>內容</marquee>

      下面解釋一下各參數的含義:
      align:是設定活動字幕的位置,除了居左、居中、居右三種位置外,又增加靠上(top)和靠下(bottom)兩種位置。
      Bgcolor:用于設定活動字幕的背景顏色,可以使用英文的單詞也可以是十六進制數的。
      Direction:用于設定活動字幕的滾動方向是向左(left)、向右(right)、向上(up)、向下(down)。
      Behavior:用于設定滾動的方式,主要由三種方式:
    behavior="scroll"表示由一端滾動到另一端;
    behavior="slide":表示由一端快速滑動到另一端,且不再重復;
    behavior="alternate"表示在兩端之間來回滾動。
      Height:用于設定滾動字幕的高度。
      Width:則設定滾動字幕的寬度。
      Hspace和vspace:分別用于設定滾動字幕的左右邊框和上下邊框的寬度。
      Scrollamount:用于設定活動字幕的滾動距離。數值越小,滾動的速度就越快。
      scrolldelay:用于設定滾動兩次之間的延遲時間,數值越小,間隔就越小。
      Loop:用于設定滾動的次數,當loop=-1表示一直滾動下去,直到頁面更新。其中默認情況是向左滾動無限次,字幕高度是文本高度;滾動范圍:水平滾動的寬度是當前位置的寬度;垂直滾動的高度是當前位置的高度。

      現在要介紹的是一種新型的滾動,利用JS的方法來做字幕的滾動:向上,在中間停頓一到兩秒(就像經典的這種):
      將以下代碼貼到您要顯示的位置就可以了:
    <script>
    var marqueeContent=new Array(); //定義一個數組,用來存放顯示內容
    marqueeContent[0]='<A href="#" onclick="reinitMarquee()">刷新最新列表</FONT></A>';
    marqueeContent[1]='<a href=http://www.blueidea.com/updatelist.asp target=_blank>站點最新更新六十條</a>';
    marqueeContent[2]='<A href=http://www.blueidea.com/tech/graph/2003/875.asp target=_blank>羽毛效果制作教程</a>';
    marqueeContent[3]='<A href=http://www.blueidea.com/tech/program/2003/831.asp target=_blank>MySQL&ASP</a>';
    marqueeContent[4]='<A href=http://www.blueidea.com/tech/web/2003/874.asp target=_blank>初步了解CSS3</a>';
    marqueeContent[5]='<A href=http://www.blueidea.com/tech/graph/2003/864.asp target=_blank>Fireworks MX 2004執行面版操作</a>';
    marqueeContent[6]='<A href=http://www.blueidea.com/tech/graph/2003/872.asp target=_blank>Fireworks MX 2004等高漸變填充</a>';
    marqueeContent[7]='<A href=http://www.blueidea.com/photo/gallery/2003/873.asp target=_blank>瓶子里的花</a>';
    marqueeContent[8]='<A href=http://www.blueidea.com/tech/graph/2003/871.asp target=_blank>Fireworks MX 實現選項卡式效果</a>';
    marqueeContent[9]='<A href=http://www.blueidea.com/photo/gallery/2003/870.asp target=_blank>情侶:黑白的愛情空氣</a>';
    marqueeContent[10]='<A href=http://www.blueidea.com/tech/graph/2003/866.asp target=_blank>制作 MAC 風格的蘋果標志</a>';
    marqueeContent[11]='<A href=http://www.blueidea.com/tech/graph/2003/868.asp target=_blank>蛋殼制作及破殼而出的人物合成</a>';

    var marqueeInterval=new Array(); //定義一些常用而且要經常用到的變量
    var marqueeId=0;
    var marqueeDelay=4000;
    var marqueeHeight=16;

    //接下來的是定義一些要使用到的函數
    Array.prototype.random=function() {
    var a=this;
    var l=a.length;
    for(var i=0;i<l;i++) {
    var r=Math.floor(Math.random()*(l-i));
    a=a.slice(0,r).concat(a.slice(r+1)).concat(a[r]);
    }
    return a;
    }
    function initMarquee() {
    marqueeContent=marqueeContent.random();
    var str='';
    for(var i=0;i<Math.min(3,marqueeContent.length);i++) str+=(i>0?'  ':'')+marqueeContent[i];
    document.write('<div id=marqueeBox style="overflow:hidden;height:'+marqueeHeight+'px" onmouseover="clearInterval(marqueeInterval[0])" onmouseout="marqueeInterval[0]=setInterval(\'startMarquee()\',marqueeDelay)"><div>'+str+'</div></div>');
    marqueeId+=2;
    if(marqueeContent.length>3)marqueeInterval[0]=setInterval("startMarquee()",marqueeDelay);
    }
    function reinitMarquee() {
    js_scroll_content.src='scroll_content2.js';
    marqueeContent=marqueeContent.random();
    var str='';
    for(var i=0;i<Math.min(3,marqueeContent.length);i++) str+=(i>0?'  ':'')+marqueeContent[i];
    marqueeBox.childNodes[(marqueeBox.childNodes.length==1?0:1)].innerHTML=str;
    marqueeId=2;
    }
    function startMarquee() {
    var str='';
    for(var i=0;(i<3)&&(marqueeId+i<marqueeContent.length);i++) {
    str+=(i>0?'  ':'')+marqueeContent[marqueeId+i];
    }
    marqueeId+=3;
    if(marqueeId>marqueeContent.length)marqueeId=0;

    if(marqueeBox.childNodes.length==1) {
    var nextLine=document.createElement('DIV');
    nextLine.innerHTML=str;
    marqueeBox.appendChild(nextLine);
    }
    else {
    marqueeBox.childNodes[0].innerHTML=str;
    marqueeBox.appendChild(marqueeBox.childNodes[0]);
    marqueeBox.scrollTop=0;
    }
    clearInterval(marqueeInterval[1]);
    marqueeInterval[1]=setInterval("scrollMarquee()",20);
    }
    function scrollMarquee() {
    marqueeBox.scrollTop++;
    if(marqueeBox.scrollTop%marqueeHeight==(marqueeHeight-1)){
    clearInterval(marqueeInterval[1]);
    }
    }
    initMarquee();
    </script>

      以上已經將網站的這種滾動的做法做了一個大概的介紹。
    posted @ 2005-07-29 11:39 一天一點愛戀 閱讀(446) | 評論 (0)編輯 收藏
     
    <script>
    <!--

    var limit="0:15"

    if (document.images){
    var parselimit=limit.split(":")
    parselimit=parselimit[0]*60+parselimit[1]*1
    }
    function beginrefresh(){
    if (!document.images)
    return
    if (parselimit==1)
    window.location.reload()
    else{
    parselimit-=1
    curmin=Math.floor(parselimit/60)
    cursec=parselimit%60
    if (curmin!=0)
    curtime=curmin+"分"+cursec+"秒后重刷本頁!"
    else
    curtime=cursec+"秒后重刷本頁!"
    window.status=curtime
    setTimeout("beginrefresh()",1000)
    }
    }

    window.onload=beginrefresh
    //-->
    </script>

    以上代碼加入HEAD區即可。

    說明:有人說,我可以使用<meta http-equiv="refresh">來刷新當前頁面,為什么要用這個腳本呢?是的,的確是這樣。但是這個腳本可以在狀態欄顯示剩余的時間。不管怎樣,隨您的便。其實這個腳本可以作出其它許多花樣的。如果將window.location.reload()改成window.location.等地址,可以在規定時間到來后指向任意的頁面。

    源程序講解:

    var limit="0:10"
    聲明一個變量,表示幾分幾秒。
    if (document.images)
    { var parselimit=limit.split(":")
    用“;”分隔變量limit。
    parselimit=parselimit[0]*60+
    parselimit[1]*1}
    把limit變量變成秒數,并返回整數。
    function beginrefresh()
    { if (!document.images)
    return
    定義刷新函數。
    if (parselimit==1)
    window.location.reload()
    else{ parselimit-=1
    curmin=Math.floor(parselimit/60) cursec=parselimit%60
    if (curmin!=0)
    curtime=curmin+"分"+cursec+
    "秒后重刷本頁!"
    else curtime=cursec+"秒后重刷本頁!"
    window.status=curtime
    如果,還剩一秒,就刷新頁面,否則,對limit變量取整,在狀態欄中輸出“幾分幾秒后刷新本頁”。

    setTimeout("beginrefresh()",1000) }} 一秒,調用一次beginrefresh()函數。
    window.onload=beginrefresh 頁面一下載,就調用beginrefresh函數。
    源程序講解:

    var limit="0:10"
    聲明一個變量,表示幾分幾秒。
    if (document.images)
    { var parselimit=limit.split(":")
    用“;”分隔變量limit。
    parselimit=parselimit[0]*60+
    parselimit[1]*1}
    把limit變量變成秒數,并返回整數。
    function beginrefresh()
    { if (!document.images)
    return
    定義刷新函數。
    if (parselimit==1)
    window.location.reload()
    else{ parselimit-=1
    curmin=Math.floor(parselimit/60) cursec=parselimit%60
    if (curmin!=0)
    curtime=curmin+"分"+cursec+
    "秒后重刷本頁!"
    else curtime=cursec+"秒后重刷本頁!"
    window.status=curtime
    如果,還剩一秒,就刷新頁面,否則,對limit變量取整,在狀態欄中輸出“幾分幾秒后刷新本頁”。

    setTimeout("beginrefresh()",1000) }} 一秒,調用一次beginrefresh()函數。
    window.onload=beginrefresh 頁面一下載,就調用beginrefresh函數。

    posted @ 2005-07-15 16:26 一天一點愛戀 閱讀(676) | 評論 (1)編輯 收藏
     
    HTML源代碼加密/解密工具

    輸入網址,可查看對方html源碼: 

    將要處理的HTML文檔的源代碼復制到下面的文本框內,可以進行多次加密解密:

               

    posted @ 2005-07-14 17:38 一天一點愛戀 閱讀(2198) | 評論 (0)編輯 收藏
     

    -> 腳本編碼/解碼工具




    說明:加密時應只加密腳本部分,不加密腳本標記<script language="javascript">,并且加密后腳本標記應改為:<script language="JScript.Encode">

    posted @ 2005-07-14 17:36 一天一點愛戀 閱讀(486) | 評論 (0)編輯 收藏
     
         摘要: 標準顏色參考工具 該表所有顏色來自于W3C的SVG顏色關鍵詞,即X11的顏色列表,亦是CSS3顏色模塊所指定的顏色。詳情可參見: [X11顏色]和[SVG 1.0顏色關鍵詞名稱]及 [CSS3顏色模塊] 。 本表共147行顏色值,除去以grey名命的重復顏色7行,共140種命名顏色。該七種顏色為: darkgrey,暗灰色;darkslategrey,暗瓦灰色;dimgrey,暗灰色...  閱讀全文
    posted @ 2005-07-14 17:17 一天一點愛戀 閱讀(709) | 評論 (0)編輯 收藏
     

    顏色工具

    • 資料來源:W3C
    • 下面的每一個表代表一種色調。每個色調以30度間隔從色環取得。
    • 表中的X軸代表飽和度(100%, 75%, 50%, 25%, 0%)。
    • Y軸代表亮度。50% 屬于 '正常'。
    0度   紅
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #FFBFBF #F7C7C7 #EFCFCF #E7D7D7 #DFDFDF
    75 #FF8080 #EF8F8F #DF9F9F #CFAFAF #BFBFBF
    63 #FF4040 #E75858 #CF7070 #B78787 #9F9F9F
    50 #FF0000 #DF2020 #BF4040 #9F6060 #808080
    38 #BF0000 #A71818 #8F3030 #784848 #606060
    25 #800000 #701010 #602020 #503030 #404040
    13 #400000 #380808 #301010 #281818 #202020
    0 #000000 #000000 #000000 #000000 #000000
    30度   紅-黃 (=橙)
    飽和度   
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #FFDFBF #F7DFC7 #EFDFCF #E7DFD7 #DFDFDF
    75 #FFBF80 #EFBF8F #DFBF9F #CFBFAF #BFBFBF
    63 #FF9F40 #E79F58 #CF9F70 #B79F87 #9F9F9F
    50 #FF8000 #DF8020 #BF8040 #9F8060 #808080
    38 #BF6000 #A76018 #8F6030 #786048 #606060
    25 #804000 #704010 #604020 #504030 #404040
    13 #402000 #382008 #302010 #282018 #202020
    0 #000000 #000000 #000000 #000000 #000000
    60度   黃
    飽和度   
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #FFFFBF #F7F7C7 #EFEFCF #E7E7D7 #DFDFDF
    75 #FFFF80 #EFEF8F #DFDF9F #CFCFAF #BFBFBF
    63 #FFFF40 #E7E758 #CFCF70 #B7B787 #9F9F9F
    50 #FFFF00 #DFDF20 #BFBF40 #9F9F60 #808080
    38 #BFBF00 #A7A718 #8F8F30 #787848 #606060
    25 #808000 #707010 #606020 #505030 #404040
    13 #404000 #383808 #303010 #282818 #202020
    0 #000000 #000000 #000000 #000000 #000000
    90度   黃-綠
    飽和度   
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #DFFFBF #DFF7C7 #DFEFCF #DFE7D7 #DFDFDF
    75 #BFFF80 #BFEF8F #BFDF9F #BFCFAF #BFBFBF
    63 #9FFF40 #9FE758 #9FCF70 #9FB787 #9F9F9F
    50 #80FF00 #80DF20 #80BF40 #809F60 #808080
    38 #60BF00 #60A718 #608F30 #607848 #606060
    25 #408000 #407010 #406020 #405030 #404040
    13 #204000 #203808 #203010 #202818 #202020
    0 #000000 #000000 #000000 #000000 #000000
    120度   綠
    飽和度   
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #BFFFBF #C7F7C7 #CFEFCF #D7E7D7 #DFDFDF
    75 #80FF80 #8FEF8F #9FDF9F #AFCFAF #BFBFBF
    63 #40FF40 #58E758 #70CF70 #87B787 #9F9F9F
    50 #00FF00 #20DF20 #40BF40 #609F60 #808080
    38 #00BF00 #18A718 #308F30 #487848 #606060
    25 #008000 #107010 #206020 #305030 #404040
    13 #004000 #083808 #103010 #182818 #202020
    0 #000000 #000000 #000000 #000000 #000000
    150度   綠-青
    飽和度   
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #BFFFDF #C7F7DF #CFEFDF #D7E7DF #DFDFDF
    75 #80FFBF #8FEFBF #9FDFBF #AFCFBF #BFBFBF
    63 #40FF9F #58E79F #70CF9F #87B79F #9F9F9F
    50 #00FF80 #20DF80 #40BF80 #609F80 #808080
    38 #00BF60 #18A760 #308F60 #487860 #606060
    25 #008040 #107040 #206040 #305040 #404040
    13 #004020 #083820 #103020 #182820 #202020
    0 #000000 #000000 #000000 #000000 #000000
    180度   青
    飽和度   
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #BFFFFF #C7F7F7 #CFEFEF #D7E7E7 #DFDFDF
    75 #80FFFF #8FEFEF #9FDFDF #AFCFCF #BFBFBF
    63 #40FFFF #58E7E7 #70CFCF #87B7B7 #9F9F9F
    50 #00FFFF #20DFDF #40BFBF #609F9F #808080
    38 #00BFBF #18A7A7 #308F8F #487878 #606060
    25 #008080 #107070 #206060 #305050 #404040
    13 #004040 #083838 #103030 #182828 #202020
    0 #000000 #000000 #000000 #000000 #000000
    210度   青-藍
    飽和度   
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #BFDFFF #C7DFF7 #CFDFEF #D7DFE7 #DFDFDF
    75 #80BFFF #8FBFEF #9FBFDF #AFBFCF #BFBFBF
    63 #409FFF #589FE7 #709FCF #879FB7 #9F9F9F
    50 #0080FF #2080DF #4080BF #60809F #808080
    38 #0060BF #1860A7 #30608F #486078 #606060
    25 #004080 #104070 #204060 #304050 #404040
    13 #002040 #082038 #102030 #182028 #202020
    0 #000000 #000000 #000000 #000000 #000000
    240度   藍
    飽和度   
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #BFBFFF #C7C7F7 #CFCFEF #D7D7E7 #DFDFDF
    75 #8080FF #8F8FEF #9F9FDF #AFAFCF #BFBFBF
    63 #4040FF #5858E7 #7070CF #8787B7 #9F9F9F
    50 #0000FF #2020DF #4040BF #60609F #808080
    38 #0000BF #1818A7 #30308F #484878 #606060
    25 #000080 #101070 #202060 #303050 #404040
    13 #000040 #080838 #101030 #181828 #202020
    0 #000000 #000000 #000000 #000000 #000000
    270度   藍-紫
    飽和度   
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #DFBFFF #DFC7F7 #DFCFEF #DFD7E7 #DFDFDF
    75 #BF80FF #BF8FEF #BF9FDF #BFAFCF #BFBFBF
    63 #9F40FF #9F58E7 #9F70CF #9F87B7 #9F9F9F
    50 #8000FF #8020DF #8040BF #80609F #808080
    38 #6000BF #6018A7 #60308F #604878 #606060
    25 #400080 #401070 #402060 #403050 #404040
    13 #200040 #200838 #201030 #201828 #202020
    0 #000000 #000000 #000000 #000000 #000000
    300度   紫
    飽和度   
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #FFBFFF #F7C7F7 #EFCFEF #E7D7E7 #DFDFDF
    75 #FF80FF #EF8FEF #DF9FDF #CFAFCF #BFBFBF
    63 #FF40FF #E758E7 #CF70CF #B787B7 #9F9F9F
    50 #FF00FF #DF20DF #BF40BF #9F609F #808080
    38 #BF00BF #A718A7 #8F308F #784878 #606060
    25 #800080 #701070 #602060 #503050 #404040
    13 #400040 #380838 #301030 #281828 #202020
    0 #000000 #000000 #000000 #000000 #000000
    330度   紫-紅
    飽和度
    100% 75% 50% 25% 0%
    100 #FFFFFF #FFFFFF #FFFFFF #FFFFFF #FFFFFF
    88 #FFBFDF #F7C7DF #EFCFDF #E7D7DF #DFDFDF
    75 #FF80BF #EF8FBF #DF9FBF #CFAFBF #BFBFBF
    63 #FF409F #E7589F #CF709F #B7879F #9F9F9F
    50 #FF0080 #DF2080 #BF4080 #9F6080 #808080
    38 #BF0060 #A71860 #8F3060 #784860 #606060
    25 #800040 #701040 #602040 #503040 #404040
    13 #400020 #380820 #301020 #281820 #202020
    0 #000000 #000000 #000000 #000000 #000000

    posted @ 2005-07-14 17:14 一天一點愛戀 閱讀(617) | 評論 (0)編輯 收藏
     
    1.Stream對象

    組件:"Adodb.Stream"
    有下列方法:
    Cancel 方法
       使用方法如下
       Object.Cancel
       說明:取消執行掛起的異步 Execute 或 Open 方法的調用。
    Close 方法
       使用方法如下
       Object.Close
       :關閉對像
    CopyTo 方法
       使用方法如下
       Object.CopyTo(destStream,[CharNumber])
       說明:將對像的數據復制,destStream指向要復制的對像,CharNumber為可選參數,指要復制的字節數,不選為全部復制。
    Flush 方法
       使用方法如下
       Object.Flush
       說明:
    LoadFromFile 方法
       使用方法如下
       Object.LoadFromFile(FileName)
       說明:將FileName指定的文件裝入對像中,參數FileName為指定的用戶名。
    Open 方法
        使用方法如下
        Object.Open(Source,[Mode],[Options],[UserName],[Password])
        說明:打開對像,
        參數說明:Sourece 對像源,可不指定
    Mode 指定打開模式,可不指定,可選參數如下:
       adModeRead =1
       adModeReadWrite =3
       adModeRecursive =4194304
       adModeShareDenyNone =16
       adModeShareDenyRead =4
       adModeShareDenyWrite =8
       adModeShareExclusive =12
       adModeUnknown =0
       adModeWrite =2
    Options 指定打開的選項,可不指定,可選參數如下:
       adOpenStreamAsync =1
       adOpenStreamFromRecord =4
       adOpenStreamUnspecified=-1
      UserName 指定用戶名,可不指定。
      Password 指定用戶名的密碼
    Read 方法
    使用方法如下:
    Object.Read(Numbytes)
    說明:讀取指定長度的二進制內容。
    參數說明:Numbytes指定的要讀取的找度,不指定則讀取全部。

    ReadText 方法
    使用方法如下:
    Object.ReadText(NumChars)
    說明:讀取指定長度的文本
    參數說明:NumChars指定的要讀取的找度,不指定則讀取全部。

    SaveToFile 方法
    使用方法如下:
    Object.SaveToFile(FileName,[Options])
    說明:將對像的內容寫到FileName指定的文件中
    參數說明:FileName指定的文件
       Options 存取的選項,可不指定,可選參數如下:
        adSaveCreateNotExist =1
        adSaveCreateOverWrite =2

    SetEOS 方法
    使用方法如下:
    Object.setEOS()
    說明:
    SkipLine 方法
    使用方法如下:
    Object.SkipLine()
    說明:
    Write 方法
    使用方法如下:
    Object.Write(Buffer)
    說明:將指定的數據裝入對像中。
    參數說明:Buffer 為指定的要寫入的內容。
    WriteText 方法
    使用方法如下:
    Object.Write(Data,[Options])
    說明:將指定的文本數據裝入對像中。
    參數說明:Data 為指定的要寫入的內容。
          Options 寫入的選項,可不指定,可選參數如下:
       adWriteChar =0
       adWriteLine =1

     

    有下列屬性:
    Charset
    EOS 返回對像內數據是否為空。

    LineSeparator 指定換行格式,可選參數有
      adCR  =13
      adCRLF  =-1
      adLF  =10

    Mode 指定或返加模式。

    Position 指定或返回對像內數據的當前指針。(新OPEN的:0)

    Size 返回對像內數據的大小。

    State 返加對像狀態是否打開。

    Type 指定或返回的數據類型,可選參數為:
      adTypeBinary =1
      adTypeText =2

    2.WshShell和WshUrlShortcut 對象

    WshShell 對象
    ProgID Wscript.Shell
    文件名 WSHom.Ocx
    CLSID F935DC22-1CF0-11d0-ADB9-00C04FD58A0B
    IID F935DC21-1CF0-11d0-ADB9-00C04FD58A0B

    下表說明和 WshShell 對象有關的屬性。

    屬性 說明
    Environment 返回 WshEnvironment 集合對象。
    SpecialFolders 使用 WshSpecialFolders 對象提供對 Windows shell 文件夾的訪問,如桌面文件夾,開始菜單文件夾和個人文檔文件夾。

    下表說明和 WshShell 對象有關的方法。

    方法 說明
    CreateShortcut 創建并返回 WshShortcut 對象。
    ExpandEnvironmentStrings 擴展 PROCESS 環境變量并返回結果字符串。
    Popup 顯示包含指定消息的消息窗口。
    RegDelete 從注冊表中刪除指定的鍵或值。
    RegRead 從注冊表中返回指定的鍵或值。
    RegWrite 在注冊表中設置指定的鍵或值。
    Run 創建新的進程,該進程用指定的窗口樣式執行指定的命令。

    WshShell.Environment
    Environment 屬性返回 WshEnvironment 對象。

    語法
    WshShell.Environment ( [strType]) = objWshEnvironment

    注釋
    若 strType 指定了環境變量所處的位置,可能值為 "System"、"User"、"Volatile" 和 "Process"。若未提供 strType,則該方法在 Windows NT 中檢索系統環境變量或在 Windows 95 中檢索進程環境變量。

    對于 Windows 95,strType 參數僅支持 "Process"。

    下列變量是由 Windows 操作系統提供的。腳本也可獲取由其他應用程序設置的環境變量。

    名稱 說明
    NUMBER_OF_PROCESSORS 計算機上運行的處理器數目。
    PROCESSOR_ARCHITECTURE 用戶工作站使用的處理器類型。
    PROCESSOR_IDENTIFIER 用戶工作站的處理器 ID。
    PROCESSOR_LEVEL 用戶工作站的處理器級。
    PROCESSOR_REVISION 用戶工作站的處理器版本。
    OS 用戶工作站所用的操作系統。
    COMSPEC 用于運行“命令提示”窗口的命令(通常為 cmd.exe)。
    HOMEDRIVE 本地主驅動器(通常為 C 驅動器)。
    HOMEPATH 用戶的默認路徑(在 Windows NT 上通常為 \users\default)。
    PATH 路徑環境變量。
    PATHEXT 可執行文件的擴展名(通常為 .com、 .exe、.bat 或 .cmd)。
    PROMPT 命令提示符(通常為 $P$G)。
    SYSTEMDRIVE 系統所在的本地驅動器(例如,c:\)。
    SYSTEMROOT 系統目錄(例如,c:\winnt)。和 WINDIR 相同。
    WINDIR 系統目錄(例如 c:\winnt)。和 SYSTEMROOT 相同。
    TEMP 存儲臨時文件的目錄(例如,c:\temp)。用戶可更改。
    TMP 存儲臨時文件的目錄(例如,c:\temp)。用戶可更改。

    示例
    ' Retrieve the NUMBER_OF_PROCESSORS system environment variable
    Set WshShell = Wscript.CreateObject("Wscript.Shell")

    Set WshSysEnv = WshShell.Environment("SYSTEM")
    Wscript.Echo WshSysEnv("NUMBER_OF_PROCESSORS")

    請參閱
    WshEnvironment 對象

    WshEnvironment 對象
    WshEnvironment 對象未直接給出,可用 WshShell.Environment 屬性來訪問。

    ProgID N/A
    文件名 WSHom.Ocx
    CLSID
    IID

    下表描述與 WshEnvironment 對象關聯的屬性。

    屬性 說明
    Item 獲取或設置指定的環境變量值。
    Count 枚舉項的數目。
    length 枚舉項的數目 (JScript)。

    下表描述與 WshEnvironment 對象關聯的方法。

    方法 說明
    Remove 刪除指定的環境變量。

    WshShell.SpecialFolders
    SpecialFolders 屬性提供 WshSpecialFolders 對象以便訪問 Windows 的 shell 文件夾,例如桌面文件夾、開始菜單文件夾和個人文檔文件夾。

    語法
    WshShell.SpecialFolders = objWshSpecialFolders

    示例
    ' This code fragment shows how to access the desktop folder
    Set WshShell = Wscript.CreateObject("Wscript.Shell")
    MsgBox "Your desktop is " & WshShell.SpecialFolders("Desktop")
    請參閱
    WshSpecialFolders 對象

    WshSpecialFolders 對象
    該對象未直接給出。要得到 WshSpecialFolders 對象,請使用 WshShell.SpecialFolders 屬性。

    ProgID N/A
    文件名 WSHom.Ocx
    CLSID
    IID

    下表描述與 WshSpecialFolders 對象關聯的屬性。

    屬性 描述
    Item 指定文件夾的完整路徑(默認)。
    Count 枚舉項的數目。
    length 枚舉項的數目 (JScript) 。

    WshSpecialFolders.Item
    Item 屬性返回由 strFolderName 指定的文件夾的完整路徑。它是默認屬性。

    語法
    WshShell.SpecialFolders.Item("strFolderName") = strFolderPath
    WshShell.SpecialFolders("strFolderName") = strFolderPath

    注釋
    若請求的文件夾 (strFolderName) 不可用,則 WshShell.SpecialFolders("strFolderName") 返回 NULL。例如,Windows 95 沒有 AllUsersDesktop 文件夾,如果 strFolderName = AllUsersDesktop,則返回 NULL。

    Windows 95 和 Windows NT 4.0 操作系統提供下列指定文件夾:
    AllUsersDesktop
    AllUsersStartMenu

    AllUsersPrograms

    AllUsersStartup

    Desktop

    Favorites

    Fonts

    MyDocuments

    NetHood

    PrintHood

    Programs

    Recent

    SendTo

    StartMenu

    Startup

    Templates

    示例
    ' This fragment returns the full path for the Windows Desktop folder
    Set WshShell = Wscript.CreateObject("Wscript.Shell")
    StrMyDesktop = WshShell.SpecialFolders("Desktop")

    ' List all special folders
    For Each strFolder In WshShell.SpecialFolders
    MsgBox strFolder
    Next

    請參閱
    WshShell.SpecialFolders 屬性

    WshShell.CreateShortcut
    CreateShortcut 方法創建 WshShortcut 對象并將其返回。如果快捷方式標題以 .url 結尾,就會創建 WshURLShortcut 對象。

    語法
    WshShell.CreateShortcut(strPathname) = objShortcut

    示例
    ' This code fragment creates a shortcut
    ' to the currently executing script
    Set WshShell = Wscript.CreateObject("Wscript.Shell")
    Set oShellLink = WshShell.CreateShortcut("Current Script.lnk")
    oShellLink.TargetPath = Wscript.ScriptFullName
    oShellLink.Save
    Set oUrlLink = WshShell.CreateShortcut("Microsoft Web Site.URL")
    oUrlLink.TargetPath = "http://www.microsoft.com"
    oUrlLink.Save

    請參閱
    WshShortcut 對象、WshUrlShortcut 對象

    WshShortcut 對象
    該對象未直接給出。要獲得 WshShortcut 對象,請使用 WshShell.CreateShortcut 方法。

    ProgID N/A
    文件名 WSHom.Ocx
    CLSID F935DC28-1CF0-11d0-ADB9-00C04FD58A0B
    IID F935DC27-1CF0-11d0-ADB9-00C04FD58A0B

    下表說明和 WshShortcut 對象有關的屬性。

    屬性 說明
    Arguments 快捷方式對象的參數。
    Description 快捷方式對象的說明。
    Hotkey 快捷方式對象的熱鍵。
    IconLocation 快捷方式對象的圖標位置。
    TargetPath 快捷方式對象的目標路徑。
    WindowStyle 快捷方式對象的窗口樣式。
    WorkingDirectory 快捷方式對象的工作目錄。

    下表說明與 WshShortcut 對象有關的方法。

    方法 說明
    Save 將快捷方式存儲到指定的文件系統中。

    WshShortcut.Arguments
    Arguments 屬性提供快捷方式對象的參數。

    語法
    WshShortcut.Arguments = strArguments

    WshShortcut.Description
    Description 屬性提供快捷方式對象的說明。

    語法
    WshShortcut.Description = strDescription

    WshShortcut.Hotkey
    HotKey 屬性提供快捷方式對象的熱鍵。熱鍵是啟動或切換程序的鍵盤快捷方式。

    語法
    WshShortcut.HotKey = strHotKey

    注釋
    strHotKey 的BNF語法如下:

    Hotkey ::= modifier* keyname
    modifier ::= "ALT+" | "CTRL+" | "SHIFT+" | "EXT+"
    keyname ::= "A" .. "Z" |
    "0".. "9" |
    "Back" | "Tab" | "Clear" | "Return" |
    "Escape" | "Space" | "Prior" | ...

    所有鍵的名稱都可以在 WINUSER.H 中找到。熱鍵不區分大小寫。

    熱鍵只能激活位于 Windows 桌面或 Windows“開始”菜單的快捷方式。

    Windows 資源管理器不接受 ESC、ENTER、TAB、SPACE、PRINT SCREEN 或 BACKSPACE,即使 WshShortcut.Hotkey 遵循 Win32 API 支持它們。因此,建議在快捷方式中不要用這些鍵。

    示例
    Set WshShell = Wscript.CreateObject("Wscript.WshShell")
    strDesktop = WshShell.SpecialFolders("Desktop")
    Set oMyShortcut = WshShell.CreateShortcut(strDesktop & "\a_key.lnk")
    OMyShortcut.TargetPath = "%windir%\notepad.exe"
    oMyShortCut.Hotkey = "ALT+CTRL+F"
    oMyShortCut.Save
    Wscript.Echo oMyShortCut.HotKey = "Alt+Ctrl+F"

    請參閱
    WshSpecialFolders 對象

    WshShortcut.IconLocation
    IconLocation 屬性提供快捷方式對象的圖標位置。圖標位置的格式應為 "Path,index"。

    語法
    WshShortcut.IconLocation = strIconLocation

    WshShortcut.TargetPath
    TargetPath 屬性提供快捷方式對象的目標路徑。

    語法
    WshShort

    WshUrlShortcut 對象
    該對象未直接給出。要獲取 WshUrlShortcut 對象,可使用 WshShell.CreateShortcut 方法。

    ProgID N/A
    文件名 WSHom.Ocx
    CLSID
    IID

    下表說明了和 WshUrlShortcut 對象有關的屬性。

    屬性 說明
    FullName URL 快捷方式對象的完整路徑。
    TargetPath URL 快捷方式對象的目標路徑。

    下表說明了和 WshUrlShortcut 對象有關的方法。

    方法 說明
    Save 將快捷方式保存到指定的文件系統中。

    WshUrlShortcut.FullName
    FullName 屬性提供快捷方式對象的完整路徑。

    語法
    WshUrlShortcut.FullName = strFullName

    WshUrlShortcut.TargetPath
    TargetPath 屬性提供快捷方式對象的目標路徑。

    語法
    WshUrlShortcut.TargetPath = strTargetPath

    WshUrlShortcut.Save
    Save 方法保存一個快捷方式,該快捷方式指向 FullName 屬性指定的位置。

    語法
    WshUrlShortcut.Save

    WshShell.ExpandEnvironmentStrings
    ExpandEnvironmentStrings 方法在 strString 中擴展 PROCESS 環境變量并返回結果字符串。變量被 '%' 字符括起。

    環境變量不區分大小寫。

    語法
    WshShell.ExpandEnvironmentStrings(strString) = strExpandedString

    示例
    MsgBox "Prompt is " & WshShell.ExpandEnviromentStrings("%PROMPT%")

     

    WshShell.Popup
    Popup 方法顯示一個彈出式消息框窗口,消息框中包含的消息由 strText 指定。該消息框的窗口標題由 strTitle 指定。若 strTitle 省略,則窗口標題為 Windows Scripting Host。

    語法
    WshShell.Popup(strText, [natSecondsToWait], [strTitle], [natType]) = intButton

    注釋
    若提供 natSecondsToWait 且其值大于零,則消息框在 natSecondsToWait 秒后關閉。

    natType 的含義與其在 Win32? MessageBox 函數中相同。下表顯示 natType 中的值及含義。下表中的值可以組合。

    按鈕類型
    值 說明
    0 顯示“確定”按鈕
    1 顯示“確定”和“取消”按鈕
    2 顯示“終止”、“重試”和“忽略”按鈕
    3 顯示“是”、“否”和“取消”按鈕
    4 顯示“是”和“否”按鈕
    5 顯示“重試”和“取消”按鈕

    圖標類型
    值 說明
    16 顯示停止標記圖標
    32 顯示問號圖標
    48 顯示感嘆號圖標
    64 顯示信息標記圖標

    以上兩個表并不涵蓋 natType 的所有值。完整的列表請參閱 Win32 文檔。

    返回值 intButton 指示用戶所單擊的按扭編號。若用戶在 natSecondsToWait 秒之前不單擊按扭,則 intButton 設置為 -1 。

    值 說明
    1 “確定”按扭
    2 “取消”按扭
    3 “終止”按扭
    4 “重試”按扭
    5 “忽略”按扭
    6 “是”按扭
    7 “否”按扭

    示例
    Set WshShell = Wscript.CreateObject("Wscript.Shell")
    WshShell.Popup "Where do you want to go today?"

    請參閱
    Wscript.Echo 方法

    Wscript.Echo
    Echo 方法在窗口(Wscript.exe 中)或“命令提示符”窗口(Cscript.exe 中)顯示參數。

    參數用空格分隔。在 Cscript.exe 中,該方法在顯示最后一個參數之后輸出一對回車/換行(CR LF)。

    語法
    Wscript.Echo [anyArg...]

    示例
    Wscript.Echo
    Wscript.Echo 1, 2, 3
    Wscript.Echo "Windows Scripting Host is cool."

    WshShell.RegDelete
    RegDelete 從注冊表中刪除名為 strName 的鍵或值。

    語法
    WshShell.RegDelete strName

    參數
    strName
    如果 strName 以反斜杠 (\) 結束,則該方法刪除鍵而不是值。
    strName 參數必須以下列之一的根鍵名開始:

    短根鍵名 長根鍵名
    HKCU HKEY_CURRENT_USER
    HKLM HKEY_LOCAL_MACHINE
    HKCR HKEY_CLASSES_ROOT
    HKEY_USERS
    HKEY_CURRENT_CONFIG

    示例
    Set WshShell = Wscript.CreateObject("Wscript.Shell")

    WshShell.RegDelete "HKCU\ScriptEngine\Value" ' Delete value "Value"
    WshShell.RegDelete "HKCU\ScriptEngine\Key\" ' Delete key "Key"

    請參閱
    WshShell.RegRead 方法、WshShell.RegWrite 方法

    WshShell.RegRead
    RegRead 方法返回名為 strName 的注冊表鍵或值。

    語法
    WshShell.RegRead(strName) = strValue

    參數
    strName
    如果 strName 以反斜杠 (\) 結束,則該方法返回鍵,而不是值。
    strName 參數必須以下列根鍵名開始。

    Short Long
    HKCU HKEY_CURRENT_USER
    HKLM HKEY_LOCAL_MACHINE
    HKCR HKEY_CLASSES_ROOT
    HKEY_USERS
    HKEY_CURRENT_CONFIG

    注釋
    RegRead 方法僅支持 REG_SZ、REG_EXPAND_SZ、REG_DWORD、REG_BINARY 和 REG_MULTI_SZ 數據類型。若注冊表有其他數據類型,RegRead 返回 DISP_E_TYPEMISMATCH。

    示例
    Set WshShell = Wscript.CreateObject("Wscript.Shell")

    WshShell.RegRead("HKCU\ScriptEngine\Val") ' Read from value "Val"
    WshShell.RegRead("HKCU\ScriptEngine\Key\") ' Read from key "Key"

    請參閱
    WshShell.RegDelete 方法、WshShell.RegWrite 方法

    WshShell.RegWrite
    RegWrite 方法設置名為 strName 的注冊表鍵或值。

    語法
    WshShell.RegWrite strName, anyValue, [strType]

    參數
    strName
    若 strName 以一個反斜杠 (\) 結束,則該方法設置鍵,而不是值。
    strName 參數必須以下列根鍵名開頭。

    Short Long
    HKCU HKEY_CURRENT_USER
    HKLM HKEY_LOCAL_MACHINE
    HKCR HKEY_CLASSES_ROOT
    HKEY_USERS
    HKEY_CURRENT_CONFIG

     

    anyValue
    當 strType 為 REG_SZ 或 REG_EXPAND_SZ 時,RegWrite 方法自動將 anyValue 轉換為字符串。若 strType 為 REG_DWORD,則 anyValue 被轉換為整數。若 strType 為 REG_BINARY,則 anyValue 必須是一個整數。

    strType
    RegWrite 方法支持 strType 為 REG_SZ、REG_EXPAND_SZ、REG_DWORD 和 REG_BINARY。若其他的數據類型被作為 strType 傳遞,RegWrite 返回 E_INVALIDARG。
    示例
    Set WshShell = Wscript.CreateObject("Wscript.Shell")

    WshShell.RegWrite "HKCU\ScriptEngine\Value", "Some string value"
    WshShell.RegWrite "HKCU\ScriptEngine\Key\", 1 "REG_DWORD"

    請參閱
    WshShell.RegDelete 方法、WshShell.RegWrite方法

    WshShell.Run
    Run 方法創建一個新的進程,該進程以 intWindowStyle 窗口樣式執行 strCommand。

    語法
    WshShell.Run (strCommand, [intWindowStyle], [blnWaitOnReturn])

    參數
    strCommand
    在 strCommand 參數內部的環境變量被自動擴展。

    intWindowStyle
    這是為新進程在 STARTUPINFO 結構內設置的 wShowWindow 元素的值。其意義與 ShowWindow 中的 nCmdShow 參數相同,可取以下值之一。名稱 值 含義
    SW_HIDE
    0 隱藏窗口并激活另一窗口。
    SW_MINIMIZE
    6 最小化指定窗口并激活按 Z 序排序的下一個頂層窗口。
    SW_RESTORE
    9 激活并顯示窗口。若窗口是最小化或最大化,則恢復到原來的大小和位置。在還原應用程序的最小化窗口時,應指定該標志。
    SW_SHOW
    5 以當前大小和位置激活并顯示窗口。
    SW_SHOWMAXIMIZED
    3 激活窗口并以最大化顯示該窗口。
    SW_SHOWMINIMIZED
    2 激活窗口并以最小化顯示該窗口。
    SW_SHOWMINNOACTIVE
    7 最小化顯示窗口。活動窗口保持活動。
    SW_SHOWNA
    8 以當前狀態顯示窗口。活動窗口保持活動。
    SW_SHOWNOACTIVATE
    4 按窗口最近的大小和位置顯示。活動窗口保持活動。
    SW_SHOWNORMAL
    1 激活并顯示一個窗口。若窗口是最小化或最大化,則恢復到其原來的大小和位置。

     

    blnWaitOnReturn
    如果未指定 blnWaitOnReturn 或其值為 FALSE,則該方法立即返回到腳本繼續執行而不等待進程結束。
    若 blnWaitOnReturn 設為 TRUE,則 Run 方法返回由應用程序返回的任何錯誤代碼。如果未指定 blnWaitOnReturn 或其值為 FALSE,則 Run 返回錯誤代碼 0(zero)。

    示例
    ' This fragment launches Notepad with the current executed script
    Set WshShell = Wscript.CreateObject("Wscript.Shell")
    WshShell.Run ("notepad " & Wscript.ScriptFullName)
    WshShell.Run ("%windir%\notepad" & Wscript.ScriptFullName)

    ' This fragment returns the error code from the executed application
    Return = WshShell.Run("notepad " & Wscript.ScriptFullName, 1, TRUE)

    3. 關于Shell.Application的使用
    3.1、創建 Shell 對象
    var Shell = new ActiveXObject("Shell.Application");

    3.2、使用 Shell 屬性及方法

    Shell.Application
    Shell.Parent

    Shell.CascadeWindows()
    Shell.TileHorizontally()
    Shell.TileVertically()
    Shell.ControlPanelItem(sDir) /* 比如:sysdm.cpl */
    Shell.EjectPC()
    Shell.Explore(vDir)
    Shell.Open(vDir)
    Shell.FileRun()
    Shell.FindComputer()
    Shell.FindFiles()
    Shell.Help()
    Shell.MinimizeAll()
    Shell.UndoMinimizeALL()
    Shell.RefreshMenu()
    Shell.SetTime()
    Shell.TrayProperties()
    Shell.ShutdownWindows()
    Shell.Suspend()
    oWindows = Shell.Windows() /* 返回ShellWindows對象 */
    fFolder = Shell.NameSpace(vDir) /* 返回所打開的vDir的Folder對象 */
    oFolder = Shell.BrowseForFolder(Hwnd, sTitle, iOptions [, vRootFolder]) /* 選擇文件夾對話框 */
    /*示例:
    function BrowseFolder()
    {
    var Message = "清選擇文件夾";

    var Shell = new ActiveXObject( "Shell.Application" );
    var Folder = Shell.BrowseForFolder(0,Message,0x0040,0x11);
    if(Folder != null)
    {
    Folder = Folder.items(); // 返回 FolderItems 對象
    Folder = Folder.item(); // 返回 Folderitem 對象
    Folder = Folder.Path; // 返回路徑
    if(Folder.charAt(varFolder.length-1) != "\\"){
    Folder = varFolder + "\\";
    }
    return Folder;
    }
    }
    */

    /*示例:
    var Folder = Shell.NameSpace("C:\\"); // 返回 Folder對象
    */

    posted @ 2005-07-14 17:07 一天一點愛戀 閱讀(484) | 評論 (0)編輯 收藏
     
         摘要: 本部分內容           n  SQL基礎           n  中級SQL          ...  閱讀全文
    posted @ 2005-07-14 16:53 一天一點愛戀 閱讀(863) | 評論 (0)編輯 收藏
     
    SQL是Structured Quevy Language(結構化查詢語言)的縮寫。SQL是專為數據庫而建立的操作命令集,是一種功能齊全的數據庫語言。在使用它時,只需要發出“做什么”的命令,“怎么做”是不用使用者考慮的。SQL功能強大、簡單易學、使用方便,已經成為了數據庫操作的基礎,并且現在幾乎所有的數據庫均支持SQL。
    ##1 二、SQL數據庫數據體系結構
    SQL數據庫的數據體系結構基本上是三級結構,但使用術語與傳統關系模型術語不同。在SQL中,關系模式(模式)稱為“基本表”(base table);存儲模式(內模式)稱為“存儲文件”(stored file);子模式(外模式)稱為“視圖”(view);元組稱為“行”(row);屬性稱為“列”(column)。名稱對稱如^00100009a^:
    ##1 三、SQL語言的組成
    在正式學習SQL語言之前,首先讓我們對SQL語言有一個基本認識,介紹一下SQL語言的組成:
    1.一個SQL數據庫是表(Table)的集合,它由一個或多個SQL模式定義。
    2.一個SQL表由行集構成,一行是列的序列(集合),每列與行對應一個數據項。
    3.一個表或者是一個基本表或者是一個視圖。基本表是實際存儲在數據庫的表,而視圖是由若干基本表或其他視圖構成的表的定義。
    4.一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲上一個物理文件對應。
    5.用戶可以用SQL語句對視圖和基本表進行查詢等操作。在用戶角度來看,視圖和基本表是一樣的,沒有區別,都是關系(表格)。
    6.SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada語言等。SQL用戶也能作為獨立的用戶接口,供交互環境下的終端用戶使用。
    ##1 四、對數據庫進行操作
    SQL包括了所有對數據庫的操作,主要是由4個部分組成:
    1.數據定義:這一部分又稱為“SQL DDL”,定義數據庫的邏輯結構,包括定義數據庫、基本表、視圖和索引4部分。
    2.數據操縱:這一部分又稱為“SQL DML”,其中包括數據查詢和數據更新兩大類操作,其中數據更新又包括插入、刪除和更新三種操作。
    3.數據控制:對用戶訪問數據的控制有基本表和視圖的授權、完整性規則的描述,事務控制語句等。
    4.嵌入式SQL語言的使用規定:規定SQL語句在宿主語言的程序中使用的規則。
    下面我們將分別介紹:
    ##2 (一)數據定義
    SQL數據定義功能包括定義數據庫、基本表、索引和視圖。
    首先,讓我們了解一下SQL所提供的基本數據類型:(如^00100009b^)
    1.數據庫的建立與刪除
    (1)建立數據庫:數據庫是一個包括了多個基本表的數據集,其語句格式為:
    CREATE DATABASE <數據庫名> [其它參數]
    其中,<數據庫名>在系統中必須是唯一的,不能重復,不然將導致數據存取失誤。[其它參數]因具體數據庫實現系統不同而異。
    例:要建立項目管理數據庫(xmmanage),其語句應為:
    CREATE DATABASE xmmanage
    (2) 數據庫的刪除:將數據庫及其全部內容從系統中刪除。
    其語句格式為:DROP DATABASE <數據庫名>
    例:刪除項目管理數據庫(xmmanage),其語句應為:
    DROP DATABASE xmmanage
    2.基本表的定義及變更
    本身獨立存在的表稱為基本表,在SQL語言中一個關系唯一對應一個基本表。基本表的定義指建立基本關系模式,而變更則是指對數據庫中已存在的基本表進行刪除與修改。
    (1)基本表的定義:基本表是非導出關系,其定義涉及表名、列名及數據類型等,其語句格式為:
    CREATE TABLE[<數據庫名>.]<表名>
    (<列名> 數據類型 [缺省值] [NOT NULL / NULL]
    [,<列名> 數據類型 [缺省值] [NOT NULL / NULL]]......
    [,UNIQUE (列名[,列名]......)]
    [,PRIMARY KEY(列名)]
    [,FOREIGN KEY(列名[,列名]......)REFERENCE <表名>(列名[,列名]......)]
    [,CHECK(條件)] [其它參數])
    其中,〈數據庫名〉.]指出將新建立的表存放于該數據庫中;
    新建的表由兩部分組成:其一為表和一組列名,其二是實際存放的數據(即可在定義表的同時,直接存放數據到表中);
    列名為用戶自定義的易于理解的名稱,列名中不能使用空格;
    數據類型為上面所介紹的幾種標準數據類型;
    [NOT NULL/NULL]指出該列是否允許存放空值,SQL語言支持空值的概念,所謂空值是“不知道”或“無意義”的值,值得注意的是數據“0”和空格都不是空值,系統一般默認允許為空值,所以當不允許為空值時,必須明確使用NOT NULL;
    [,UNIQUE]將列按照其規定的順序進行排列,如不指定排列順序,則按列的定義順序排列;
    [PRIMARY KEY]用于指定表的主鍵(即關系中的主屬性),實體完整性約束條件規定:主鍵必須是唯一的,非空的;
    [,FOREIGN KEY (列名[,列名]......) REFERENCE<表名>(列名[,列名]......)]是用于指定外鍵參照完整性約束條件,FOREIGN KEY指定相關列為外鍵,其參照對象為另外一個表的指定列,即使用REFERENCE引入的外表中的列,當不指定外表列名時,系統將默認其列名與參照鍵的列名相同,要注意的是:使用外鍵時必須使用參照,另外數據的外鍵參照完整性約束條件規定:外鍵的值要么與相對應的主鍵相同,要么為空值(具體由實現系統不同而異)
    [,CHECK]用于使用指定條件對存入表中的數據進行檢查,以確定其合法性,提高數據的安全性。
    例:要建立一個學生情況表(student)
    CREATE TABLE student //創建基本表student
    (st_class CHAR(8),// 定義列st_class班級,數據類型為8位定長字符串
    st_no CHAR(10) NOT NULL,//定義列st_no學號,類型為10位定長字符串,非空
    st_name CHAR(8) NOT NULL,//定義列st_name姓名,類型為8位定長字符串,非空
    st_sex CHAR(2),//定義列st_sex性別,類型為2位定長字符串
    st_age SMALLINT,//定義列st_age年齡,類型為短整型
    PRIMARY KEY (st_no))//定義st_no學號為主鍵。
    例:要建立課程設置表(subject)
    CREATE TABLE subject//創建基本表subject
    (su_no CHAR(4) NOT NULL,// 定義列su_no課號,類型為4位定長字符串,非空
    su_subject CHAR(20) NOT NULL,// 定義列su_subject課程名,類型為20位定長字符串,非空
    su_credit INTEGER,// 定義列su_credit學分,類型為長整數
    su_period INTEGER,//定義列su_period學時,類型為長整數
    su_preno CHAR(4),//定義列su_preno先修課號,類型為4位定長字符串
    PRIMARY KEY(su_no))//定義su_no課號為主鍵。
    例:要建立學生選課表(score)
    CREATE TABLE score //創建基本表score
    (st_no CHAR(10),//定義列st_no學號,類型為10位定長字符串
    su_no CHAR(4),//定義列su_no課號,類型為4位定長字符串
    sc_score INTEGER NULL,//定義列sc_score,類型為長整形,可以為空值
    FOREIGN KEY (st_no) REFERENCE student,//從表student中引入參照外鍵st_no,以確保本表與表student的關聯與同步
    FOREIGN KEY (suno) REFERENCE subject)//從表subject中引入參照外鍵su_no,以確保本表與表subject的關聯與同步
    (2)基本表的刪除:用以從數據庫中刪除一個基本表及其全部內容,其語句格式為:
    DROP TABLE[<數據庫名>.]表名
    例如:將上面建立的表都刪除
    DROP TABLE student,subject,score
    (3)基本表的修改:在基本表建立并使用一段時間后,可能需要根據實際要求對基本表的結構進行修改,即增加新的屬性或刪除屬性。
    增加屬性的語句格式為:
    ALTER TABLE [<數據庫名>.]表名 ADD
    (<列名> 數據類型 [缺省值] [NOT NULL / NULL]
    [,<列名> 數據類型[缺省值][NOT NULL / NULL]]......
    [,UNIQUE (列名[,列名]......)]
    [,PRIMARY KEY(列名)]
    [,FOREIGN KEY(列名[,列名]......) REFERENCE <表名>(列名[,列名]......)]
    [,CHECK(條件)][其它參數])
    例如:在基本表student中加入列stborn出生日期,數據類型為DATE,且不能為空值
    ALTER TABLE student ADD (stborn DATE NOT NULL)
    刪除屬性的語句格式為:
    ALTER TABLE [<數據庫名>.]表名 DROP
    ( <列名> 數據類型 [缺省值][NOT NULL / NULL]
    [,<列名> 數據類型 [缺省值][NOT NULL / NULL]]......)
    例如:將基本表student中的列st_age刪除
    ALTER TABLE student DROP (st_age)
    3.視圖定義與刪除
    在SQL中,視圖是外模式一級數據結構的基本單位。它是從一個或幾個基本表中導出的表,是從現有基本表中抽取若干子集組成用戶的“專用表”。這種構造方式必須使用SQL中的SELECT語句來實現。在定義一個視圖時,只是把其定義存放在系統的數據中,而并不直接存儲視圖對應的數據,直到用戶使用視圖時才去求得對應的數據。
    (1)視圖的定義:定義視圖可以使用CREATE VIEW語句實現,其語句格式為:
    CREATE VIEW 視圖名 AS SELECT語句
    從一個基本表中導出視圖:
    例:從基本表student中導出只包括女學生情況的視圖
    CREATE VIEW WOMANVIEW AS //創建一個視圖WOMANVIEW
    SELECT st_class,st_no,st_name,st_age //選擇列st_class,st_no,st_name,st_age顯示
    FROM student //從基本表student引入
    WHERE st_sex=‘女’//引入條件為性別為“女”,注意字符變量都使用單引號引用
    從多個基本表中導出視圖:
    例如:從基本表student和score中導出只包括女學生且分數在60分以上的視圖
    CREATEVIEW WOMAN_SCORE AS //定義視圖WOMANSCORE
    SELECT student.st_class,student.st_no,student.st_name,student.st_age,score.sc_score //有選擇性顯示相關列
    FROM student.score //從基本表student和score中引入
    WHERE student.st_sex=‘女’AND score.sc_score>=60 AND student.st_no=score.st_no //選擇條件:性別為“女” 且分數在60分以上。并使用st_no將兩表聯系起來。
    以后如果進行這一視圖的應用,則只需使用語句
    SELECT * FROM WOMAN_SCORE //其中“*”為通配符,代表所有元素
    (2)視圖的刪除:用于刪除已不再使用的視圖,其語句格式如下:
    DROP VIEW 視圖名
    例:將上面建立的WOMAN_SCORE視圖刪除
    DROP VIEW WOMAN_SCORE
    4.索引的定義與刪除
    索引屬于物理存儲概念,而不是邏輯的概念。在SQL中拋棄了索引概念,直接使用主鍵概念。值得一提的是,有些關系DBMS同時包括索引機制和主鍵機制,這里我們推薦使用主鍵機制,因為它對系統資源占用較低且效率較高。
    (1)索引的定義:索引是建立在基本表之上的,其語句格式為:
    CREATE [UNIQUE] INDEX 索引名 ON
    [<數據庫名>.]表名(列名 [ASC/DESC][,列名 [ASC/DESC]]......)
    這里,保留字UNIQUE表示基本表中的索引值不允許重復,若缺省則表示索引值在表中允許重復;DESC表示按索引鍵降序排列,若缺省或ASC表示升序排列。
    例:對基本表student中的st_no和st_age建立索引,分別為升序與降序,且索引值不允許重復
    CREATE UNIQUE INDEX STINDEX ON//創建索引STINDEX
    student(st_no ASC,st_age DESC)//對student中的st_no和st_age建立索引
    (2)索引的刪除:
    DROP INDEX 索引名
    例:刪除上面建立的索引STINDEX
    DROP INDEX STINDEX
    ##2 (二)數據查詢
    SQL是一種查詢功能很強的語言,只要是數據庫存在的數據,總能通過適當的方法將它從數據庫中查找出來。SQL中的查詢語句只有一個:SELECT,它可與其它語句配合完成所有的查詢功能。SELECT語句的完整語法,可以有6個子句。完整的語法如下:
    SELECT 目標表的列名或列表達式集合
    FROM 基本表或(和)視圖集合
    [WHERE條件表達式]
    [GROUP BY列名集合
    [HAVING組條件表達式]]
    [ORDER BY列名[集合]…]
    整個語句的語義如下:從FROM子句中列出的表中,選擇滿足WHERE子句中給出的條件表達式的元組,然后按GROUPBY子句(分組子句)中指定列的值分組,再提取滿足HAVING子句中組條件表達式的那些組,按SELECT子句給出的列名或列表達式求值輸出。ORDER子句(排序子句)是對輸出的目標表進行重新排序,并可附加說明ASC(升序)或DESC(降序)排列。
    在WHERE子句中的條件表達式F中可出現下列操作符和運算函數:
    算術比較運算符:<,<=,>,>=,=,<>。
    邏輯運算符:AND,OR,NOT。
    集合運算符:UNION(并),INTERSECT(交),EXCEPT(差)。
    集合成員資格運算符:IN,NOT IN
    謂詞:EXISTS(存在量詞),ALL,SOME,UNIQUE。
    聚合函數:AVG(平均值),MIN(最小值),MAX(最大值),SUM(和),COUNT(計數)。
    F中運算對象還可以是另一個SELECT語句,即SELECT語句可以嵌套。
    上面只是列出了WHERE子句中可出現的幾種主要操作,由于WHERE子句中的條件表達式可以很復雜,因此SELECT句型能表達的語義遠比其數學原形要復雜得多。
    下面,我們以上面所建立的三個基本表為例,演示一下SELECT的應用:
    1.無條件查詢
    例:找出所有學生的的選課情況
    SELECT st_no,su_no
    FROM score
    例:找出所有學生的情況
    SELECT*
    FROM student
    “*”為通配符,表示查找FROM中所指出關系的所有屬性的值。
    2.條件查詢
    條件查詢即帶有WHERE子句的查詢,所要查詢的對象必須滿足WHERE子句給出的條件。
    例:找出任何一門課成績在70以上的學生情況、課號及分數
    SELECT UNIQUE student.st_class,student.st_no,student.st_name,student.st_sex,student.st_age,score.su_no,score.score
    FROM student,score
    WHERE score.score>=70 AND score.stno=student.st_no
    這里使用UNIQUE是不從查詢結果集中去掉重復行,如果使用DISTINCT則會去掉重復行。另外邏輯運算符的優先順序為NOT→AND→OR。
    例:找出課程號為c02的,考試成績不及格的學生
    SELECT st_no
    FROM score
    WHERE su_no=‘c02’AND score<60
    3.排序查詢
    排序查詢是指將查詢結果按指定屬性的升序(ASC)或降序(DESC)排列,由ORDER BY子句指明。
    例:查找不及格的課程,并將結果按課程號從大到小排列
    SELECT UNIQUE su_no
    FROM score
    WHERE score<60
    ORDER BY su_no DESC
    4.嵌套查詢
    嵌套查詢是指WHERE子句中又包含SELECT子句,它用于較復雜的跨多個基本表查詢的情況。
    例:查找課程編號為c03且課程成績在80分以上的學生的學號、姓名
    SELECT st_no,st_name
    FROM student
    WHERE stno IN (SELECT st_no
    FROM score
    WHERE su_no=‘c03’ AND score>80 )
    這里需要明確的是:當查詢涉及多個基本表時用嵌套查詢逐次求解層次分明,具有結構程序設計特點。在嵌套查詢中,IN是常用到的謂詞。若用戶能確切知道內層查詢返回的是單值,那么也可用算術比較運算符表示用戶的要求。
    5.計算查詢
    計算查詢是指通過系統提供的特定函數(聚合函數)在語句中的直接使用而獲得某些只有經過計算才能得到的結果。常用的函數有:
    COUNT(*) 計算元組的個數
    COUNT(列名) 對某一列中的值計算個數
    SUM(列名) 求某一列值的總和(此列值是數值型)
    AVG(列名) 求某一列值的平均值(此列值是數值型)
    MAX(列名) 求某一列值中的最大值
    MIN(列名) 求某一列值中的最小值
    例:求男學生的總人數和平均年齡
    SELECT COUNT(*),AVG(st_age)
    FROM student
    WHERE st_sex=‘男’
    例:統計選修了課程的學生的人數
    SELECT COUNT(DISTINCT st_no)
    FROM score
    注意:這里一定要加入DISTINCT,因為有的學生可能選修了多門課程,但統計時只能按1人統計,所以要使用DISTINCT進行過濾。
    ##2 (三) 數據更新
    數據更新包括數據插入、刪除和修改操作。它們分別由INSERT語句,DELETE語句及UPDATE語句完成。這些操作都可在任何基本表上進行,但在視圖上有所限制。其中,當視圖是由單個基本表導出時,可進行插入和修改操作,但不能進行刪除操作;當視圖是從多個基本表中導出時,上述三種操作都不能進行。
    1.數據插入
    將數據插入SQL的基本表有兩種方式:一種是單元組的插入,另一種是多元組的插入。
    單元組的插入:向基本表score中插入一個成績元組(100002,c02,95),可使用以下語句:
    INSERT INTO score(st_no,su_no,score) VALUES(‘100002’,‘c02’,95)
    由此,可以給出單元組的插入語句格式:
    INSERT INTO表名(列名1[,列名2]…) VALUES(列值1[,列值2]…)
    其中,列名序列為要插入值的列名集合,列值序列為要插入的對應值。若插入的是一個表的全部列值,則列名可以省略不寫如上面的(st_no,su_no,score)可以省去;若插入的是表的部分列值,則必須列出相應列名,此時,該關系中未列出的列名取空值。
    多元組的插入:這是一種把SELECT語句查詢結果插入到某個已知的基本表中的方法。
    例如:需要在表score中求出每個學生的平均成績,并保留在某個表中。此時可以先創建一個新的基本表stu_avggrade,再用INSERT語句把表score中求得的每一個學生的平均成績(用SELECT求得)插入至stu_avggrade中。
    CREATE TABLE stu_avggrade
    (st_no CHAR(10) NOT NULL,//定義列st_no學號,類型為10位定長字符串,非空
    age_grade SMALLINT NOT NULL )// 定義列age_grade平均分,類型為短整形,非空
    INSERT INTO stu_avggrade(st_no,age_grade)
    SELECT st_no,AVG(score)
    FROM score
    GROUP BY st_no //因為要求每一個學生所有課程的平均成績,必須按學號分組進行計算。
    2.數據刪除
    SQL的刪除操作是指從基本表中刪除滿足WHERE<條件表達式>的記錄。如果沒有WHERE子句,則刪除表中全部記錄,但表結構依然存在。其語句格式為:
    DELETE FROM表名[WHERE 條件表達式]
    下面舉例說明:
    單元組的刪除:把學號為100002的學生從表student中刪除,可用以下語句:
    DELETE FROM student
    WHERE st_no=‘100002’//因為學號為100002的學生在表student中只有一個,所以為單元組的刪除
    多元組的刪除:學號為100002的成績從表score中刪除,可用以下語句:
    DELETE FROM score
    WHERE st_no=‘100002’//由于學號為100002的元組在表score中可能有多個,所以為多元組刪除
    帶有子查詢的刪除操作:刪除所有不及格的學生記錄,可用以下語句
    DELETE FROM student
    WHERE st_no IN
    (SELETE st_no
    FROM score
    WHERE score<60)
    3.數據修改
    修改語句是按SET子句中的表達式,在指定表中修改滿足條件表達式的記錄的相應列值。其語句格式如下:
    UPDATE 表名 SET 列名=列改變值[WHERE 條件表達式]
    例:把c02的課程名改為英語,可以用下列語句:
    UPDATE subject
    SET su_subject=‘英語’
    WHERE su_no=‘c02’
    例:將課程成績達到70分的學生成績,再提高10%
    UPDATE score
    SET score=1.1*score
    WHERE score>=70
    SQL的刪除語句和修改語句中的WHERE子句用法與SELECT中WHERE子句用法相同。數據的刪除和修改操作,實際上要先做SELECT查詢操作,然后再把找到的元組刪除或修改。
    ##2 (四) 數據控制
    由于數據庫管理系統是一個多用戶系統,為了控制用戶對數據的存取權利,保持數據的共享及完全性,SQL語言提供了一系列的數據控制功能。其中,主要包括安全性控制、完整性控制、事務控制和并發控制。
    1.安全性控制
    數據的安全性是指保護數據庫,以防非法使用造成數據泄露和破壞。保證數據安全性的主要方法是通過對數據庫存取權力的控制來防止非法使用數據庫中的數據。即限定不同用戶操作不同的數據對象的權限。
    存取權控制包括權力的授與、檢查和撤消。權力授與和撤消命令由數據庫管理員或特定應用人員使用。系統在對數據庫操作前,先核實相應用戶是否有權在相應數據上進行所要求的操作。
    (1)權力授與:權力授與有數據庫管理員專用的授權和用戶可用的授權兩種形式。數據庫管理員專用授權命令格式如下:
    |CONNECT |
    GRANT|RESOURCE|TO 用戶名[IDENTIFED BY 口令]
    |DBA |
    其中,CONNECT表示數據庫管理員允許指定的用戶具有連接到數據庫的權力,這種授權是針對新用戶;RESOURCE表示允許用戶建立自己的新關系模式,用戶獲得CONNECT權力后,必須獲得RESOURCE權力才能創建自己的新表;DBA表示數據庫管理員將自己的特權授與指定的用戶。若要同時授與某用戶上述三種授權中的多種權力,則必須通過三個相應的GRANT命令指定。
    另外,具有CONNECT和RESOURCE授權的用戶可以建立自己的表,并在自己建立的表和視圖上具有查詢、插入、修改和刪除的權力。但通常不能使用其他用戶的關系,除非能獲得其他用戶轉授給他的相應權力。
    例:若允許用戶SSE連接到數據庫并可以建立他自己的關系,則可通過如下命令授與權力:
    GRANT CONNECT TO SSE INENTIFIED BY BD1928
    GRANT RESOURCE TO SSE
    用戶可用的授權是指用戶將自己擁有的部分或全部權力轉授給其他用戶的命令形式,其命令格式如下:
    |SELECT |
    |INSERT |
    |DELETE |
    GRANT|UPDATE(列名1[,列名2]…)|ON|表名 |TO|用戶名|[WITH GRANT OPTION]
    |ALTER | |視圖名| |PUBLIC|
    |NDEX |
    |ALL |

    若對某一用戶同時授與多種操作權力,則操作命令符號可用“,”相隔。
    PUBLIC 表示將權力授與數據庫的所有用戶,使用時要注意:
    任選項WITH GRANT OPTION表示接到授權的用戶,具有將其所得到的同時權力再轉授給其他用戶權力。
    例:如果將表student的查詢權授與所有用戶,可使用以下命令:
    GRANT SELECT ON student TO PUBLIC
    例:若將表subject的插入及修改權力授與用戶SSE并使得他具有將這種權力轉授他人的權力,則可使用以下命令:
    GRANT INSERT,UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION
    這里,UPDATE后面跟su_subject是指出其所能修改的列。
    (2)權力回收:權力回收是指回收指定用戶原已授與的某些權力。與權力授與命令相匹配,權力回收也有數據庫管理員專用和用戶可用的兩種形式。
    DBA專用的權力回收命令格式為:
    |CONNECT |
    REVOKE|RESOURCE|FROM用戶名
    |DBA |
    用戶可用的權力回收命令格式為:
    |SELECT |
    |INSERT |
    |DELETE |
    REVOKE|UPDATE(列名1[,列名2]…) |ON|表名 |FROM |用戶名|
    |ALTER | |視圖名| |PUBLIC|
    |INDEX |
    |ALL |
    例:回收用戶SSE的DBA權力:
    REVOKE DBA FROM SSE
    2.完整性控制
    數據庫的完整性是指數據的正確性和相容性,這是數據庫理論中的重要概念。完整性控制的主要目的是防止語義上不正確的數據進入數據庫。關系系統中的完整性約束條件包括實體完整性、參照完整性和用戶定義完整性。而完整性約束條件的定義主要是通過CREATE TABLE語句中的[CHECK]子句來完成。另外,還有一些輔助命令可以進行數據完整性保護。如UNIQUE和NOT NULL,前者用于防止重復值進入數據庫,后者用于防止空值。
    3.事務控制
    事務是并發控制的基本單位,也是恢復的基本單位。在SQL中支持事務的概念。所謂事務,是用戶定義的一個操作序列(集合),這些操作要么都做,要么一個都不做,是一個不可分割的整體。一個事務通常以BEGIN TRANSACTION開始,以COMMIT或ROLLBACK結束。
    SQL提供了事務提交和事務撤消兩種命令:
    (1)事務提交:事務提交的命令為:
    COMMIT [WORK]
    事務提交標志著對數據庫的某種應用操作成功地完成,所有對數據庫的操作都必須作為事務提交給系統時才有效。事務一經提交就不能撤消。
    (2)事務撤消:事務撤消的命令是:
    ROLLBACK [WORK]
    事務撤消標志著相應事務對數據庫操作失敗,因而要撤消對數據庫的改變,即要“回滾”到相應事務開始時的狀態。
    當系統非正常結束時(如掉電、系統死機),將自動執行ROLLBACK命令
    SQL還提供了自動提交事務的機制,其命令為:
    SET AUTO COMMIT ON
    其對應的人工工作方式命令為:
    SET AUTO COMMIT OFF
    一旦規定了自動提交事務方式,則系統將每條SQL命令視為一個事務,并在命令成功執行完成時自動地完成事務提交。
    4.并發控制
    數據庫作為共享資源,允許多個用戶程序并行地存取數據。當多個用戶并行地操作數據庫時,需要通過并發控制對它們加以協調、控制,以保證并發操作的正確執行,并保證數據庫的一致性。
    在SQL中,并發控制采用封鎖技術實現,當一個事務欲對某個數據對象操作時,可申請對該對象加鎖,取得對數據對象的一定控制,以限制其他事務對該對象的操作。其語句格式為:
    |SHARE |
    LOCK TABLE 表名(或表名集合)IN |EXCLUSVE |MODE [NOWAIT]
    |SHARE UPDATE|
    其中,表名(或表名集合)中指出封鎖對象,若為多個表名,則各個表名間以“,”相隔;任選項NOWAIT表示多個用戶要求封鎖相同的關系時,后來提出的要求會被立即退回去,否則會等待該資源釋放。
    SHARE表示共享封鎖方式;EXCLUSIVE表示獨占封鎖方式;SHARE UPDAE表示共享更新封鎖方式。其中共享封鎖方式允許其他事務讀同一數據,但防止其他事務對已封鎖的表進行更新,該鎖主要防止在表的兩次查詢之間對該表的改動;共享更新封鎖SHARE UPDATE是一個行封鎖機制,它可改善表級封鎖的并行性,它能允許并發事務讀和修改一個表中的不同的行;獨占封鎖方式EXCLUSIVE禁止其他事務獲得一個共享鎖且禁止其他事務執行任何數據操作語句,即一旦某個運行事務對某個數據對象施加了排它鎖,則其他任何事務都不能再對該數據對象施加任何方式的鎖,只有處于等待狀態。如果不想無限等待,則選擇NOWAIT。
    PHP(Hypertext Preprocessor,超文本預處理器)是一個遞歸的縮寫名稱,它是一種內嵌在HTML頁面內的腳本語言。它的功能強大,使用方便,開發難度不大,而且可以免費使用。


    SQL語法參考手冊

    日期:2000-9-14 15:41:00
    出處:未知
    作者:未知

    DB2 提供了關連式資料庫的查詢語言 SQL (Structured Query Language),是一種非常口語化、既易學又易懂的語法。 此一語言幾乎是每個資料庫系統都必須提供的,用以表示關連式的操作,包含了資料的定義(DDL)以及資料的處理(DML)。SQL原來拼成SEQUEL,這語言的原型以“系統 R“的名字在 IBM 圣荷西實驗室完成,經過IBM內部及其他的許多使用性及效率測試,其結果相當令人滿意,并決定在系統R 的技術基礎發展出來 IBM 的產品。而且美國國家標準學會(ANSI)及國際標準化組織(ISO)在1987遵循一個幾乎是以 IBM SQL 為基礎的標準關連式資料語言定義。

    一、資料定義 DDL(Data Definition Language)
    資料定語言是指對資料的格式和形態下定義的語言,他是每個資料庫要建立時候時首先要面對的,舉凡資料分哪些表格關系、表格內的有什麼欄位主鍵、表格和表格之間互相參考的關系等等,都是在開始的時候所必須規劃好的。

    1、建表格:
    CREATE TABLE table_name(
    column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY],
    column2 DATATYPE [NOT NULL],
    ...)
    說明: 
    DATATYPE --是資料的格式,詳見表。
    NUT NULL --可不可以允許資料有空的(尚未有資料填入)。
    PRIMARY KEY --是本表的主鍵。

    2、更改表格 
    ALTER TABLE table_name
    ADD COLUMN column_name DATATYPE
    說明:增加一個欄位(沒有刪除某個欄位的語法。
    ALTER TABLE table_name
    ADD PRIMARY KEY (column_name)
    說明:更改表得的定義把某個欄位設為主鍵。
    ALTER TABLE table_name
    DROP PRIMARY KEY (column_name)
    說明:把主鍵的定義刪除。

    3、建立索引 
    CREATE INDEX index_name ON table_name (column_name)
    說明:對某個表格的欄位建立索引以增加查詢時的速度。

    4、刪除 
    DROP table_name
    DROP index_name

    二、的資料形態 DATATYPEs
    smallint
    16 位元的整數。
    interger
    32 位元的整數。
    decimal(p,s)
    p 精確值和 s 大小的十進位整數,精確值p是指全部有幾個數(digits)大小值,s是指小數
    點後有幾位數。如果沒有特別指定,則系統會設為 p=5; s=0 。
    float
    32位元的實數。
    double
    64位元的實數。
    char(n)
    n 長度的字串,n不能超過 254。
    varchar(n)
    長度不固定且其最大長度為 n 的字串,n不能超過 4000。
    graphic(n)
    和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。這個形態是為
    了支援兩個字元長度的字體,例如中文字。
    vargraphic(n)
    可變長度且其最大長度為 n 的雙字元字串,n不能超過 2000。
    date
    包含了 年份、月份、日期。
    time
    包含了 小時、分鐘、秒。
    timestamp
    包含了 年、月、日、時、分、秒、千分之一秒。

    三、資料操作 DML (Data Manipulation Language)
    資料定義好之後接下來的就是資料的操作。資料的操作不外乎增加資料(insert)、查詢資料(query)、更改資料(update) 、刪除資料(delete)四種模式,以下分 別介紹他們的語法:

    1、增加資料:
    INSERT INTO table_name (column1,column2,...)
    VALUES ( value1,value2, ...)
    說明:
    1.若沒有指定column 系統則會按表格內的欄位順序填入資料。
    2.欄位的資料形態和所填入的資料必須吻合。
    3.table_name 也可以是景觀 view_name。

    INSERT INTO table_name (column1,column2,...)
    SELECT columnx,columny,... FROM another_table
    說明:也可以經過一個子查詢(subquery)把別的表格的資料填入。

    2、查詢資料:
    基本查詢
    SELECT column1,columns2,...
    FROM table_name
    說明:把table_name 的特定欄位資料全部列出來
    SELECT *
    FROM table_name
    WHERE column1 = xxx
    [AND column2 > yyy] [OR column3 <> zzz]
    說明:
    1.'*'表示全部的欄位都列出來。
    2.WHERE 之後是接條件式,把符合條件的資料列出來。

    SELECT column1,column2
    FROM table_name
    ORDER BY column2 [DESC]
    說明:ORDER BY 是指定以某個欄位做排序,[DESC]是指從大到小排列,若沒有指明,則是從小到大
    排列

    組合查詢
    組合查詢是指所查詢得資料來源并不只有單一的表格,而是聯合一個以上的
    表格才能夠得到結果的。
    SELECT *
    FROM table1,table2
    WHERE table1.colum1=table2.column1
    說明:
    1.查詢兩個表格中其中 column1 值相同的資料。
    2.當然兩個表格相互比較的欄位,其資料形態必須相同。
    3.一個復雜的查詢其動用到的表格可能會很多個。

    整合性的查詢:
    SELECT COUNT (*)
    FROM table_name
    WHERE column_name = xxx
    說明:
    查詢符合條件的資料共有幾筆。
    SELECT SUM(column1)
    FROM table_name
    說明:
    1.計算出總和,所選的欄位必須是可數的數字形態。
    2.除此以外還有 AVG() 是計算平均、MAX()、MIN()計算最大最小值的整合性查詢。
    SELECT column1,AVG(column2)
    FROM table_name
    GROUP BY column1
    HAVING AVG(column2) > xxx
    說明:
    1.GROUP BY: 以column1 為一組計算 column2 的平均值必須和 AVG、SUM等整合性查詢的關鍵字
    一起使用。
    2.HAVING : 必須和 GROUP BY 一起使用作為整合性的限制。

    復合性的查詢
    SELECT *
    FROM table_name1
    WHERE EXISTS (
    SELECT *
    FROM table_name2
    WHERE conditions )
    說明:
    1.WHERE 的 conditions 可以是另外一個的 query。
    2.EXISTS 在此是指存在與否。
    SELECT *
    FROM table_name1
    WHERE column1 IN (
    SELECT column1
    FROM table_name2
    WHERE conditions )
    說明: 
    1. IN 後面接的是一個集合,表示column1 存在集合里面。
    2. SELECT 出來的資料形態必須符合 column1。

    其他查詢
    SELECT *
    FROM table_name1
    WHERE column1 LIKE 'x%'
    說明:LIKE 必須和後面的'x%' 相呼應表示以 x為開頭的字串。
    SELECT *
    FROM table_name1
    WHERE column1 IN ('xxx','yyy',..)
    說明:IN 後面接的是一個集合,表示column1 存在集合里面。
    SELECT *
    FROM table_name1
    WHERE column1 BETWEEN xx AND yy
    說明:BETWEEN 表示 column1 的值介於 xx 和 yy 之間。

    3、更改資料:
    UPDATE table_name
    SET column1='xxx'
    WHERE conditoins
    說明:
    1.更改某個欄位設定其值為'xxx'。
    2.conditions 是所要符合的條件、若沒有 WHERE 則整個 table 的那個欄位都會全部被更改。

    4、刪除資料:
    DELETE FROM table_name
    WHERE conditions
    說明:刪除符合條件的資料。

    說明:關于WHERE條件后面如果包含有日期的比較,不同數據庫有不同的表達式。具體如下:
    (1)如果是ACCESS數據庫,則為:WHERE mydate>#2000-01-01#
    (2)如果是ORACLE數據庫,則為:WHERE mydate>cast('2000-01-01' as date)
    或:WHERE mydate>to_date('2000-01-01','yyyy-mm-dd')
    在Delphi中寫成:
    thedate= '2000-01-01';
    query1.SQL.add('select * from abc where mydate>cast('+''+thedate+''+' as date)');

    如果比較日期時間型,則為:
    WHERE mydatetime>to_date('2000-01-01 10:00:01','yyyy-mm-dd hh24:mi:ss')

    posted @ 2005-07-14 16:52 一天一點愛戀 閱讀(785) | 評論 (0)編輯 收藏
     
    1.oncontextmenu="window.event.returnvalue=false"將徹底屏蔽鼠標右鍵
    oncontextmenu=self.event.returnValue=false
    oncontextmenu="return false"
    <tableborderoncontextmenu=return(false)><td>no</table>可用于Table

    2.<bodyonselectstart="returnfalse">取消選取、防止復制

    3.onpaste="returnfalse"不準粘貼

    4.oncopy="returnfalse;"oncut="returnfalse;"防止復制

    5.<linkrel="ShortcutIcon"href="favicon.ico">IE地址欄前換成自己的圖標

    6.<linkrel="Bookmark"href="favicon.ico">可以在收藏夾中顯示出你的圖標

    7.<inputstyle="ime-mode:disabled">關閉輸入法

    8.永遠都會帶著框架
    <scriptlanguage="javascript"><!--
    if(window==top)top.location.href="frames.htm";//frames.htm為框架網頁
    //--></script>

    9.防止被人frame
    <SCRIPTLANGUAGE=javascript><!--
    if(top.location!=self.location)top.location=self.location;
    //--></SCRIPT>

    10.<noscript><iframesrc=*.html></iframe></noscript>網頁將不能被另存為

    11.<inputtype=buttonvalue=查看網頁源代碼
    onclick="window.location='view-source:'+'<IMG src="pic/url.gif" align=absMiddle border=0>http://www.csdn.net/">

    12.怎樣通過asp的手段來檢查來訪者是否用了代理
    <%ifRequest.ServerVariables("HTTP_X_FORWARDED_FOR")<>""then
    response.write"<fontcolor=#FF0000>您通過了代理服務器,"&_
    "真實的IP為"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    endif
    %>

    13.取得控件的絕對位置

    //javascript
    <scriptlanguage="javascript">
    functiongetIE(e){
    vart=e.offsetTop;
    varl=e.offsetLeft;
    while(e=e.offsetParent){
    t+=e.offsetTop;
    l+=e.offsetLeft;
    }
    alert("top="+t+"\nleft="+l);
    }
    </script>

    //VBScript
    <scriptlanguage="VBScript"><!--
    functiongetIE()
    dimt,l,a,b
    seta=document.all.img1
    t=document.all.img1.offsetTop
    l=document.all.img1.offsetLeft
    whilea.tagName<>"BODY"
    seta=a.offsetParent
    t=t+a.offsetTop
    l=l+a.offsetLeft
    wend
    msgbox"top="&t&chr(13)&"left="&l,64,"得到控件的位置"
    endfunction
    --></script>

    14.光標是停在文本框文字的最后
    <scriptlanguage="javascript">
    functioncc()
    {
    vare=event.srcElement;
    varr=e.createTextRange();
    r.moveStart('character',e.value.length);
    r.collapse(true);
    r.select();
    }
    </script>
    <inputtype=textname=text1value="123"onfocus="cc()">

    15.判斷上一頁的來源
    asp:
    request.servervariables("HTTP_REFERER")

    javascript:
    document.referrer

    16.最小化、最大化、關閉窗口
    <objectid=hh1classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
    <paramname="Command"value="Minimize"></object>
    <objectid=hh2classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">
    <paramname="Command"value="Maximize"></object>
    <OBJECTid=hh3classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
    <PARAMNAME="Command"value="Close"></OBJECT>

    <inputtype=buttonvalue=最小化onclick=hh1.Click()>
    <inputtype=buttonvalue=最大化onclick=hh2.Click()>
    <inputtype=buttonvalue=關閉onclick=hh3.Click()>
    本例適用于IE

    17.
    <%
    '定義數據庫連接的一些常量
    ConstadOpenForwardOnly=0'游標只向前瀏覽記錄,不支持分頁、Recordset、BookMark
    ConstadOpenKeyset=1'鍵集游標,其他用戶對記錄說做的修改將反映到記錄集中,但其他用戶增加或刪除記錄不會反映到記錄集中。支持分頁、Recordset、BookMark
    ConstadOpenDynamic=2'動態游標功能最強,但耗資源也最多。用戶對記錄說做的修改,增加或刪除記錄都將反映到記錄集中。支持全功能瀏覽(ACCESS不支持)。
    ConstadOpenStatic=3'靜態游標,只是數據的一個快照,用戶對記錄說做的修改,增加或刪除記錄都不會反映到記錄集中。支持向前或向后移動

    ConstadLockReadOnly=1'鎖定類型,默認的,只讀,不能作任何修改
    ConstadLockPessimistic=2'當編輯時立即鎖定記錄,最安全的方式
    ConstadLockOptimistic=3'只有在調用Update方法時才鎖定記錄集,而在此前的其他操作仍可對當前記錄進行更改、插入和刪除等
    ConstadLockBatchOptimistic=4'當編輯時記錄不會被鎖定,而更改、插入和刪除是在批處理方式下完成的

    ConstadCmdText=&H0001
    ConstadCmdTable=&H0002
    %>

    18.網頁不會被緩存
    HTM網頁
    <METAHTTP-EQUIV="pragma"CONTENT="no-cache">
    <METAHTTP-EQUIV="Cache-Control"CONTENT="no-cache,must-revalidate">
    <METAHTTP-EQUIV="expires"CONTENT="Wed,26Feb199708:21:57GMT">
    或者<METAHTTP-EQUIV="expires"CONTENT="0">
    ASP網頁
    Response.Expires=-1
    Response.ExpiresAbsolute=Now()-1
    Response.cachecontrol="no-cache"
    PHP網頁
    header("Expires:Mon,26Jul199705:00:00GMT");
    header("Cache-Control:no-cache,must-revalidate");
    header("Pragma:no-cache");


    19.檢查一段字符串是否全由數字組成
    <scriptlanguage="javascript"><!--
    functioncheckNum(str){returnstr.match(/\D/)==null}
    alert(checkNum("1232142141"))
    alert(checkNum("123214214a1"))
    //--></script>

    20.獲得一個窗口的大小
    document.body.clientWidth,document.body.clientHeight

    21.怎么判斷是否是字符
    if(/[^\x00-\xff]/g.test(s))alert("含有漢字");
    elsealert("全是字符");

    22.TEXTAREA自適應文字行數的多少
    <textarearows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
    </textarea>

    23.日期減去天數等于第二個日期
    <scriptlanguage=javascript>
    functioncc(dd,dadd)
    {
    //可以加上錯誤處理
    vara=newDate(dd)
    a=a.valueOf()
    a=a-dadd*24*60*60*1000
    a=newDate(a)
    alert(a.getFullYear()+"年"+(a.getMonth()+1)+"月"+a.getDate()+"日")
    }
    cc("12/23/2002",2)
    </script>

    24.選擇了哪一個Radio
    <HTML><scriptlanguage="vbscript">
    functioncheckme()
    foreachobinradio1
    ifob.checkedthenwindow.alertob.value
    next
    endfunction
    </script><BODY>
    <INPUT name="radio1" type="radio" value="style" checked>Style
    <INPUT name="radio1" type="radio" value="barcode">Barcode
    <INPUT type="button" value="check"onclick="checkme()">
    </BODY></HTML>

    25.獲得本頁url的request.servervariables("")集合
    Response.Write"<TABLEborder=1><!--TableHeader--><TR><TD><B>Variables</B></TD><TD><B>value</B></TD></TR>"
    foreachobinRequest.ServerVariables
    Response.Write"<TR><TD>"&ob&"</TD><TD>"&Request.ServerVariables(ob)&"</TD></TR>"
    next
    Response.Write"</TABLE>"

    26.
    本機ip<%=request.servervariables("remote_addr")%>
    服務器名<%=Request.ServerVariables("SERVER_NAME")%>
    服務器IP<%=Request.ServerVariables("LOCAL_ADDR")%>
    服務器端口<%=Request.ServerVariables("SERVER_PORT")%>
    服務器時間<%=now%>
    IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>
    腳本超時時間<%=Server.ScriptTimeout%>
    本文件路徑<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
    服務器CPU數量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
    服務器解譯引擎<%=ScriptEngine&"/" & ScriptEngineMajorVersion &"." & ScriptEngineMinorVersion & "." & ScriptEngineBuildVersion%>
    服務器操作系統<%=Request.ServerVariables("OS")%>

    27.ENTER鍵可以讓光標移到下一個輸入框
    <input onkeydown="if(event.keyCode==13)event.keyCode=9">

    28.檢測某個網站的鏈接速度:
    把如下代碼加入<body>區域中:
    <scriptlanguage=javascript>
    tim=1
    setInterval("tim++",100)
    b=1

    varautourl=newArray()
    autourl[1]="< src="pic/url.gif" align=absMiddle border=0>www.njcatv.net"
    autourl[2]="javacool.3322.net"
    autourl[3]="< src="pic/url.gif" align=absMiddle border=0>www.sina.com.cn"
    autourl[4]="www.nuaa.edu.cn"
    autourl[5]="< src="pic/url.gif" align=absMiddle border=0>www.cctv.com"

    functionbutt(){
    document.write("<formname=autof>")
    for(vari=1;i<autourl.length;i++)
    document.write("<inputtype=textname=txt"+i+"size=10value=測試中……>=》<inputtype=textname=url"+i+"size=40>=》<inputtype=buttonvalue=GOonclick=window.open(this.form.url"+i+".value)><br/>")
    document.write("<inputtype=submitvalue=刷新></form>")
    }
    butt()
    functionauto(url){
    document.forms[0]["url"+b].value=url
    if(tim>200)
    {document.forms[0]["txt"+b].value="鏈接超時"}
    else
    {document.forms[0]["txt"+b].value="時間"+tim/10+"秒"}
    b++
    }
    functionrun(){for(vari=1;i<autourl.length;i++)document.write("<imgsrc=http://"+autourl[i]+"/"+Math.random()+"width=1height=1onerror=auto('< src="pic/url.gif" align=absMiddle border=0>http://";+autourl[i]+"')>")}
    run()</script>

    29.各種樣式的光標
    auto:標準光標
    default:標準箭頭
    hand:手形光標
    wait:等待光標
    text:I形光標
    vertical-text:水平I形光標
    no-drop:不可拖動光標
    not-allowed:無效光標
    help:?幫助光標
    all-scroll:三角方向標
    move:移動標
    crosshair:十字標
    e-resize
    n-resize
    nw-resize
    w-resize
    s-resize
    se-resize
    sw-resize

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


    Kafree另外收集增加的:

    1,屏蔽鼠標右鍵、Ctrl+n、shift+F10、F5刷新、退格鍵

    <body onkeydown="KeyDown()"
    oncontextmenu="event.returnValue=false">

    <script language="Javascript"><!--
    //屏蔽鼠標右鍵、Ctrl+n、shift+F10、F5刷新、退格鍵
    //Author: meizz(梅花雨) 2002-6-18

    function KeyDown(){
    if ((window.event.altKey)&&
    ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向鍵 ←
    (window.event.keyCode==39))){ //屏蔽 Alt+ 方向鍵 →
    alert("不準你使用ALT+方向鍵前進或后退網頁!");
    event.returnValue=false;
    }

    /* 注:這還不是真正地屏蔽 Alt+ 方向鍵,
    因為 Alt+ 方向鍵彈出警告框時,按住 Alt 鍵不放,
    用鼠標點掉警告框,這種屏蔽方法就失效了。以后若
    有哪位高手有真正屏蔽 Alt 鍵的方法,請告知。*/

    if ((event.keyCode==8) || //屏蔽退格刪除鍵
    (event.keyCode==116)|| //屏蔽 F5 刷新鍵
    (event.ctrlKey && event.keyCode==82)){ //Ctrl + R
    event.keyCode=0;
    event.returnValue=false;
    }
    if ((event.ctrlKey)&&(event.keyCode==78)) //屏蔽 Ctrl+n
    event.returnValue=false;
    if ((event.shiftKey)&&(event.keyCode==121)) //屏蔽 shift+F10
    event.returnValue=false;
    if (window.event.srcElement.tagName == "A" && window.event.shiftKey)
    window.event.returnValue = false; //屏蔽 shift 加鼠標左鍵新開一網頁
    if ((window.event.altKey)&&(window.event.keyCode==115)){ //屏蔽Alt+F4
    window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
    return false;}
    }
    /* 另外可以用 window.open 的方法屏蔽 IE 的所有菜單
    第一種方法:
    window.open("你的.htm", "","toolbar=no,location=no,directories=no,menubar=no,scrollbars=no,resizable=yes,status=no,top=0,left=0")
    第二種方法是打開一個全屏的頁面:
    window.open("你的.asp", "", "fullscreen=yes")
    */
    // --></script>
    <h2 align=center>屏蔽鼠標右鍵、Ctrl+n、shift+F10、F5刷新、退格鍵</h2>
    </body>
    </html>

    2,RecordSet屬性和方法
       為了更精確地跟蹤數據,要用RecordSet組件創建包含數據的游標,游標就是儲存在內存中的數據。
       rs = Server.CreateObject("ADODB.RecordSet")
       rs.Open(sqlStr,conn,1,A)
       注:A=1讀取
       A=3 新增、修改、刪除
       在RecordSet組件中,常用的屬性和方法有:
       rs.Fields.Count: RecordSet對象的字段數。
       rs(i).Name: 第i個字段的名稱,i為0至rs.Fields.Count-1
       rs(i): 第i個字段的數據,i為0至rs.Fields.Count-1
       rs("字段名"): 指定字段的數據。
       rs.Record.Count:游標中的數據記錄總數。
       rs.EOF: 是否最后一條記錄。
       rs.MoveFirst: 指向第一條記錄。
       rs.MoveLast: 指向最后一條記錄。
       rs.MovePrev: 指向上一條記錄。
       rs.MoveNext: 指向下一條記錄。
       rs.GetRows: 將數據放入數組中。
       rs.Properties.Count:ADO的ResultSet或Connection的屬性個數。
       rs.Properties(item).Name:ADO的ResultSet或Connection的名稱。
       rs.Properties: ADO的ResultSet或Connection的值。
       rs.close(): 關閉連接。

    3,本地無緩存,每次自動刷新
    response.expires=0
    response.addHeader"pragma","no-cache"
    response.addHeader"cache-control","private"

    4,修改contentType并下載gif等格式
    <%
    function dl(f,n)
    onerrorresumenext

    sets=CreateObject("Adodb.Stream")
    S.Mode=3
    S.Type=1
    S.Open
    s.LoadFromFile(server.mappath(f))
    iferr.number>0then
    response.writeerr.number&":"&err.description
    else
    response.contentType="application/x-gzip"
    response.addheader"Content-Disposition:","attachment;filename="&n
    response.binarywrite(s.Read(s.size))
    endif
    endfunction

    call dl("012922501.gif","t1.gif") %>

    5,常用的幾種數據庫連接代碼
    1) MS Access數據庫連接
    用DSN連接并且沒有用戶名和密碼:
    <%
    set conn = Server.CreateObject("ADODB.Connection")
    conn.open "YourDSNName"
    %>

    2) 用DSN連接并且有用戶名和密碼:
    <%
    set conn = Server.CreateObject("ADODB.Connection")
    conn.open "YourDSNName","username","password"
    %>

    3) 用實際的數據庫絕對路徑連接:
    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    Strconn="DRIVER={Microsoft Access Driver (*.mdb)}; "
    Strconn=Strconn & "DBQ=e:\yanhang\database.mdb"
    conn.Open Strconn
    %>

    4) 用實際的數據庫相對路徑連接:
    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    Strconn="DRIVER={Microsoft Access Driver (*.mdb)}; "
    Strconn=Strconn & "DBQ=" & Server.MapPath("/database/yanhang.mdb")
    conn.Open Strconn
    %>

    5) MS SQL Server數據庫連接
    用DSN連接:
    <%
    set conn = Server.CreateObject("ADODB.Connection")
    conn.open "DSN=MyDSN;UID=user;PWD=password;DATABASE=databasename"
    %>

    6) 不用DSN連接:
    <%
    Set conn = Server.CreateObject("ADODB.Connection")
    DSNtemp="DRIVER={SQL Server};SERVER=ServerName;UID=USER;PWD=password;DATABASE=databasename"
    conn.open DSNtemp
    %>

    7) FoxPro數據庫連接
    <%
    Set Conn = Server.CreateObject("ADODB.connection")
    ConnStr= "Driver=Microsoft Visual Foxpro Driver; UID=userID;SourceType=DBC;SourceDB=C:\yanhang\database.dbc"
    Conn.Open ConnStr
    %>

    8) Oracle數據庫連接:
    <%
    set conn=server.createobject("adodb.connection")
    conn.cursorlocation=adUseClient
    DSNTemp="Provider=MSDAORA.1;Password=xxxxx;User ID=yanhang;Data Source=xxx.world"
    conn.open DSNtemp
    %>

    9) Paradox數據庫連接:
    <%
    set conn=server.createobject("adodb.connection")
    conn.cursorlocation=adUseClient
    DSNTemp="driver={Microsoft Paradox Driver (*.db)};DriverID=538;Fil=Paradox 5.X;DefaultDir=c:\dbpath\;Dbq=c:\dbpath\;CollatingSequence=ASCII;"
    conn.open DSNtemp
    %>

    10) Sybase數據庫連接:
    <%
    set conn=server.createobject("adodb.connection")
    conn.cursorlocation=adUseClient
    DSNTemp="Driver={SYBASE SYSTEM 11};Srvr=myServerName;Uid=myUsername;Pwd=myPassword;"
    conn.open DSNtemp
    %>

    11) Text數據庫連接:
    <%
    set conn=server.createobject("adodb.connection")
    conn.cursorlocation=adUseClient
    DSNTemp="Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\somepath\;Extensions=asc,csv,tab,txt;Persist Security Info=False"
    conn.open DSNtemp
    '調用 test.csv 的文件
    Set rs=server.createobject("adodb.recordset")
    rs.open "select * from test.csv",conn,1,3
    %>

    6,使用 XML 靜態讀取網頁
    代碼如下:

    <script>
    var oDiv //添加用的節點
    var nP //DIV的 padding-left
    var xh //xmlhttp
    function getXML()
    {
    oDiv = document.all.m
    oDiv.innerHTML = "正在裝載欄目數據,請稍侯......."
    oDiv.style.display= ""
    xh = new ActiveXObject("Microsoft.XMLHTTP")
    xh.onreadystatechange = getReady
    xh.open("GET",a.value,true)
    xh.send()
    }

    function getReady()
    {
    if(xh.readyState==4)
    {
    if(xh.status==200)
    {

    oDiv.innerHTML = "完成"
    }
    else
    {
    oDiv.innerHTML = "抱歉,裝載數據失敗。原因:" + xh.statusText
    }
    }
    }
    </script>
    URL:<input name=a value="http://www.microsoft.com">
    <input onclick="getXML()" type="button" value="get HTML">
    <input onclick="if(xh && xh.responseText) oDiv.innerHTML=xh.responseText" type="button" value="output">
    <div id=m></div>

    7,SQL SERVER 和EXCEL的數據導入導出
    1)、在SQL SERVER里查詢Excel數據:
    SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

    下面是個查詢的示例,它通過用于 Jet 的 OLE DB 提供程序查詢 Excel 電子表格。
    SELECT * FROM OpenDataSource ( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

    2)、將Excel的數據導入SQL server :
    SELECT * into newtable FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...[Sheet1$]

    實例分析:
    SELECT * into newtable FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions

    3)、將SQL SERVER中查詢到的數據導成一個Excel文件
    T-SQL代碼:
    EXEC master..xp_cmdshell 'bcp 庫名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
    參數:S 是SQL服務器名;U是用戶;P是密碼
    說明:還可以導出文本文件等多種格式

    實例:EXEC master..xp_cmdshell 'bcp saletesttmp.dbo.CusAccount out c:\temp1.xls -c -q -S"pmserver" -U"sa" -P"sa"'

    EXEC master..xp_cmdshell 'bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:\ authors.xls -c -Sservername -Usa -Ppassword'

    在VB6中應用ADO導出EXCEL文件代碼:
    Dim cn As New ADODB.Connection
    cn.open "Driver={SQL Server};Server=WEBSVR;DataBase=WebMis;UID=sa;WD=123;"
    cn.execute "master..xp_cmdshell 'bcp "SELECT col1, col2 FROM 庫名.dbo.表名" queryout E:\DT.xls -c -Sservername -Usa -Ppassword'"

    4)、在SQL SERVER里往Excel插入數據:

    insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="c:\Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...table1 (A1,A2,A3) values (1,2,3)

    T-SQL代碼:
    INSERT INTO OPENDATASOURCE('Microsoft.JET.OLEDB.4.0', 'Extended Properties=Excel 8.0;Data source=C:\training\inventur.xls')...[Filiale1$] (bestand, produkt) VALUES (20, 'Test')

    總結:利用以上語句,我們可以方便地將SQL SERVER、ACCESS和EXCEL電子表格軟件中的數據進行轉換,為我們提供了極大方便!


    posted @ 2005-07-14 16:42 一天一點愛戀 閱讀(553) | 評論 (2)編輯 收藏
     
    不同瀏覽器所支持的“事件”

    1。onabort(ns3,ns4,ie4):當用戶終止正在打開的網頁時產生該事件。
    2。onblur(ns3,ns4,ie3,ie4):某元素失去活動焦點時產生該事件。例如鼠標在文本框中點擊后又在文本框外點擊時就會產生。
    3。onchange(ns3,ns4,ie3,ie4):當網頁上某元素的內容發生改變時產生。例如在文本框中輸入文本后又在文本框外點擊時就會產生。
    4。onclick(ns3,ns4,ie3,ie4)單擊網頁上的某元素時產生
    5。ondblclick(ns4,ie4):雙擊網頁上的元素時產生
    6。onerror(ns3,ns4,ie4):瀏覽器在打開網頁的過程中發生錯誤時產生該事件
    7。onfinish(ie4):滾動文本條中的文本完成一次滾動時產生的事件
    8。onfocus(ns3,ns4,ie3,ie4)網頁上的元素獲得焦點時產生該事件
    9。onkeydown(ns4,ie4)按下任意鍵時產生該事件
    10。onkeypress(ns4,ie4)按下任意鍵時并釋放該鍵產生的事件
    11。onkeyup(ns4,ie4)釋放按下的按鍵產生該事件
    12。onload(ns3、4,ie3、4)網頁或圖象調入完成后產生該事件
    13。onmousedown(ns4,ie4)在網頁的某元素上按下鼠標時產生該事件
    14。onmousemove(ie3、4)在網頁的某元素上移動鼠標時產生該事件
    15。onmouseout(ns3、4,ie4)從網頁的某元素移出鼠標時產生該事件
    16。onmouseover(ns3、4,ie3、4)鼠標移入網頁的某元素時產生該事件
    17。onmouseup(ns4,ie4)釋放按下的鼠標時產生該事件
    18。onreset(ns3、4,ie3、4)復位表格時產生該事件
    19。onresize(ns4,ie4)改變瀏覽器時產生該事件
    20。onselect(ns3、4,ie3、4)選擇文本框中的文本時產生該事件
    21。onstart(ie4)滾動文本條中的文本開始滾動時產生該事件
    22。onsubmit(ns3、4,ie3、4)提交表單時產生該事件
    23。onunload(ns3、4,ie3、4)從當前的網頁退出時產生該事件

    馬上出現的alt

    <style>div {filter: Alpha(Opacity=70, FinishOpacity=70, Style=2, StartX=0, StartY=0, FinishX=100, FinishY=100);}</style>
    <img src="icon/popoever.jpg" hint="泡泡哥">
    <img src="icon/poorfish.gif" hint="高僧一個,當和尚太可惜了">
    <img src="icon/admin.gif" hint="my哥哥">
    <div style="visibility:hidden;border:1px solid #000000;background-color:#FFFFCC;font-size:12px;position:absolute;" id=altlayer></div>
    測試完畢...
    <script>
    document.body.onmousemove=quickalt;
    function quickalt() {
    if(event.srcElement.hint && event.srcElement.hint!='') {
    altlayer.style.visibility='visible';
    altlayer.style.left=event.x+10;
    altlayer.style.top=event.y+10;
    altlayer.innerHTML=event.srcElement.hint}
    else altlayer.style.visibility='hidden';}
    </script>

    只能輸入數字(方法一)

    <script language=javascript>
    function onlyNum()
    {
    if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
    event.returnValue=false;
    }
    </script>

    <input onkeydown="onlyNum();">

    只能輸入數字(方法二)

    <input onkeypress="return event.keyCode>=48&&event.keyCode<=57" onpaste="return !clipboardData.getData('text').match(/\D/)" style="ime-mode:Disabled" ondragenter="return false">

    只能輸入數字(方法三)

    <script>
    function check(){
    if (isNaN(tt.value))
    {alert("非法字符!");
    tt.value="";}
    }
    </script>
    <input type="text" name="tt" onkeyup="check();">

    限制textarea多行輸入框的字數

    <textarea name="b" onkeydown="if(this.value.length>=8) this.value=this.value.substring(0, 8)" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').substring(0, 8))">

    驗證表單——不能超過設置字數

    <script>
    function test()
    {
    if(document.a.b.value.length>50)
    {
    alert("不能超過50個字符!");
    document.a.b.focus();
    return false;
    }
    }
    </script>
    <form name=a onsubmit="return test()">
    <textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
    <input type="submit" name="Submit" value="check">
    </form>

     

    驗證表單——只能是漢字

    <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">

    驗證表單——只能是英文字符

    <script language=javascript>
    function onlyEng()
    {
    if(!(event.keyCode>=65&&event.keyCode<=90))
    event.returnValue=false;
    }
    </script>

    <input onkeydown="onlyEng();">

    驗證表單——屏蔽關鍵字(sex , fuck)

    <script language="JavaScript1.2">
    function test() {
    if((a.b.value.indexOf ("sex") == 0)||(a.b.value.indexOf ("fuck") == 0)){
    alert("五講四美三熱愛");
    a.b.focus();
    return false;}
    }
    </script>
    <form name=a onsubmit="return test()">
    <input type=text name=b>
    <input type="submit" name="Submit" value="check">
    </form>

    驗證表單——驗證為email格式

    <SCRIPT LANGUAGE=Javascript RUNAT=Server>
    function isEmail(strEmail) {
    if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
    return true;
    else
    alert("oh");
    }
    </SCRIPT>
    <input type=text onblur=isEmail(this.value)>

     

    css控制checkbox、select的邊框不顯示

    一、<input type=checkbox style="position:absolute;clip: rect(5 16 16 5)">
    二、<input type=checkbox style="position:absolute;clip: rect(6 17 17 6)">
    三、<select name="menu1" style="position:absolute;clip: rect(2 50 30 2)">
    <option>111111</option>
    <option>222222</option>
    <option>333333</option>
    <option>444444</option>
    </select>

    復選框通常都不需要直接點選,點旁邊的文字就行

    <label for="box">點這里的文字看看!<input type=checkbox style="position:absolute;clip: rect(6 15 15 6)" id=box></label>

    用Label標簽還可以讓像軟件一樣使用熱鍵

    <label for="box" accesskey="D"><u><b>D</b></u>issplay Username 顯示用戶名<input type=checkbox style="position:absolute;clip: rect(6 17 17 6)" id=box>

    在標題欄上顯示版權tm

    <title>LEGENDRY_________&#8482;</title>

    隨機播放背景音樂

    <script language="JavaScript">
    <!--
    var sound=new Array();
    sound[0]="1.mid";
    sound[1]="2.mid";
    sound[2]="3.mid";
    sound[3]="4.mid";
    sound[4]="5.mid";
    sound[5]="6.mid";
    sound[6]="7.mid";
    var x=Math.round(Math.random()*6);
    if(navigator.appName=="Microsoft Internet Explorer") {
    document.write("<BGSOUND src='" + sound[x] + "' loop='-1'><br>") ;
    document.write("現在正在播放第"+(x+1)+"首樂曲");
    }
    //-->
    </script>

    網頁背景顏色漸變

    <body style="FILTER: progid:DXImageTransform.Microsoft.Alpha( style=1,opacity=25,finishOpacity=100,startX=50,finishX=100,startY=50,finishY=100); BACKGROUND-COLOR: skyblue">

    點擊圖片鏈接時不顯示虛線框

    <a href=# onfocus="blur()"><img src=XXX.gif border=0></a>

    <a href=#### hidefocus=true><img src=XXX.gif border=0></img></a>

    驗證兩次輸入密碼不同的JS

    <FORM METHOD=POST ACTION="">
    <input type="password" id="input1">
    <input type="password" id="input2">
    <input type="button" value="test" onclick="check()">
    </FORM>
    <script>
    function check()
    {
    with(document.all){
    if(input1.value!=input2.value)
    {
    alert("false")
    input1.value = "";
    input2.value = "";
    }
    else document.forms[0].submit();
    }
    }
    </script>

     

    標題欄文字打字效果

    <SCRIPT language=JavaScript>
    var arr=["█ 歡","■ 歡迎","█ 歡迎光","■ 歡迎光臨"],i=0
    setInterval("if(i>=arr.length)i=0;document.title=arr[i++]",300);
    </SCRIPT>

     

    數字轉換為大寫

    <script language="JScript">
    arr=["零","壹","貳","叁","肆","伍","陸","柒","捌","玖"];
    function go(){
    tmp=cinput.value;
    for(i=0;i<arr.length;i++)tmp=tmp.replace(new RegExp(i,"gi"),arr[i]);
    oinput.value=tmp;
    }
    </script>
    輸入:<input id="cinput" onkeypress="return (event.keyCode>=48&&event.keyCode<=57)" value=31415926>
    <br>
    輸出:<input id="oinput">
    <br>
    <input type="button" value="確定" onclick="go()">

    [推薦]經典網頁代碼25例 希望加精
    01.下載flash我的三種方法:
    --查看源文件,找出flash的絕對路徑,復制,在flashget(或螞蟻)中點任務
    ,然后點新建下載任務即可。
    --在IE的臨時文件夾Temporary Internet Files里把所有的東西都刪掉,然后

    刷新你想要下載flash的網頁,即可得到你所要的flash
    --使用外部軟件,推薦使用Flash Catcher,安裝后只需在你所要下載的flash上右鍵,save即可。

    02.讓你的網頁無法另存為
    <noscript><iframe src=*></iframe></noscript>

    03.讓IFRAME框架內的文檔的背景透明
    <iframe src="about:<body style='background:transparent'>"

    allowtransparency></iframe>

    04.禁止右鍵:
    <body oncontextmenu="return false" ondragstart="return false"

    onselectstart ="return false" onselect="document.selection.empty()"

    oncopy="document.selection.empty()" onbeforecopy="return
    false"onmouseup="document.selection.empty()">

    05.進入頁面后立即自動刷新?
    <meta http-equiv="refresh"

    content="120;url=http://www.wodutom.com/cn083">
    http://www.wodutom.com/cn083,這是你自己的網址。

    06.打開窗口即最大化
    <script language="javascript">
    <!-- Begin
    self.moveTo(0,0)
    self.resizeTo(screen.availWidth,screen.availHeight)
    // End -->
    </script>

    防止外部遞交:
    server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))
    server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))
    if mid(server_v1,8,len(server_v2))<>server_v2 then
    response.write "<br><br><center><table border=1 cellpadding=20 bordercolor=black bgcolor=#EEEEEE width=300>"
    response.write "<tr><td style='font:9pt Verdana'>"
    response.write "請不要從站點外部提交數據!"
    response.write"<input type=submit onclick=""javascript:history.back(1)"" name=Submit class=""button"" value=""返 回"">"
    response.write "</td></tr></table>"
    response.write"</center>"
    response.end
    end if

    07.能隱藏IFRAME的滾動條嗎?我知道的三種方法:
    1. 設置iframe scrolling="no"
    2. 被包含頁body應用overflow:hidden
    3. 被包含頁的body標簽加scroll="no"

    08.加入背景音樂
    <bgsound src="mid/windblue[1].mid" loop="-1"> 只適用于IE

    <embed src="music.mid" autostart="true" loop="true" hidden="true">

    對Netscape ,IE 都適用

    09.嵌入網頁
    <iframe name="tt" src="01a.html" width="450" height="287"

    scrolling="Auto" frameborder="0"></iframe>

    10.跳轉
    <meta http-equiv="refresh" content="3;URL=list.htm">

    11.滾動
    <MARQUEE direction=up height=146 onmouseout=start()

    onmouseover=stop()
    scrollAmount=4></marquee>

    12.細線分隔線
    <hr noshade size=0 color=#C0C0C0>

    13.過度方式
    <meta http-equiv="Page-Exit"

    content="revealTrans(Duration=3,Transition=5)">
    Duration的值為網頁動態過渡的時間,單位為秒。
    Transition是過渡方式,它的值為0到23,分別對應24種過渡方式。如下表:
    0 盒狀收縮 1 盒狀放射
    2 圓形收縮 3 圓形放射
    4 由下往上 5 由上往下
    6 從左至右 7 從右至左
    8 垂直百葉窗 9 水平百葉窗
    10 水平格狀百葉窗 11垂直格狀百葉窗
    12 隨意溶解 13從左右兩端向中間展開
    14從中間向左右兩端展開 15從上下兩端向中間展開
    16從中間向上下兩端展開 17 從右上角向左下角展開
    18 從右下角向左上角展開 19 從左上角向右下角展開
    20 從左下角向右上角展開 21 水平線狀展開
    22 垂直線狀展開 23 隨機產生一種過渡方式

    15.如何控制橫向和縱向滾動條的顯隱?
    <body style="overflow-y:hidden"> 去掉x軸
    <body style="overflow-x:hidden"> 去掉y軸
    <body scroll="no">不顯

    16.怎樣在 FrontPage2000 中加入 Flash 動畫?
    在 FrontPage2000 中,點擊[插入]->[高級]->[插件],在彈出的窗口中,設置

    一下 Flash 文件的大小及其它信息,確定即可。

    17.加入注釋的格式是:    
    〈!-[注釋內容…]--〉

    18.怎樣在網頁中加入 E-mail 鏈接并顯示預定的主題?
    〈A href="mailto:Emailhost@263.net?subject=主題"〉……〈/a〉

    19.定義本網頁關鍵字,可以在〈Head〉〈/Head〉中加入如下代碼:  
    〈meta name="Keywords" content="china,enterprise,business,net"〉   
    Content 中所包含的就是關鍵字,你可以自行設置。   
    這里有個技巧,你可以重復某一個單詞,這樣可以提高自己網站的排行位置,如:
    〈meta name="Keywords" content="china,china,china,china"〉

    20.IE5.0 的部分快捷鍵:
    A:打開查找功能:Ctrl+F
    關閉瀏覽器窗口:Ctrl+W
    打開地址欄下拉列表框:F4
    刷 新:F5
    將當前Web頁保存到收藏夾列表:Ctrl+D
    打開當前 IE 窗口的一個拷貝:Ctrl+N
    停止下載當前網頁:Esc
    光標迅速移動到網頁的開頭:Home
    光標迅速移動到網頁的尾部:End
    打開新的地址鍵入窗口:Ctrl+O
    打開收藏夾:Ctrl+I
    打開歷史記錄文件夾:Ctrl+H
    打開瀏覽器設定的默認主頁:Alt+HOME

    21.添加到收藏夾:
    〈a href="javascript:window.external.addFavorite('http://鏈接','說明

    ');"〉添加到收藏夾〈/a〉

    22.設為首頁:
    〈a href=#

    onclick=this.style.behavior='url(#default#homepage)';this.setHomePage

    ('

    23.定制瀏覽器地址欄前的小圖標:
    A:在網頁的〈head〉〈/head〉間加入以下語句:〈link rel="shortcuticon"

    href="http://…/icon.ico"〉即可。其中 icon.ico 為 16x16 的圖標文件,

    顏色不要超過 16 色。

    24.把滾動條放在瀏覽器窗口的左邊
    A:在 <body> 中加 dir=RTL,即 <body dir=RTL>。

    25.讓背景圖不滾動
    IE瀏覽器支持一個 Body 屬性 bgproperties,它可以讓背景不滾動:
    〈Body Background="圖片文件" bgproperties="fixed"〉

    最全的表格代碼應用[精華]
    1.表格的分隔線可以隱藏
    <table border rules=cols cellspacing=0 align=left> 可以隱藏橫向的分隔線
    <table border rules=rows cellspacing=0 align=right>可以隱藏縱向的分隔線

    <table border rules=none cellspacing=0 align=center>可以隱藏橫向和縱向的分隔線

    2.表格的邊框不斷在閃

    以下方法可以令表格的邊框不斷在閃,很實用的
    在BODY區加上

    <table border="0" width="280" id="myexample"
    style="border:5px solid yellow">

    <tr>

    <td>加入任意的物件.加入任意的物件.

    <br>加入任意的物件.加入任意的物件.

    <br>加入任意的物件.加入任意的物件.</td>

    </tr>

    </table>

    <script language="JavaScript1.2">

    <!--

    function flashit(){

    if (!document.all)

    return

    if (myexample.style.borderColor=="yellow")

    myexample.style.borderColor="lime"

    else

    myexample.style.borderColor="yellow"

    }

    setInterval("flashit()", 500)

    //-->

    </script>

    3.表格分行下載

    這個對表格內容很大比較實用

    在需要分行下載處加上 <tbody >

    比如:
    <table >
    <tbody >
    <tr >
    <td >flsdjfsdjfkdsjf</td >
    </tr >
    <tr >
    <td >skdjfsdjfksd</td >
    </tr >
    </tbody >

    <tbody >
    <tr >
    <td >flsdjfsdjfkdsjf</td >
    </tr >
    <tr >
    <td>skdjfsdjfksd</td >
    </tr >
    </tbody >
    </table >

    4.幾種樣式不同的表格

    <table border="1" width="220" style="position: absolute; left:
    11; top: 11" height="26" >

    <tr>

    <td width="100%">普通表格</td>

    </tr>

    </table>

    5.正立方表格

    <table border="1" width="220" bordercolorlight="#eeeeee"
    bordercolordark="#000000" style="position: absolute; left: 10; top:
    49" height="26">

    <tr>

    <td width="100%">正立方表格</td>

    </tr>

    </table>

    6.細表格

    <table border="0" frame=vsides width="219"
    bgcolor="#000000" cellspacing="1" cellpadding="0"
    height="22" style="position: absolute; left: 11; top: 86">

    <tr bgcolor="#FFFFFF">

    <td width="100%" height="2">細表格</td>

    </tr>

    </table>

    7.立體表格

    <table border="1" width="220" bordercolorlight="#ffffff"
    bordercolordark="#ffffff" style="position: absolute; left: 10; top:
    112" height="34">

    <tr>

    <td width="100%" bgcolor="#B7B7B7"
    bordercolorlight="#000000" bordercolordark="#eeeeee" >立體表格</td>

    </tr>

    </table>

    8.無名表格

    <table width="220" align="center" style="position: absolute;
    left: 246; top: 12" height="51">

    <tr>

    <td><fieldset style="width:220" align="center">
    <legend> 無名表格 </legend>  <p align="right"> </fieldset>
    <br>

    </td>

    </tr>

    </table>

    9.表中表效果Ⅱ

    <table width="220" align="center" style="position:
    absolute; left: 245; top: 89" height="110">
    <tr>
    <td height="75"><fieldset style="width:220"
    align="center"> <legend> 表中表效果Ⅱ </legend> <table
    frame="hsides" border="1"
    bordercolorlight="#000000" bordercolordark="#ffffff"
    width="100%" cellspacing="1" cellpadding="0" height="78">
    <tr bgcolor="#ffffff">
    <td width="100%" height="76"></fieldset></td>
    </tr>
    </table>

    10.表中表效果Ⅰ

    <table width="220" align="center" style="position: absolute;
    left: 10; top: 120" height="138" cellspacing="1"
    cellpadding="0">

    <tr>

    <td height="126"><fieldset style="width: 220; color: #B7B7B7;
    border-style: groove" align="center"> <legend style="color:
    #FFFFFF; border: 1 solid #808080" > <font color="#000000">表中表效果Ⅰ</font>
    </legend>  <p align="right"> </fieldset>

    </td>

    </tr>

    </table>

    11.表格中邊框的顯示

    只顯示上邊框 <table frame=above>
    只顯示下邊框 <table frame=below>
    只顯示左、右邊框 <table frame=vsides>
    只顯示上、下邊框 <table frame=hsides>
    只顯示左邊框 <table frame=lhs>
    只顯示右邊框 <table frame=rhs>
    不顯示任何邊框 <table frame=void>

    posted @ 2005-07-14 16:39 一天一點愛戀 閱讀(480) | 評論 (0)編輯 收藏
     
    1.如何用Asp判斷你的網站的虛擬物理路徑
    答:使用Mappath方法
    < p align="center" >< font size="4" face="Arial" >< b >
    The Physical path to this virtual website is:
    < /b >< /font >
    < font color="#FF0000" size="6" face="Arial" >
    < %= Server.MapPath("\")% >
    < /font >< /p >
    2.我如何知道使用者所用的瀏覽器?
    答:使用the Request object方法
    strBrowser=Request.ServerVariables("HTTP_USER_AGENT")
    If Instr(strBrowser,"MSIE") < > 0 Then
       Response.redirect("ForMSIEOnly.htm")
    Else
       Response.redirect("ForAll.htm")
    End If

    3.如何計算每天的平均反復訪問人數
    答:解決方法
    < % startdate=DateDiff("d",Now,"01/01/1990")
    if strdate< 0 then startdate=startdate*-1
    avgvpd=Int((usercnt)/startdate) % >
    顯示結果
    < % response.write(avgvpd) % >
    that is it.this page have been viewed since November 10,1998

    4.如何顯示隨機圖象
    < % dim p,ppic,dpic
    ppic=12
    randomize
    p=Int((ppic*rnd)+1)
    dpic="graphix/randompics/"&p&".gif"
    % >
    顯示
    < img src="< %=dpic% >" >

    5.如何回到先前的頁面
    答:< a href="< %=request.serverVariables("Http_REFERER")% >" >preivous page< /a >
    或用圖片如:< img src="arrowback.gif" alt="< %=request.serverVariables("HTTP_REFERER")% >" >

    6.如何確定對方的IP地址
    答:< %=Request.serverVariables("REMOTE_ADDR)% >

    7.如何鏈結到一副圖片上
    答:< % @Languages=vbs cript % >
    < % response.expires=0
    strimagename="graphix/errors/erroriamge.gif"
    response.redirect(strimagename)
    % >

    8.強迫輸入密碼對話框
    答:把這句話放載頁面的開頭
    < % response.status="401 not Authorized"
    response.end
    % >

    9.如何傳遞變量從一頁到另一頁
    答:用 HIDDEN 類型來傳遞變量
    < % form method="post" action="mynextpage.asp" >
    < % for each item in request.form % >
    < input namee="< %=item% >" type="HIDDEN"
    value="< %=server.HTMLEncode(Request.form(item)) % >" >
    < % next % >
    < /form >

    10.為何我在 asp 程序內使用 msgbox,程序出錯說沒有權限
    答:由于 asp 是服務器運行的,如果可以在服務器顯示一個對話框,那么你只好等有人按了確定之后,你的程序才能繼續執行,而一般服務器不會有人守著,所以微軟不得不禁止這個函數,并胡亂告訴你 (:) 呵呵) 沒有權限。但是ASP和客戶端腳本結合倒可以顯示一個對話框,as follows:
    < % yourVar="測試對話框"% >
    < % s cript language='javas cript' >
    alert("< %=yourvar% >")
    < /s cript >

    11.有沒有辦法保護自己的源代碼,不給人看到
    答:可以去下載一個微軟的Windows s cript Encoder,它可以對asp的腳本和客戶端javas cript/vbs cript腳本進行加密。。。不過客戶端加密后,只有ie5才能執行,服務器端腳本加密后,只有服務器上安裝有s cript engine 5(裝一個ie5就有了)才能執行。

    12.怎樣才能將 query string 從一個 asp 文件傳送到另一個?
    答:前者文件加入下句: Response.Redirect("second.asp?" & Request.ServerVariables("QUERY_STRING"))

    13.global.asa文件總是不起作用?
    答:只有web目錄設置為web application, global.asa才有效,并且一個web application的根目錄下 global.asa才有效。IIS4可以使用Internet Service Manager設置application setting 怎樣才能使得htm文件如同asp文件一樣可以執行腳本代碼?

    14.怎樣才能使得htm文件如同asp文件一樣可以執行腳本代碼?
    答:Internet Sevices Manager - > 選擇default web site - >右鼠鍵- >菜單屬性-〉主目錄- > 應用程序設置(Application Setting)- > 點擊按鈕 "配置"- > app mapping - >點擊按鈕"Add" - > executable browse選擇 \WINNT\SYSTEM32\INETSRV\ASP.DLL EXTENSION 輸入 htm method exclusions 輸入PUT.DELETE 全部確定即可。但是值得注意的是這樣對htm也要由asp.dll處理,效率將降低。

    15.如何注冊組件
    答:有兩種方法。
    第一種方法:手工注冊 DLL 這種方法從IIs 3.0一直使用到IIs 4.0和其它的Web Server。它需要你在命令行方式下來執行,進入到包含有DLL的目錄,并輸入:regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它會把dll的特定信息注冊入服務器中的注冊表中。然后這個組件就可以在服務器上使用了,但是這個方法有一個缺陷。當使用這種方法注冊完畢組件后,該組件必須要相應的設置NT的匿名帳號有權限執行這個dll。特別是一些組件需要讀取注冊表,所以,這個注冊組件的方法僅僅是使用在服務器上沒有MTS的情況下,要取消注冊這個dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll

    第二種方法:使用MTS(Microsoft Transaction Server) MTS是IIS 4新增特色,但是它提供了巨大的改進。MTS允許你指定只有有特權的用戶才能夠訪問組件,大大提高了網站服務器上的安全性設置。在MTS上注冊組件的步驟如下:
    1) 打開IIS管理控制臺。
    2) 展開transaction server,右鍵單擊"pkgs installed"然后選擇"new package"。
    3) 單擊"create an empty package"。
    4) 給該包命名。
    5) 指定administrator帳號或則使用"interactive"(如果服務器經常是使用administrator 登陸的話)。
    6) 現在使用右鍵單擊你剛建立的那個包下面展開后的"components"。選擇 "new then component"。
    7) 選擇 "install new component" 。
    8) 找到你的.dll文件然后選擇next到完成。
    要刪除這個對象,只要選擇它的圖標,然后選擇delete。
    附注:特別要注意第二種方法,它是用來調試自己編寫組件的最好方法,而不必每次都需要重新啟動機器了。

    16. ASP與Access數據庫連接:

    <%@ language=VBs cript%>
    <%
    dim conn,mdbfile
    mdbfile=server.mappath("數據庫名稱.mdb")
    set conn=server.createobject("adodb.connection")
    conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=數據庫密碼;dbq="&mdbfile

    %>

    17. ASP與SQL數據庫連接:

    <%@ language=VBs cript%>
    <%
    dim conn
    set conn=server.createobject("ADODB.connection")
    con.open "PROVIDER=SQLOLEDB;DATA SOURCE=SQL服務器名稱或IP地址;UID=sa;PWD=數據庫密碼;DATABASE=數據庫名稱
    %>

    寫到數據庫的內容,讀出來時沒有了空格和換行 ,該怎么解決?
    或與此類似問題

    問題的解答就是在寫入數據庫做Replace替換
    拿出我用的一個函數供大家參考

    <%
    '----------Html轉換為文本:編輯時拿來做轉換
    Function Html2Text(Str1)
    If isNULL(Str1) Then
    Html2Text=""
    Exit Function
    End If
    Str1=Replace(Str1,"&lt;","<")
    Str1=Replace(Str1,"&gt;",">")
    Str1=Replace(Str1,"<br>",VBcrlf)
    Str1=Replace(Str1,"&quot;",chr(34))
    Str1=Replace(Str1,"&nbsp;"," ")
    Str1=Replace(Str1,"&amp;","&")
    Html2Text=Str1
    End Function
    '-------------------文本轉換為Html:寫入數據庫時使用---------------
    Function Text2Html(Str1)
    If isNULL(Str1) Then
    Text2Html=""
    Exit Function
    End If
    Str1=Replace(Str1,"&","&amp;")
    Str1=Replace(Str1,"<","&lt;")
    Str1=Replace(Str1,">","&gt;")
    Str1=Replace(Str1,VBcrlf,"<br>")
    Str1=Replace(Str1,chr(34),"&quot;")
    Str1=Replace(Str1,chr(9),"&nbsp;&nbsp;&nbsp;")
    Str1=Replace(Str1," ","&nbsp;")
    Text2Html=Str1
    End Function

    %>

    二.關于小數點前0的顯示問題

    1.如果小數點后位數是固定的,那么可以使用函數FormatNumber()

    示例:

    <%
    MyNumber=0.323
    Response.Write FormatNumber(MyNumber,2,-1) '保留小數點后兩位
    %>

    2.如果小數點后位數不固定,那么可以如下

    示例:
    <%
    MyNumber=0.323
    If Left(Cstr(MyNumber),1)="." Then Response.Write "0"&MyNumber Else Response.Write MyNumber
    %>
    也可以寫一個函數
    <%
    Function FormatNum(Num)
    If Left(Cstr(Num),1)="." Then FormatNum="0"&Num Else FormatNum=Num
    End Function
    %>

    建立記錄集對象:

    set rs=server.createobject("adodb.recordset")
    rs.open SQL語句,conn,3,2

    18. SQL常用命令使用方法:

    (1) 數據記錄篩選:

    sql="select * from 數據表 where 字段名=字段值 order by 字段名 [desc]"

    sql="select * from 數據表 where 字段名 like '%字段值%' order by 字段名 [desc]"

    sql="select top 10 * from 數據表 where 字段名 order by 字段名 [desc]"

    sql="select * from 數據表 where 字段名 in ('值1','值2','值3')"

    sql="select * from 數據表 where 字段名 between 值1 and 值2"

    (2) 更新數據記錄:

    sql="update 數據表 set 字段名=字段值 where 條件表達式"

    sql="update 數據表 set 字段1=值1,字段2=值2 …… 字段n=值n where 條件表達式"

    (3) 刪除數據記錄:

    sql="delete from 數據表 where 條件表達式"

    sql="delete from 數據表" (將數據表所有記錄刪除)

    (4) 添加數據記錄:

    sql="insert into 數據表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"

    sql="insert into 目標數據表 select * from 源數據表" (把源數據表的記錄添加到目標數據表)

    (5) 數據記錄統計函數:

    AVG(字段名) 得出一個表格欄平均值
    COUNT(*|字段名) 對數據行數的統計或對某一欄有值的數據行數統計
    MAX(字段名) 取得一個表格欄最大的值
    MIN(字段名) 取得一個表格欄最小的值
    SUM(字段名) 把數據欄的值相加

    引用以上函數的方法:

    sql="select sum(字段名) as 別名 from 數據表 where 條件表達式"
    set rs=conn.excute(sql)

    用 rs("別名") 獲取統的計值,其它函數運用同上。

    (5) 數據表的建立和刪除:

    CREATE TABLE 數據表名稱(字段1 類型1(長度),字段2 類型2(長度) …… )

    例:CREATE TABLE tab01(name varchar(50),datetime default now())

    DROP TABLE 數據表名稱 (永久性刪除一個數據表)

    19. 記錄集對象的方法:

    rs.movenext 將記錄指針從當前的位置向下移一行
    rs.moveprevious 將記錄指針從當前的位置向上移一行
    rs.movefirst 將記錄指針移到數據表第一行
    rs.movelast 將記錄指針移到數據表最后一行
    rs.absoluteposition=N 將記錄指針移到數據表第N行
    rs.absolutepage=N 將記錄指針移到第N頁的第一行
    rs.pagesize=N 設置每頁為N條記錄
    rs.pagecount 根據 pagesize 的設置返回總頁數
    rs.recordcount 返回記錄總數
    rs.bof 返回記錄指針是否超出數據表首端,true表示是,false為否
    rs.eof 返回記錄指針是否超出數據表末端,true表示是,false為否
    rs.delete 刪除當前記錄,但記錄指針不會向下移動
    rs.addnew 添加記錄到數據表末端
    rs.update 更新數據表記錄

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

    20 Recordset對象方法

    Open方法

    recordset.Open Source,ActiveConnection,CursorType,LockType,Options

    Source
    Recordset對象可以通過Source屬性來連接Command對象。Source參數可以是一個Command對象名稱、一段SQL命令、一個指定的數據表名稱或是一個Stored Procedure。假如省略這個參數,系統則采用Recordset對象的Source屬性。

    ActiveConnection
    Recordset對象可以通過ActiveConnection屬性來連接Connection對象。這里的ActiveConnection可以是一個Connection對象或是一串包含數據庫連接信息(ConnectionString)的字符串參數。

    CursorType
    Recordset對象Open方法的CursorType參數表示將以什么樣的游標類型啟動數據,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下:
    --------------------------------------------------------------
    常數 常數值 說明
    -------------------------------------------------------------
    adOpenForwardOnly 0 缺省值,啟動一個只能向前移動的游標(Forward Only)。
    adOpenKeyset 1 啟動一個Keyset類型的游標。
    adOpenDynamic 2 啟動一個Dynamic類型的游標。
    adOpenStatic 3 啟動一個Static類型的游標。
    -------------------------------------------------------------
    以上幾個游標類型將直接影響到Recordset對象所有的屬性和方法,以下列表說明他們之間的區別。

    -------------------------------------------------------------
    Recordset屬性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
    -------------------------------------------------------------
    ADO Recordset的屬性和方法的有效性

    ADO Recordset的屬性和方法在不同的光標類型下,有不同的表現,這里列出了其詳細情況列表
    ADO Recordset屬性的有效性列表

    屬性 ForwardOnly Dynamic Keyset Static

    AbsolutePage 無效 無效 讀/寫 讀/寫
    AbsolutePosition 無效 無效 讀/寫 讀/寫
    ActiveConnection 讀/寫 讀/寫 讀/寫 讀/寫
    BOF 只讀 只讀 只讀 只讀
    Bookmark 無效 無效 讀/寫 讀/寫
    CacheSize 讀/寫 讀/寫 讀/寫 讀/寫
    CursorLocation 讀/寫 讀/寫 讀/寫 讀/寫
    CursorType 讀/寫 讀/寫 讀/寫 讀/寫
    EditMode 只讀 只讀 只讀 只讀
    EOF 只讀 只讀 只讀 只讀
    Filter 讀/寫 讀/寫 讀/寫 讀/寫
    LockType 讀/寫 讀/寫 讀/寫 讀/寫
    MarshalOptions 讀/寫 讀/寫 讀/寫 讀/寫
    MaxRecords 讀/寫 讀/寫 讀/寫 讀/寫
    PageCount 無效 無效 只讀 只讀
    PageSize 讀/寫 讀/寫 讀/寫 讀/寫
    RecordCount 無效 無效 只讀 只讀
    Source 讀/寫 讀/寫 讀/寫 讀/寫
    State 只讀 只讀 只讀 只讀
    Status 只讀 只讀 只讀 只讀

     

    在使用Microsoft OLE DB Provider for ODBC.1.0時候,屬性AbsolutePosition
    和AbsolutePage是只寫的

    ADO Recordse方法的有效性列表

    方法 ForwardOnly Dynamic Keyset Static

    AddNew 是 是 是 是
    CancelBatch 是 是 是 是
    CancelUpdate 是 是 是 是
    Clone 否 否 是 是
    Close 是 是 是 是
    Delete 是 是 是 是
    GetRows 是 是 是 是
    Move 是 是 是 是
    MoveFirst 是 是 是 是
    MoveLast 否 是 是 是
    MoveNext 是 是 是 是
    MovePrevious 否 是 是 是
    NextRecordset * 是 是 是 是
    Open 是 是 是 是
    Requery 是 是 是 是
    Resync 否 否 是 是
    Supports 是 是 是 是
    Update 是 是 是 是
    UpdateBatch 是 是 是 是

    * Microsoft Access databases.不支持
    --------------------------------------------------------------
    其中NextRecordset方法并不適用于Microsoft Access數據庫。

    LockType
    Recordset對象Open方法的LockType參數表示要采用的Lock類型,如果忽略這個參數,那么系統會以Recordset對象的LockType屬性為預設值。LockType參數包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下:

    -------------------------------------------------------------
    常數 常數值 說明
    --------------------------------------------------------------
    adLockReadOnly 1 缺省值,Recordset對象以只讀方式啟動,無法運行AddNew、Update及Delete等方法
    adLockPrssimistic 2 當數據源正在更新時,系統會暫時鎖住其他用戶的動作,以保持數據一致性。
    adLockOptimistic 3 當數據源正在更新時,系統并不會鎖住其他用戶的動作,其他用戶可以對數據進行增、刪、改的操作。
    adLockBatchOptimistic 4 當數據源正在更新時,其他用戶必須將CursorLocation屬性改為adUdeClientBatch才能對數據進行增、
    刪、改的操作。

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

    RS.OPEN SQL,CONN,A,B

    A:

    ADOPENFORWARDONLY(=0)
    只讀,且當前數據記錄只能向下移動

    ADOPENKEYSET(=1)
    只讀,當前數據記錄可自由移動

    ADOPENDYNAMIC(=2)
    可讀寫,當前數據記錄可自由移動

    ADOPENSTATIC(=3)
    可讀寫,當前數據記錄可自由移動,可看到新增記錄

    B:

    ADLOCKREADONLY(=1)
    缺省鎖定類型,記錄集是只讀的,不能修改記錄

    ADLOCKPESSIMISTIC(=2)
    悲觀鎖定,當修改記錄時,數據提供者將嘗試鎖定記錄以確保成功地編輯記錄。只要編輯一開始,則立即鎖住記錄。

    ADLOCKOPTIMISTIC(=3)
    樂觀鎖定 ,直到用Update方法提交更新記錄時才鎖定記錄。 ADLOCKBATCHOPTIMISTIC(=4)
    批量樂觀鎖定,允許修改多個記錄,只有調用UpdateBatch方法后才鎖定記錄。

    當不需要改動任何記錄時,應該使用只讀的記錄集,這樣提供者不用做任何檢測。
    對于一般的使用,樂觀的鎖定可能是最好的選擇,因為記錄只被鎖定一小段時間,
    數據在這段時間被更新。這減少了資源的使用。

    posted @ 2005-07-14 16:11 一天一點愛戀 閱讀(162) | 評論 (0)編輯 收藏
     

    成員表

    下面的表格列出了 document 對象引出的成員。請單擊左側的標簽來選擇你想要查看的成員類型。

     
    屬性
     
    顯示:
    屬性
    集合
    事件
    方法
    對象
    樣式
    屬性 描述
    activeElement 獲取當父 document 擁有焦點時獲得焦點的對象。
    alinkColor 設置或獲取元素中所有激活鏈接的顏色。
    bgColor 不贊成。設置或獲取表明對象后面的背景顏色的值。
    charset 設置或獲取用于解碼對象的字符集。
    cookie 設置或獲取 cookie 的字符串值。
    defaultCharset 從當前的區域語言中獲取默認字符集。
    designMode 設置或獲取表明文檔是否可被編輯的值。
    dir 設置或獲取表明對象的閱讀順序的值。
    doctypeMicrosoft? Internet Explorer 6 新增 獲取與當前文檔關聯的文檔類型聲明。
    documentElement 獲取對文檔根結點的引用。
    domain 設置或獲取文檔的安全域名。
    expando 設置或獲取表明是否可對象內創建任意變量的值。
    fgColor 設置或獲取文檔的前景(文本)顏色。
    fileCreatedDate 獲取文件創建的日期。
    fileModifiedDate 獲取文件上次修改的日期。
    fileSize 獲取文件大小。
    implementationMicrosoft? Internet Explorer 6 新增 獲取當前文檔implementation 對象。
    lastModified 獲取頁面上次修改的日期,若頁面提供的話。
    linkColor 設置或獲取對象文檔鏈接的顏色。
    parentWindow 獲取容器對象所在窗口的引用。
    protocol 設置或獲取 URL 的協議部分。
    readyState 獲取表明對象當前狀態的值。
    referrer 獲取將用戶引入當前頁面的位置 URL。
    uniqueID 獲取為對象自動生成的唯一標識符。
    URL 設置或獲取當前文檔的 URL。
    URLUnencoded 獲取文檔的 URL,去除所有字符編碼。
    vlinkColor 設置或獲取用戶已訪問過的鏈接顏色。
    XMLDocument 獲取對由對象引出的的 XML 文檔對象模型(DOM)的引用。
    XSLDocument 獲取對 XSL 文檔的頂層結點的引用。
    集合 描述
    all 返回對象所包含的元素集合的引用。
    anchors 獲取所有帶有 name 和/或 id 屬性的 a 對象的集合。此集合中的對象以 HTML 源順序排列。
    applets 獲取文檔中所有 applet 對象的集合。
    childNodes 獲取作為指定對象直接后代的 HTML 元素TextNode 對象的集合。
    embeds 獲取文檔中所有 embed 對象的集合。
    forms 獲取以源順序排列的文檔中所有 form 對象的集合。
    frames 獲取給定文檔定義或與給定窗口關聯的文檔定義的所有 window 對象的集合。
    images 獲取以源順序排列的文檔中所有 img 對象的集合。
    links 獲取文檔中所有指定了 HREF 屬性的 a 對象和所有 area 對象的集合。
    namespaces 獲取 namespace 對象的集合。
    scripts 獲取文檔中所有 script 對象的集合。
    styleSheets 獲取代表與文檔中每個 linkstyle 對象的實例相對應的樣式表的 styleSheet 對象的集合。
    事件 描述
    onactivate 對象設置為活動元素時觸發。
    onbeforeactivateMicrosoft? Internet Explorer 6 新增 對象要被設置為當前元素前立即觸發。
    onbeforecut 當選中區從文檔中刪除之前在源對象觸發。
    onbeforedeactivate activeElement 從當前對象變為父文檔其它對象之前立即觸發。
    onbeforeeditfocus 在包含于可編輯元素內的對象進入用戶界面激活狀態前或可編輯容器變成控件選中區前觸發。
    onbeforepaste 在選中區從系統剪貼板粘貼到文檔前在目標對象上觸發。
    onclick 在用戶用鼠標左鍵單擊對象時觸發。
    oncontextmenu 在用戶使用鼠標右鍵單擊客戶區打開上下文菜單時觸發。
    oncontrolselect 當用戶將要對該對象制作一個控件選中區時觸發。
    oncut 對象或選中區從文檔中刪除并添加到系統剪貼板上時在源元素上觸發。
    ondblclick 當用戶雙擊對象時觸發。
    ondeactivate activeElement 從當前對象變為父文檔其它對象時觸發。
    ondrag 當進行拖曳操作時在源對象上持續觸發。
    ondragend 當用戶在拖曳操作結束后釋放鼠標時在源對象上觸發。
    ondragenter 當用戶拖曳對象到一個合法拖曳目標時在目標元素上觸發。
    ondragleave 當用戶在拖曳操作過程中將鼠標移出合法拖曳目標時在目標對象上觸發。
    ondragover 當用戶拖曳對象劃過合法拖曳目標時持續在目標元素上觸發。
    ondragstart 當用戶開始拖曳文本選中區或選中對象時在源對象上觸發。
    ondrop 當鼠標按鈕在拖曳操作過程中釋放時在目標對象上觸發。
    onfocusinMicrosoft? Internet Explorer 6 新增 當元素將要被設置為焦點之前觸發。
    onfocusoutMicrosoft? Internet Explorer 6 新增 在移動焦點到其它元素之后立即觸發于當前擁有焦點的元素上觸發。
    onhelp 當用戶在瀏覽器為當前窗口時按 F1 鍵時觸發。
    onkeydown 當用戶按下鍵盤按鍵時觸發。
    onkeypress 當用戶按下字面鍵時觸發。
    onkeyup 當用戶釋放鍵盤按鍵時觸發。
    onmousedown 當用戶用任何鼠標按鈕單擊對象時觸發。
    onmousemove 當用戶將鼠標劃過對象時觸發。
    onmouseout 當用戶將鼠標指針移出對象邊界時觸發。
    onmouseover 當用戶將鼠標指針移動到對象內時觸發。
    onmouseup 當用戶在鼠標位于對象之上時釋放鼠標按鈕時觸發。
    onmousewheelMicrosoft? Internet Explorer 6 新增 當鼠標滾輪按鈕旋轉時觸發。
    onmove 對象移動時觸發。
    onmoveend 對象停止移動時觸發。
    onmovestart 對象開始移動時觸發。
    onpaste 當用戶粘貼數據以便從系統剪貼板向文檔傳送數據時在目標對象上觸發。
    onpropertychange 當在對象上發生對象上發生屬性更改時觸發。
    onreadystatechange 對象狀態變更時觸發。
    onresizeend 當用戶更改完控件選中區中對象的尺寸時觸發。
    onresizestart 當用戶開始更改控件選中區中對象的尺寸時觸發。
    onselectionchange 當文檔的選中狀態改變時觸發。
    onstop 當用戶單擊停止按鈕或離開 Web 頁面時觸發。
    方法 描述
    attachEvent 將指定函數綁定到事件,以便每當該事件在對象上觸發時都調用該函數。
    clear 目前尚未支持。
    close 關閉輸出流并強制將數據發送到顯示。
    createAttributeMicrosoft? Internet Explorer 6 新增 以指定名稱創建 attribute 對象。
    createCommentMicrosoft? Internet Explorer 6 新增 以指定數據創建 comment 對象。
    createDocumentFragment 創建一個新文檔。
    createElement 為指定標簽創建一個元素的實例。
    createEventObject 生成當使用 fireEvent 方法時用于傳遞事件相關信息的 event 對象。
    createStyleSheet 為文檔創建樣式表。
    createTextNode 從指定值中創建文本字符串。
    detachEvent 從事件中取消指定函數的綁定,這樣當事件觸發時函數就不會收到通知了。
    elementFromPoint 返回指定 x 和 y 坐標的元素。
    execCommand 在當前文檔、當前選中區或給定范圍上執行命令。
    focus 使得元素得到焦點并執行由 onfocus 事件指定的代碼。
    getElementById 獲取對 ID 標簽屬性為指定值的第一個對象的引用。
    getElementsByName 根據 NAME 標簽屬性的值獲取對象的集合。
    getElementsByTagName 獲取基于指定元素名稱的對象集合。
    hasFocus 獲取表明對象目前是否擁有焦點的值。
    mergeAttributes 復制所有讀/寫標簽屬性到指定元素。
    open 此方法以兩種方式工作。該方法打開一個文檔用于收集 writewriteln 方法的輸出。在這種情況下,只使用前兩個參數 url 和 name。若指定了附加參數,此方法將打開一個窗口,這與 window 對象的 window.open 方法相同。
    queryCommandEnabled 返回表明指定命令是否可于給定文檔當前狀態下使用 execCommand 命令成功執行的 Boolean 值。
    queryCommandIndeterm 返回表明指定命令是否處于模糊狀態的 Boolean 值。
    queryCommandState 返回表明命令當前狀態的 Boolean 值。
    queryCommandSupported 返回表明當前命令是否在當前區域上支持的 Boolean 值。
    queryCommandValue 返回文檔、范圍或當前選中區對于給定命令的當前值。
    recalc 重新計算當前文檔中的全部動態屬性。
    releaseCapture 釋放當前文檔中對象的鼠標捕捉。
    setActive 設置對象為當前對象而不將對象置為焦點。
    write 在指定窗口的文檔中寫入一個或多個 HTML 表達式。
    writeln 在指定窗口的文檔中寫入一個或多個 HTML 表達式,后面追加一個換行符。
    元素 對象 描述
    BODY body 指定文檔主體的開始和結束。
    implementationMicrosoft? Internet Explorer 6 新增 包含了關于對象支持的模塊信息。
    location 包含關于當前 URL 的信息。
    selection 代表了當前激活選中區,即高亮文本塊,和/或文當中用戶可執行某些操作的其它元素。
    TITLE title 包含文檔的標題。
    樣式屬性 描述
    compatModeMicrosoft? Internet Explorer 6 新增 設置或獲取表明此對象是否應用標準兼容模式的值。

    注釋

    此對象在 Microsoft? Internet Explorer 3.0 的腳本中可用。

    使用 document 對象可以對 HTML 文檔進行檢查、修改或添加內容,并處理該文檔內部的事件。在 Web 頁面上,document 對象可通過 window 對象的 document 屬性引用,或者直接引用。

    document 對象在主文檔的任意時間均可用,但是對于目前正在輕便動態 HTML(DHTML) 行為中使用的 HTML 組件(HTC)來說卻不可用。這是因為輕便的行為僅當在 HTC 文件中不使用 document 對象時才可被定義。結果將使得輕便的行為比常規行為運行更加快速和有效率。但是,輕便的 DHTML 行為可以與常規的 DHTML 行為一樣的方法訪問主文檔的 document 對象。

    ondocumentready 事件將通知 DHTML 行為包含該行為的主 Web 頁面的 document 對象可用。只要 ondocumentready 被觸發,行為就可以開始處理主 document 屬性。

    行為中的腳本可以在 HTC 或主文檔中引用 document 對象。如果要在 HTC 文件中編碼腳本,應使用 element.document 來引用主文檔的 document 對象。

    示例

    下面的例子使用了 document 對象檢查文檔標題并在消息框中顯示該標題(如果非)。

    if (document.title!="")
        alert("標題為 " + document.title)
    

    下面的例子演示了在瀏覽器的狀態欄上顯示鼠標當前位置的事件句柄函數,所得位置相對于文檔的左上角。

    顯示示例

    標準信息

    沒有應用于此對象的公共標準。

    應用到

    posted @ 2005-07-14 15:39 一天一點愛戀 閱讀(173) | 評論 (0)編輯 收藏
     

    可用性

    Flash Player 4。

    用法

    trace(expression)
    

    參數

    expression 要計算的表達式。在 Flash 創作工具中使用“測試影片”命令打開 SWF 文件時,expression 參數的值顯示在“輸出”面板中。

    返回

    無。

    說明

    語句;在測試模式下,計算表達式并在“輸出”面板中顯示結果。

    在測試影片時,使用此動作可在“輸出”面板中記錄編程注釋或顯示消息。使用 expression 參數可以檢查是否存在某種條件,或在“輸出”面板中顯示值。trace() 動作類似于 JavaScript 中的 alert 函數。

    可以使用“發布設置”中的“Omit Trace Actions”(省略 Trace 動作)命令將 trace() 動作從導出的 SWF 文件中刪除。

    示例

    此示例來自一個游戲,在該游戲中一個名為 my_mc 的可拖動影片剪輯實例必須在特定目標上釋放。我們使用一個條件語句來計算 _droptarget 屬性并根據 my_mc 的釋放位置執行不同的動作。在腳本的末尾使用 trace() 動作來計算 my_mc 影片剪輯的位置,并在“輸出”面板中顯示結果。如果 my_mc 的行為與預期的不一樣(例如,如果它對齊的目標不正確),則由 trace() 動作發送到“輸出”面板的值將有助于您確定腳本中的問題。

    on (press) {
      my_mc.startDrag();
    }
    
    on (release) {
      if(eval(_droptarget) != target) {
          my_mc._x = my_mc_xValue;
          my_mc._y = my_mc_yValue;
      } else {
        var my_mc_xValue = my_mc._x;
        var my_mc_yValue = my_mc._y;
        target = "_root.pasture";
      }
      trace("my_mc_xValue = " + my_mc_xValue);
      trace("my_mc_xValue = " + my_mc_xValue);
      stopDrag();
    }
    
    posted @ 2005-07-14 15:25 一天一點愛戀 閱讀(222) | 評論 (0)編輯 收藏
     
    setInterval全面的介紹

    setInterval全面的介紹
    setInterval動作的作用是在播放動畫的時,每隔一定時間就調用函數,方法或對象。可以使用本動作更新來自數據庫的變量或更新時間顯示。setInterval動作的語法格式如下:
    setInterval(function,interval[,arg1,arg2,......argn])
    setInterval(object,methodName,interval[,arg1,arg2,.....argn])
    第一種格式是標準動作面板中setInterval函數的默認語法,第二種格式是在專家模式動作中使用的方法。
    其中的參數function是一個函數名或者一個對匿名函數的引用。object參數指定從Object對象派生的對象。methodName制定object參數中要調用的方法。interval制定對function或methodName調用兩次之間的時間,單位是毫秒。后面的arg1等是可選的參數,用于制定傳遞給function或是methodName的參數。
    setInterval它設置的時間間隔小于動畫幀速(如每秒10幀,相當于100毫秒),則按照盡可能接近interval的時間間隔調用函數。而且必須使用updateAfterEvent動作來確保以足夠的頻率刷新屏幕。如果interval大于動畫幀速,則只用在每次播放頭進入某一幀是才調用,以減小每次刷新屏幕的影響。
    下面的例子每隔1秒調用一次匿名函數。
    setInterval(function(){trace("每隔1秒鐘我就會顯示一次")},1000);//這里的function(){}是沒有函數名
    的函數。成為匿名函數,后面的1000是時間間隔,單位是毫秒。
    下面的例子為我們展示如何帶參數運行。
    function show1(){
    trace("每隔1秒我就會顯示一次");
    }
    function show2(str){
    trace(str);
    }
    setInterval(show1,1000);
    setInterval(show2,2000,"每隔2秒我就會顯示一次");
    上面已經將函數的setInterval方法介紹了。
    下面我們將介紹對象的setInterval方法。
    首先,寫一個setInterval在動作中調用對象的方法的例子,該例子不需要傳遞參數。
    myobj=new Object();//創建一個新的對象
    myobj.interval=function){
    trace("每隔1秒我就會顯示一次");
    }//創建對象的方法。
    setInterval(myobj,"interval",1000);//設定時間間隔調用對象的方法。
    接下來介紹如何傳遞參數。其實道理和函數的傳遞參數是一樣的。
    myobj=new Object();
    myobj.interval-function(str){
    trace(str);
    }
    setInterval(myobj,"interval",2000," 每隔2秒我就會顯示一次");
    注意。要調用為對象定義的方法時,必須在專家模式中使用第二種語法格式。
    這樣子的話呢,我們來作一個動態顯示時間的畫面。可以用下面的代碼實現。
    setInterval(show,1000);
    function show(){
    time=new Date();
    hour=time.getHours();
    minu=time.getMinutes();
    sec=time.get.Seconds();
    datetime=hour+":"+minu+":"+sec;
    }//這里的datetime是一個動態文本框的變量名字。
    這樣子呢,setInterval這個方法大家應該學的很好了。現在呢,我們學習clearInterval.
    clearInterval動作的作用是清楚對setInterval函數的調用,它的語法格式如下clearInterval(intervalid);intervalid是調用setInterval函數后返回的對象。
    下面舉一個簡單的例子。
    function show(){
    trace("每隔一秒我就會顯示一次");
    }
    var sh;
    sh=setInterval(show,1000);
    clearInterval(sh);
    好的至此,學習結束。希望對大家有所幫助。
    以上代碼可以直接復制。
    posted @ 2005-07-14 15:23 一天一點愛戀 閱讀(169) | 評論 (0)編輯 收藏
     
    Copyright © 一天一點愛戀 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 国产91免费视频| 男女拍拍拍免费视频网站| 精品无码AV无码免费专区 | 亚洲a∨无码男人的天堂| 91九色视频无限观看免费| 久久久久无码精品亚洲日韩| 国产日韩AV免费无码一区二区| 久久国产成人精品国产成人亚洲| 国产精品青草视频免费播放| 亚洲精品国精品久久99热| 少妇亚洲免费精品| 亚洲午夜无码片在线观看影院猛| 久久精品成人免费观看97| 亚洲精品制服丝袜四区| 久久99精品免费视频| 亚洲美女中文字幕| 成人免费午间影院在线观看| 色天使色婷婷在线影院亚洲| 狠狠色婷婷狠狠狠亚洲综合| 中文在线观看免费网站| 久久久国产精品亚洲一区| 国产黄色免费网站| 亚洲AV永久无码精品一福利| 日韩亚洲精品福利| 成全动漫视频在线观看免费高清版下载 | 亚洲国产国产综合一区首页| 日韩在线播放全免费| 亚洲色一区二区三区四区| 内射无码专区久久亚洲| 免费无码又爽又刺激网站 | 国产99久久亚洲综合精品| 久久精品国产精品亚洲艾草网美妙| a级片免费观看视频| 亚洲中文字幕久在线| 伊在人亚洲香蕉精品区麻豆| 成人片黄网站色大片免费观看APP| 亚洲人成在线观看| 国产成人免费网站在线观看 | 亚洲一区在线观看视频| 免费人成在线观看视频播放| 玖玖在线免费视频|