我的人生路  
          日歷
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789
          統計
          • 隨筆 - 74
          • 文章 - 57
          • 評論 - 7
          • 引用 - 0

          導航

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          顏色

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           

               摘要: 本部分內容           n  SQL基礎           n  中級SQL          ...  閱讀全文
          posted @ 2005-07-14 16:53 一天一點愛戀 閱讀(866) | 評論 (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 一天一點愛戀 閱讀(789) | 評論 (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 一天一點愛戀 閱讀(555) | 評論 (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 一天一點愛戀 閱讀(482) | 評論 (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 一天一點愛戀 閱讀(164) | 評論 (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 一天一點愛戀 閱讀(175) | 評論 (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 一天一點愛戀 閱讀(225) | 評論 (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 一天一點愛戀 閱讀(171) | 評論 (0)編輯 收藏
           
          1。完成日志的添加
          2。
          posted @ 2005-07-13 09:50 一天一點愛戀 閱讀(128) | 評論 (0)編輯 收藏
           
          2005年廈門大學碩士 計算機科學系 研究生擬錄取名單
          考生號
          姓名
          專業名稱
          103845211220006 連鳳娜 計算機軟件與理論
          103845211220016 莊云鵬 計算機軟件與理論
          103845211230021 鄭勇明 計算機軟件與理論
          103845211220030 鄭垚 計算機軟件與理論
          103845211220035 蔡劍 計算機軟件與理論
          103845211230050 陳曉文 計算機軟件與理論
          103845103840303 鄭仁廣 計算機軟件與理論
          103845103840304 吳國才 計算機軟件與理論
          103845103840309 許振明 計算機軟件與理論
          103845211220060 高君杰 計算機軟件與理論
          103845211220065 劉偉 計算機軟件與理論
          103845211220074 潘夏福 計算機軟件與理論
          103845211230102 肖欣延 計算機軟件與理論
          103845211220082 卓義寶 計算機軟件與理論
          103845211220091 丁倩蕾 計算機軟件與理論
          103845211220096 吳凡 計算機軟件與理論
          100135350310008 王良霖 計算機軟件與理論
          103845211210001 李玲 計算機系統結構
          103845211210003 余強力 計算機系統結構
          103845211210004 劉峰 計算機系統結構
          103845211210007 董林茂 計算機系統結構
          103845211210016 周功建 計算機系統結構
          103845103840300 陳瓊 計算機系統結構
          103845103840301 楊劍萍 計算機系統結構
          103845103840302 黃荔麗 計算機系統結構
          103845211210035 唐琦 計算機系統結構
          103845211210036 柯遠青 計算機系統結構
          103845211210041 傅博 計算機系統結構
          103845211210042 林煉 計算機系統結構
          103845211210049 曾坤 計算機系統結構
          103845211210053 余兵 計算機系統結構
          103845211210061 劉波 計算機系統結構
          103845211210068 楚宇燕 計算機系統結構
          103845211210074 王雷 計算機系統結構
          103845211210078 常可沛 計算機系統結構
          103845211230017 崔文迪 計算機應用技術
          103845211230024 孫巖 計算機應用技術
          103845211230029 汪洋 計算機應用技術
          103845211230038 王明芬 計算機應用技術
          103845211230042 黃磊 計算機應用技術
          103845211230043 林萌 計算機應用技術
          103845211230045 魏昇 計算機應用技術
          103845103840310 賈劍峰 計算機應用技術
          103845211230055 李凡 計算機應用技術
          103845103840311 黃宣達 計算機應用技術
          103845103840312 魏麗軍 計算機應用技術
          103845103840313 蔡佳佳 計算機應用技術
          103845211230067 林江云 計算機應用技術
          103845211230068 盧敏 計算機應用技術
          103845211230072 陳禹 計算機應用技術
          103845211230073 鄭彬彬 計算機應用技術
          103845211230082 孫為新 計算機應用技術
          103845211230084 陳永建 計算機應用技術
          103845211230086 陳青山 計算機應用技術
          103845211230089 莊永文 計算機應用技術
          103845211230090 賴興邦 計算機應用技術
          103845211230094 倪恩志 計算機應用技術
          103845211230096 林哲輝 計算機應用技術
          103845211230098 王小輝 計算機應用技術
          103845211230099 吳綠芳 計算機應用技術
          103845211230119 吳眾山 計算機應用技術
          103845211230126 鄭文侃 計算機應用技術
          103845211230127 鄭鋒 計算機應用技術
          103845211230130 張彩紅 計算機應用技術
          103845211230135 張艷林 計算機應用技術
          103845211230136 李政 計算機應用技術
          103845211230139 郭鋒 計算機應用技術
          103845211230145 劉亞東 計算機應用技術
          103845211230149 劉瑞林 計算機應用技術
          103845211230152 李長軍 計算機應用技術
          103845211230161 黃關維 計算機應用技術
          800015150000428 李劍鋒 計算機應用技術
          103355921040686 吳春龍 計算機應用技術
          100135350410012 夏金存 計算機應用技術
          100035024006999 蘇松志 計算機應用技術
          posted @ 2005-07-09 14:48 一天一點愛戀 閱讀(956) | 評論 (0)編輯 收藏
          僅列出標題
          共8頁: 上一頁 1 2 3 4 5 6 7 8 下一頁 
           
          Copyright © 一天一點愛戀 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 长葛市| 林州市| 南和县| 陆川县| 霍城县| 民勤县| 奈曼旗| 南漳县| 建宁县| 合江县| 从江县| 桂平市| 囊谦县| 鹤庆县| 洛川县| 邛崃市| 郸城县| 石台县| 孟连| 高雄市| 西昌市| 太和县| 达日县| 怀化市| 阳泉市| 伊宁市| 韶关市| 留坝县| 宁国市| 旬邑县| 福清市| 桑日县| 北宁市| 平邑县| 蒙自县| 承德市| 手游| 和林格尔县| 金溪县| 陆河县| 博白县|