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

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

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

    我的人生路  
    日歷
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567
    統(tǒng)計
    • 隨筆 - 74
    • 文章 - 57
    • 評論 - 7
    • 引用 - 0

    導(dǎo)航

    常用鏈接

    留言簿(5)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    顏色

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     

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

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


    SQL語法參考手冊

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

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

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

    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)
    說明:更改表得的定義把某個欄位設(shè)為主鍵。
    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

    二、的資料形態(tài) DATATYPEs
    smallint
    16 位元的整數(shù)。
    interger
    32 位元的整數(shù)。
    decimal(p,s)
    p 精確值和 s 大小的十進位整數(shù),精確值p是指全部有幾個數(shù)(digits)大小值,s是指小數(shù)
    點後有幾位數(shù)。如果沒有特別指定,則系統(tǒng)會設(shè)為 p=5; s=0 。
    float
    32位元的實數(shù)。
    double
    64位元的實數(shù)。
    char(n)
    n 長度的字串,n不能超過 254。
    varchar(n)
    長度不固定且其最大長度為 n 的字串,n不能超過 4000。
    graphic(n)
    和 char(n) 一樣,不過其單位是兩個字元 double-bytes, n不能超過127。這個形態(tài)是為
    了支援兩個字元長度的字體,例如中文字。
    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 系統(tǒng)則會按表格內(nèi)的欄位順序填入資料。
    2.欄位的資料形態(tài)和所填入的資料必須吻合。
    3.table_name 也可以是景觀 view_name。

    INSERT INTO table_name (column1,column2,...)
    SELECT columnx,columny,... FROM another_table
    說明:也可以經(jīng)過一個子查詢(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]是指從大到小排列,若沒有指明,則是從小到大
    排列

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

    整合性的查詢:
    SELECT COUNT (*)
    FROM table_name
    WHERE column_name = xxx
    說明:
    查詢符合條件的資料共有幾筆。
    SELECT SUM(column1)
    FROM table_name
    說明:
    1.計算出總和,所選的欄位必須是可數(shù)的數(shù)字形態(tài)。
    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等整合性查詢的關(guān)鍵字
    一起使用。
    2.HAVING : 必須和 GROUP BY 一起使用作為整合性的限制。

    復(fù)合性的查詢
    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 出來的資料形態(tài)必須符合 column1。

    其他查詢
    SELECT *
    FROM table_name1
    WHERE column1 LIKE 'x%'
    說明:LIKE 必須和後面的'x%' 相呼應(yīng)表示以 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.更改某個欄位設(shè)定其值為'xxx'。
    2.conditions 是所要符合的條件、若沒有 WHERE 則整個 table 的那個欄位都會全部被更改。

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

    說明:關(guān)于WHERE條件后面如果包含有日期的比較,不同數(shù)據(jù)庫有不同的表達式。具體如下:
    (1)如果是ACCESS數(shù)據(jù)庫,則為:WHERE mydate>#2000-01-01#
    (2)如果是ORACLE數(shù)據(jù)庫,則為: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"將徹底屏蔽鼠標(biāo)右鍵
    oncontextmenu=self.event.returnValue=false
    oncontextmenu="return false"
    <tableborderoncontextmenu=return(false)><td>no</table>可用于Table

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

    3.onpaste="returnfalse"不準(zhǔn)粘貼

    4.oncopy="returnfalse;"oncut="returnfalse;"防止復(fù)制

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

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

    7.<inputstyle="ime-mode:disabled">關(guān)閉輸入法

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

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

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

    11.<inputtype=buttonvalue=查看網(wǎng)頁源代碼
    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>您通過了代理服務(wù)器,"&_
    "真實的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.光標(biāo)是停在文本框文字的最后
    <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.最小化、最大化、關(guān)閉窗口
    <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=關(guān)閉onclick=hh3.Click()>
    本例適用于IE

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

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

    ConstadCmdText=&H0001
    ConstadCmdTable=&H0002
    %>

    18.網(wǎng)頁不會被緩存
    HTM網(wǎng)頁
    <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網(wǎng)頁
    Response.Expires=-1
    Response.ExpiresAbsolute=Now()-1
    Response.cachecontrol="no-cache"
    PHP網(wǎng)頁
    header("Expires:Mon,26Jul199705:00:00GMT");
    header("Cache-Control:no-cache,must-revalidate");
    header("Pragma:no-cache");


    19.檢查一段字符串是否全由數(shù)字組成
    <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自適應(yīng)文字行數(shù)的多少
    <textarearows=1 name=s1 cols=27 onpropertychange="this.style.posHeight=this.scrollHeight">
    </textarea>

    23.日期減去天數(shù)等于第二個日期
    <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")%>
    服務(wù)器名<%=Request.ServerVariables("SERVER_NAME")%>
    服務(wù)器IP<%=Request.ServerVariables("LOCAL_ADDR")%>
    服務(wù)器端口<%=Request.ServerVariables("SERVER_PORT")%>
    服務(wù)器時間<%=now%>
    IIS版本<%=Request.ServerVariables"SERVER_SOFTWARE")%>
    腳本超時時間<%=Server.ScriptTimeout%>
    本文件路徑<%=server.mappath(Request.ServerVariables("SCRIPT_NAME"))%>
    服務(wù)器CPU數(shù)量<%=Request.ServerVariables("NUMBER_OF_PROCESSORS")%>
    服務(wù)器解譯引擎<%=ScriptEngine&"/" & ScriptEngineMajorVersion &"." & ScriptEngineMinorVersion & "." & ScriptEngineBuildVersion%>
    服務(wù)器操作系統(tǒng)<%=Request.ServerVariables("OS")%>

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

    28.檢測某個網(wǎng)站的鏈接速度:
    把如下代碼加入<body>區(qū)域中:
    <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.各種樣式的光標(biāo)
    auto:標(biāo)準(zhǔn)光標(biāo)
    default:標(biāo)準(zhǔn)箭頭
    hand:手形光標(biāo)
    wait:等待光標(biāo)
    text:I形光標(biāo)
    vertical-text:水平I形光標(biāo)
    no-drop:不可拖動光標(biāo)
    not-allowed:無效光標(biāo)
    help:?幫助光標(biāo)
    all-scroll:三角方向標(biāo)
    move:移動標(biāo)
    crosshair:十字標(biāo)
    e-resize
    n-resize
    nw-resize
    w-resize
    s-resize
    se-resize
    sw-resize

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


    Kafree另外收集增加的:

    1,屏蔽鼠標(biāo)右鍵、Ctrl+n、shift+F10、F5刷新、退格鍵

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

    <script language="Javascript"><!--
    //屏蔽鼠標(biāo)右鍵、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("不準(zhǔn)你使用ALT+方向鍵前進或后退網(wǎng)頁!");
    event.returnValue=false;
    }

    /* 注:這還不是真正地屏蔽 Alt+ 方向鍵,
    因為 Alt+ 方向鍵彈出警告框時,按住 Alt 鍵不放,
    用鼠標(biāo)點掉警告框,這種屏蔽方法就失效了。以后若
    有哪位高手有真正屏蔽 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 加鼠標(biāo)左鍵新開一網(wǎng)頁
    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>屏蔽鼠標(biāo)右鍵、Ctrl+n、shift+F10、F5刷新、退格鍵</h2>
    </body>
    </html>

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

    3,本地?zé)o緩存,每次自動刷新
    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,常用的幾種數(shù)據(jù)庫連接代碼
    1) MS Access數(shù)據(jù)庫連接
    用DSN連接并且沒有用戶名和密碼:
    <%
    set conn = Server.CreateObject("ADODB.Connection")
    conn.open "YourDSNName"
    %>

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

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

    4) 用實際的數(shù)據(jù)庫相對路徑連接:
    <%
    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數(shù)據(jù)庫連接
    用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數(shù)據(jù)庫連接
    <%
    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數(shù)據(jù)庫連接:
    <%
    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數(shù)據(jù)庫連接:
    <%
    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數(shù)據(jù)庫連接:
    <%
    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數(shù)據(jù)庫連接:
    <%
    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
    '調(diào)用 test.csv 的文件
    Set rs=server.createobject("adodb.recordset")
    rs.open "select * from test.csv",conn,1,3
    %>

    6,使用 XML 靜態(tài)讀取網(wǎng)頁
    代碼如下:

    <script>
    var oDiv //添加用的節(jié)點
    var nP //DIV的 padding-left
    var xh //xmlhttp
    function getXML()
    {
    oDiv = document.all.m
    oDiv.innerHTML = "正在裝載欄目數(shù)據(jù),請稍侯......."
    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 = "抱歉,裝載數(shù)據(jù)失敗。原因:" + 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的數(shù)據(jù)導(dǎo)入導(dǎo)出
    1)、在SQL SERVER里查詢Excel數(shù)據(jù):
    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的數(shù)據(jù)導(dǎo)入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中查詢到的數(shù)據(jù)導(dǎo)成一個Excel文件
    T-SQL代碼:
    EXEC master..xp_cmdshell 'bcp 庫名.dbo.表名out c:\Temp.xls -c -q -S"servername" -U"sa" -P""'
    參數(shù):S 是SQL服務(wù)器名;U是用戶;P是密碼
    說明:還可以導(dǎo)出文本文件等多種格式

    實例: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中應(yīng)用ADO導(dǎo)出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插入數(shù)據(jù):

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

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


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

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

    馬上出現(xiàn)的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="高僧一個,當(dāng)和尚太可惜了">
    <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>

    只能輸入數(shù)字(方法一)

    <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();">

    只能輸入數(shù)字(方法二)

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

    只能輸入數(shù)字(方法三)

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

    限制textarea多行輸入框的字?jǐn)?shù)

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

    驗證表單——不能超過設(shè)置字?jǐn)?shù)

    <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();">

    驗證表單——屏蔽關(guān)鍵字(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>

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

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

    用Label標(biāo)簽還可以讓像軟件一樣使用熱鍵

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

    在標(biāo)題欄上顯示版權(quán)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("現(xiàn)在正在播放第"+(x+1)+"首樂曲");
    }
    //-->
    </script>

    網(wǎng)頁背景顏色漸變

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

     

    標(biāo)題欄文字打字效果

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

     

    數(shù)字轉(zhuǎn)換為大寫

    <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()">

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

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

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

    03.讓IFRAME框架內(nèi)的文檔的背景透明
    <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,這是你自己的網(wǎng)址。

    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 "請不要從站點外部提交數(shù)據(jù)!"
    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. 設(shè)置iframe scrolling="no"
    2. 被包含頁body應(yīng)用overflow:hidden
    3. 被包含頁的body標(biāo)簽加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.嵌入網(wǎng)頁
    <iframe name="tt" src="01a.html" width="450" height="287"

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

    10.跳轉(zhuǎn)
    <meta http-equiv="refresh" content="3;URL=list.htm">

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

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

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

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

    content="revealTrans(Duration=3,Transition=5)">
    Duration的值為網(wǎng)頁動態(tài)過渡的時間,單位為秒。
    Transition是過渡方式,它的值為0到23,分別對應(yīng)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 隨機產(chǎn)生一種過渡方式

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

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

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

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

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

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

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

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

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

    22.設(shè)為首頁:
    〈a href=#

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

    ('

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

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

    顏色不要超過 16 色。

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

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

    最全的表格代碼應(yīng)用[精華]
    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區(qū)加上

    <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.表格分行下載

    這個對表格內(nèi)容很大比較實用

    在需要分行下載處加上 <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.細(xì)表格

    <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">細(xì)表格</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判斷你的網(wǎng)站的虛擬物理路徑
    答:使用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.如何計算每天的平均反復(fù)訪問人數(shù)
    答:解決方法
    < % startdate=DateDiff("d",Now,"01/01/1990")
    if strdate< 0 then startdate=startdate*-1
    avgvpd=Int((usercnt)/startdate) % >
    顯示結(jié)果
    < % 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.如何鏈結(jié)到一副圖片上
    答:< % @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 程序內(nèi)使用 msgbox,程序出錯說沒有權(quán)限
    答:由于 asp 是服務(wù)器運行的,如果可以在服務(wù)器顯示一個對話框,那么你只好等有人按了確定之后,你的程序才能繼續(xù)執(zhí)行,而一般服務(wù)器不會有人守著,所以微軟不得不禁止這個函數(shù),并胡亂告訴你 (:) 呵呵) 沒有權(quán)限。但是ASP和客戶端腳本結(jié)合倒可以顯示一個對話框,as follows:
    < % yourVar="測試對話框"% >
    < % s cript language='javas cript' >
    alert("< %=yourvar% >")
    < /s cript >

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

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

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

    14.怎樣才能使得htm文件如同asp文件一樣可以執(zhí)行腳本代碼?
    答:Internet Sevices Manager - > 選擇default web site - >右鼠鍵- >菜單屬性-〉主目錄- > 應(yīng)用程序設(shè)置(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。它需要你在命令行方式下來執(zhí)行,進入到包含有DLL的目錄,并輸入:regsvr32 component_name.dll 例如 c:\temp\regsvr32 AspEmail.dll 它會把dll的特定信息注冊入服務(wù)器中的注冊表中。然后這個組件就可以在服務(wù)器上使用了,但是這個方法有一個缺陷。當(dāng)使用這種方法注冊完畢組件后,該組件必須要相應(yīng)的設(shè)置NT的匿名帳號有權(quán)限執(zhí)行這個dll。特別是一些組件需要讀取注冊表,所以,這個注冊組件的方法僅僅是使用在服務(wù)器上沒有MTS的情況下,要取消注冊這個dll,使用:regsvr32 /u aspobject.dll example c:\temp\regsvr32 /u aneiodbc.dll

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

    16. ASP與Access數(shù)據(jù)庫連接:

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

    %>

    17. ASP與SQL數(shù)據(jù)庫連接:

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

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

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

    <%
    '----------Html轉(zhuǎn)換為文本:編輯時拿來做轉(zhuǎn)換
    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
    '-------------------文本轉(zhuǎn)換為Html:寫入數(shù)據(jù)庫時使用---------------
    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

    %>

    二.關(guān)于小數(shù)點前0的顯示問題

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

    示例:

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

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

    示例:
    <%
    MyNumber=0.323
    If Left(Cstr(MyNumber),1)="." Then Response.Write "0"&MyNumber Else Response.Write MyNumber
    %>
    也可以寫一個函數(shù)
    <%
    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) 數(shù)據(jù)記錄篩選:

    sql="select * from 數(shù)據(jù)表 where 字段名=字段值 order by 字段名 [desc]"

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

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

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

    sql="select * from 數(shù)據(jù)表 where 字段名 between 值1 and 值2"

    (2) 更新數(shù)據(jù)記錄:

    sql="update 數(shù)據(jù)表 set 字段名=字段值 where 條件表達式"

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

    (3) 刪除數(shù)據(jù)記錄:

    sql="delete from 數(shù)據(jù)表 where 條件表達式"

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

    (4) 添加數(shù)據(jù)記錄:

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

    sql="insert into 目標(biāo)數(shù)據(jù)表 select * from 源數(shù)據(jù)表" (把源數(shù)據(jù)表的記錄添加到目標(biāo)數(shù)據(jù)表)

    (5) 數(shù)據(jù)記錄統(tǒng)計函數(shù):

    AVG(字段名) 得出一個表格欄平均值
    COUNT(*|字段名) 對數(shù)據(jù)行數(shù)的統(tǒng)計或?qū)δ骋粰谟兄档臄?shù)據(jù)行數(shù)統(tǒng)計
    MAX(字段名) 取得一個表格欄最大的值
    MIN(字段名) 取得一個表格欄最小的值
    SUM(字段名) 把數(shù)據(jù)欄的值相加

    引用以上函數(shù)的方法:

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

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

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

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

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

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

    19. 記錄集對象的方法:

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

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

    20 Recordset對象方法

    Open方法

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

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

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

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

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

    ADO Recordset的屬性和方法在不同的光標(biāo)類型下,有不同的表現(xiàn),這里列出了其詳細(xì)情況列表
    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數(shù)據(jù)庫。

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

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

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

    RS.OPEN SQL,CONN,A,B

    A:

    ADOPENFORWARDONLY(=0)
    只讀,且當(dāng)前數(shù)據(jù)記錄只能向下移動

    ADOPENKEYSET(=1)
    只讀,當(dāng)前數(shù)據(jù)記錄可自由移動

    ADOPENDYNAMIC(=2)
    可讀寫,當(dāng)前數(shù)據(jù)記錄可自由移動

    ADOPENSTATIC(=3)
    可讀寫,當(dāng)前數(shù)據(jù)記錄可自由移動,可看到新增記錄

    B:

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

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

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

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

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

    成員表

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

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

    注釋

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

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

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

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

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

    示例

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

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

    下面的例子演示了在瀏覽器的狀態(tài)欄上顯示鼠標(biāo)當(dāng)前位置的事件句柄函數(shù),所得位置相對于文檔的左上角。

    顯示示例

    標(biāo)準(zhǔn)信息

    沒有應(yīng)用于此對象的公共標(biāo)準(zhǔn)。

    應(yīng)用到

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

    可用性

    Flash Player 4。

    用法

    trace(expression)
    

    參數(shù)

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

    返回

    無。

    說明

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

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

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

    示例

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

    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動作的作用是在播放動畫的時,每隔一定時間就調(diào)用函數(shù),方法或?qū)ο蟆?梢允褂帽緞幼鞲聛碜詳?shù)據(jù)庫的變量或更新時間顯示。setInterval動作的語法格式如下:
    setInterval(function,interval[,arg1,arg2,......argn])
    setInterval(object,methodName,interval[,arg1,arg2,.....argn])
    第一種格式是標(biāo)準(zhǔn)動作面板中setInterval函數(shù)的默認(rèn)語法,第二種格式是在專家模式動作中使用的方法。
    其中的參數(shù)function是一個函數(shù)名或者一個對匿名函數(shù)的引用。object參數(shù)指定從Object對象派生的對象。methodName制定object參數(shù)中要調(diào)用的方法。interval制定對function或methodName調(diào)用兩次之間的時間,單位是毫秒。后面的arg1等是可選的參數(shù),用于制定傳遞給function或是methodName的參數(shù)。
    setInterval它設(shè)置的時間間隔小于動畫幀速(如每秒10幀,相當(dāng)于100毫秒),則按照盡可能接近interval的時間間隔調(diào)用函數(shù)。而且必須使用updateAfterEvent動作來確保以足夠的頻率刷新屏幕。如果interval大于動畫幀速,則只用在每次播放頭進入某一幀是才調(diào)用,以減小每次刷新屏幕的影響。
    下面的例子每隔1秒調(diào)用一次匿名函數(shù)。
    setInterval(function(){trace("每隔1秒鐘我就會顯示一次")},1000);//這里的function(){}是沒有函數(shù)名
    的函數(shù)。成為匿名函數(shù),后面的1000是時間間隔,單位是毫秒。
    下面的例子為我們展示如何帶參數(shù)運行。
    function show1(){
    trace("每隔1秒我就會顯示一次");
    }
    function show2(str){
    trace(str);
    }
    setInterval(show1,1000);
    setInterval(show2,2000,"每隔2秒我就會顯示一次");
    上面已經(jīng)將函數(shù)的setInterval方法介紹了。
    下面我們將介紹對象的setInterval方法。
    首先,寫一個setInterval在動作中調(diào)用對象的方法的例子,該例子不需要傳遞參數(shù)。
    myobj=new Object();//創(chuàng)建一個新的對象
    myobj.interval=function){
    trace("每隔1秒我就會顯示一次");
    }//創(chuàng)建對象的方法。
    setInterval(myobj,"interval",1000);//設(shè)定時間間隔調(diào)用對象的方法。
    接下來介紹如何傳遞參數(shù)。其實道理和函數(shù)的傳遞參數(shù)是一樣的。
    myobj=new Object();
    myobj.interval-function(str){
    trace(str);
    }
    setInterval(myobj,"interval",2000," 每隔2秒我就會顯示一次");
    注意。要調(diào)用為對象定義的方法時,必須在專家模式中使用第二種語法格式。
    這樣子的話呢,我們來作一個動態(tài)顯示時間的畫面。可以用下面的代碼實現(xiàn)。
    setInterval(show,1000);
    function show(){
    time=new Date();
    hour=time.getHours();
    minu=time.getMinutes();
    sec=time.get.Seconds();
    datetime=hour+":"+minu+":"+sec;
    }//這里的datetime是一個動態(tài)文本框的變量名字。
    這樣子呢,setInterval這個方法大家應(yīng)該學(xué)的很好了。現(xiàn)在呢,我們學(xué)習(xí)clearInterval.
    clearInterval動作的作用是清楚對setInterval函數(shù)的調(diào)用,它的語法格式如下clearInterval(intervalid);intervalid是調(diào)用setInterval函數(shù)后返回的對象。
    下面舉一個簡單的例子。
    function show(){
    trace("每隔一秒我就會顯示一次");
    }
    var sh;
    sh=setInterval(show,1000);
    clearInterval(sh);
    好的至此,學(xué)習(xí)結(jié)束。希望對大家有所幫助。
    以上代碼可以直接復(fù)制。
    posted @ 2005-07-14 15:23 一天一點愛戀 閱讀(169) | 評論 (0)編輯 收藏
     
    1。完成日志的添加
    2。
    posted @ 2005-07-13 09:50 一天一點愛戀 閱讀(125) | 評論 (0)編輯 收藏
     
    2005年廈門大學(xué)碩士 計算機科學(xué)系 研究生擬錄取名單
    考生號
    姓名
    專業(yè)名稱
    103845211220006 連鳳娜 計算機軟件與理論
    103845211220016 莊云鵬 計算機軟件與理論
    103845211230021 鄭勇明 計算機軟件與理論
    103845211220030 鄭垚 計算機軟件與理論
    103845211220035 蔡劍 計算機軟件與理論
    103845211230050 陳曉文 計算機軟件與理論
    103845103840303 鄭仁廣 計算機軟件與理論
    103845103840304 吳國才 計算機軟件與理論
    103845103840309 許振明 計算機軟件與理論
    103845211220060 高君杰 計算機軟件與理論
    103845211220065 劉偉 計算機軟件與理論
    103845211220074 潘夏福 計算機軟件與理論
    103845211230102 肖欣延 計算機軟件與理論
    103845211220082 卓義寶 計算機軟件與理論
    103845211220091 丁倩蕾 計算機軟件與理論
    103845211220096 吳凡 計算機軟件與理論
    100135350310008 王良霖 計算機軟件與理論
    103845211210001 李玲 計算機系統(tǒng)結(jié)構(gòu)
    103845211210003 余強力 計算機系統(tǒng)結(jié)構(gòu)
    103845211210004 劉峰 計算機系統(tǒng)結(jié)構(gòu)
    103845211210007 董林茂 計算機系統(tǒng)結(jié)構(gòu)
    103845211210016 周功建 計算機系統(tǒng)結(jié)構(gòu)
    103845103840300 陳瓊 計算機系統(tǒng)結(jié)構(gòu)
    103845103840301 楊劍萍 計算機系統(tǒng)結(jié)構(gòu)
    103845103840302 黃荔麗 計算機系統(tǒng)結(jié)構(gòu)
    103845211210035 唐琦 計算機系統(tǒng)結(jié)構(gòu)
    103845211210036 柯遠青 計算機系統(tǒng)結(jié)構(gòu)
    103845211210041 傅博 計算機系統(tǒng)結(jié)構(gòu)
    103845211210042 林煉 計算機系統(tǒng)結(jié)構(gòu)
    103845211210049 曾坤 計算機系統(tǒng)結(jié)構(gòu)
    103845211210053 余兵 計算機系統(tǒng)結(jié)構(gòu)
    103845211210061 劉波 計算機系統(tǒng)結(jié)構(gòu)
    103845211210068 楚宇燕 計算機系統(tǒng)結(jié)構(gòu)
    103845211210074 王雷 計算機系統(tǒng)結(jié)構(gòu)
    103845211210078 常可沛 計算機系統(tǒng)結(jié)構(gòu)
    103845211230017 崔文迪 計算機應(yīng)用技術(shù)
    103845211230024 孫巖 計算機應(yīng)用技術(shù)
    103845211230029 汪洋 計算機應(yīng)用技術(shù)
    103845211230038 王明芬 計算機應(yīng)用技術(shù)
    103845211230042 黃磊 計算機應(yīng)用技術(shù)
    103845211230043 林萌 計算機應(yīng)用技術(shù)
    103845211230045 魏昇 計算機應(yīng)用技術(shù)
    103845103840310 賈劍峰 計算機應(yīng)用技術(shù)
    103845211230055 李凡 計算機應(yīng)用技術(shù)
    103845103840311 黃宣達 計算機應(yīng)用技術(shù)
    103845103840312 魏麗軍 計算機應(yīng)用技術(shù)
    103845103840313 蔡佳佳 計算機應(yīng)用技術(shù)
    103845211230067 林江云 計算機應(yīng)用技術(shù)
    103845211230068 盧敏 計算機應(yīng)用技術(shù)
    103845211230072 陳禹 計算機應(yīng)用技術(shù)
    103845211230073 鄭彬彬 計算機應(yīng)用技術(shù)
    103845211230082 孫為新 計算機應(yīng)用技術(shù)
    103845211230084 陳永建 計算機應(yīng)用技術(shù)
    103845211230086 陳青山 計算機應(yīng)用技術(shù)
    103845211230089 莊永文 計算機應(yīng)用技術(shù)
    103845211230090 賴興邦 計算機應(yīng)用技術(shù)
    103845211230094 倪恩志 計算機應(yīng)用技術(shù)
    103845211230096 林哲輝 計算機應(yīng)用技術(shù)
    103845211230098 王小輝 計算機應(yīng)用技術(shù)
    103845211230099 吳綠芳 計算機應(yīng)用技術(shù)
    103845211230119 吳眾山 計算機應(yīng)用技術(shù)
    103845211230126 鄭文侃 計算機應(yīng)用技術(shù)
    103845211230127 鄭鋒 計算機應(yīng)用技術(shù)
    103845211230130 張彩紅 計算機應(yīng)用技術(shù)
    103845211230135 張艷林 計算機應(yīng)用技術(shù)
    103845211230136 李政 計算機應(yīng)用技術(shù)
    103845211230139 郭鋒 計算機應(yīng)用技術(shù)
    103845211230145 劉亞東 計算機應(yīng)用技術(shù)
    103845211230149 劉瑞林 計算機應(yīng)用技術(shù)
    103845211230152 李長軍 計算機應(yīng)用技術(shù)
    103845211230161 黃關(guān)維 計算機應(yīng)用技術(shù)
    800015150000428 李劍鋒 計算機應(yīng)用技術(shù)
    103355921040686 吳春龍 計算機應(yīng)用技術(shù)
    100135350410012 夏金存 計算機應(yīng)用技術(shù)
    100035024006999 蘇松志 計算機應(yīng)用技術(shù)
    posted @ 2005-07-09 14:48 一天一點愛戀 閱讀(951) | 評論 (0)編輯 收藏
    僅列出標(biāo)題
    共8頁: 上一頁 1 2 3 4 5 6 7 8 下一頁 
     
    Copyright © 一天一點愛戀 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 国产成人青青热久免费精品| 成年黄网站色大免费全看| 内射少妇36P亚洲区| 9久热精品免费观看视频| 免费一级毛片一级毛片aa| 日韩欧美亚洲国产精品字幕久久久| 日韩视频在线精品视频免费观看| 亚洲大尺码专区影院| 成年丰满熟妇午夜免费视频| 亚洲人av高清无码| 国产精品深夜福利免费观看| 视频一区二区三区免费观看| 日韩一卡2卡3卡4卡新区亚洲| 成人免费一区二区三区| 久久亚洲AV午夜福利精品一区 | 香蕉视频亚洲一级| 免费少妇a级毛片人成网| 成人a毛片视频免费看| 亚洲精品无码永久在线观看你懂的| 国产又黄又爽胸又大免费视频| 亚洲国产精品乱码一区二区| 99久久99热精品免费观看国产| avtt天堂网手机版亚洲| 日本免费v片一二三区| 亚洲天堂免费在线视频| 亚洲一区二区成人| 午夜时刻免费入口| 日韩免费高清一级毛片| 久久久久亚洲AV成人无码网站 | www视频免费看| 亚洲一久久久久久久久| 亚洲熟伦熟女新五十路熟妇 | 亚洲国产日韩a在线播放| 亚洲人成网站色在线入口| 久久青草91免费观看| 亚洲精品天堂成人片AV在线播放| 亚洲乱码中文字幕综合234| 最好看最新的中文字幕免费| 国产亚洲福利一区二区免费看| 久久精品国产亚洲av麻豆| 免费高清小黄站在线观看|