标题:发一些ASP基本的东西,建议初学者进来看看
只看楼主
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5807
专家分:108
注 册:2005-4-7
结帖率:75%
 问题点数:0 回复次数:29 
发一些ASP基本的东西,建议初学者进来看看

学习ASP的几个观点

1.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;

2.会用asp,并不说明你会asp;

3.看asp的书,是学不了asp语言的;

4.浮躁的人容易说:asp语言不行了,应该学yy;——是你自己不行了吧!?

5.浮躁的人容易问:我到底该学什么;——别问,学就对了;

6.浮躁的人容易问:asp有钱途吗;——建议你去抢银行;

7.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀!

8.浮躁的人容易问:asp和yy哪个好;——告诉你吧,都好——只要你学就行;

9.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人;

10.把时髦的技术挂在嘴边,还不如把过时的技术记在心里;

11.学习编程最好的方法之一就是阅读源代码;

12.在任何时刻都不要认为自己手中的书已经足够了;

13.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;

14.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;

15.和别人一起讨论有意义的asp知识点,而不是争吵asp行不行或者yy与zz哪个好;

16.学习编程的秘诀是:编程,编程,再编程;

17.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码;

18.把在书中看到的有意义的例子扩充;

19.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去;

20.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路;

21.就让asp语言的各种平台和开发环境去激烈的竞争吧,我们要以学习asp语言本身为主

22.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而 不是一次记住的;

23.每学到一个asp难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清 楚才说明你真的理解了;

24.记录下在和别人交流时发现的自己忽视或不理解的知识点;

25.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成version 100. xx;

26.保存好你写过的所有的程序——那是你最好的积累之一;

27.请不要做浮躁的人;

28.请热爱asp!

搜索更多相关主题的帖子: ASP asp 浮躁 
2005-04-26 08:53
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5807
专家分:108
注 册:2005-4-7
得分:0 

ASP函数详解

Array()   FUNCTION: 返回一个数组   语法: Array(list)   参数: 字符,数字均可   举例: <%   Dim myArray()   For i = 1 to 7   Redim Preserve myArray(i)   myArray(i) = WeekdayName(i)   Next   %>   RESULT: 建立了一个包含7个元素的数组myArray   myArray("Sunday","Monday", ... ... "Saturday")

CInt()   FUNCTION: 将一个表达式转化为数字类型   语法: CInt(expression)   参数: 任何有效的字符均可   举例: <%   f = "234"   response.write cINT(f) + 2   %>   RESULT: 236   转化字符"234"为数字"234",如果字符串为空,则返回0值

CreateObject()   FUNCTION: 建立和返回一个已注册的ACTIVEX组件的实例。   语法: CreateObject(objName)   参数: objName 是任何一个有效、已注册的ACTIVEX组件的名字.   举例: <%   Set con = Server.CreateObject("ADODB.Connection")   %>   RESULT:

CStr()   FUNCTION: 转化一个表达式为字符串.   语法: CStr(expression)   参数: expression 是任何有效的表达式。   举例: <%   s = 3 + 2   response.write "The result is: " & cStr(s)   %>   RESULT: 转化数字“5”为字符“5”。

Date()   FUNCTION: 返回当前系统日期.   语法: Date()   参数: None.   举例: <%=Date%>   RESULT: 8/4/99

DateAdd()   FUNCTION: 返回一个被改变了的日期。   语法: DateAdd(timeinterval,number,date)   参数: timeinterval is the time interval to add; number is amount of time intervals to add; and date is the starting date.   举例: <%   currentDate = #8/4/99#   newDate = DateAdd("m",3,currentDate)   response.write newDate   %>

  <%   currentDate = #12:34:45 PM#   newDate = DateAdd("h",3,currentDate)   response.write newDate   %>   RESULT: 11/4/99   3:34:45 PM

  "m" = "month";   "d" = "day";

  If currentDate is in time format then,   "h" = "hour";   "s" = "second";

DateDiff()   FUNCTION: 返回两个日期之间的差值 。   语法: DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear>>)   参数: timeinterval 表示相隔时间的类型,如“M“表示“月”。   举例: <%   fromDate = #8/4/99#   toDate = #1/1/2000#   response.write "There are " & _   DateDiff("d",fromDate,toDate) & _   " days to millenium from 8/4/99."   %>   RESULT: 从8/4/99 到2000年还有 150 天.

Day()   FUNCTION: 返回一个月的第几日 .   语法: Day(date)   参数: date 是任何有效的日期。   举例: <%=Day(#8/4/99#)%>   RESULT: 4

FormatCurrency()   FUNCTION: 返回表达式,此表达式已被格式化为货币值   语法: FormatCurrency(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit>>>>)   参数: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置;   LeadingDigit 三态常数,指示是否显示小数值小数点前面的零。   举例: <%=FormatCurrency(34.3456)%>   RESULT: $34.35

FormatDateTime()   FUNCTION: 返回表达式,此表达式已被格式化为日期或时间   语法: FormatDateTime(Date, [, NamedFormat>)   参数: NamedFormat 指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate.   举例: <%=FormatDateTime("08/4/99", vbLongDate)%>   RESULT: Wednesday, August 04, 1999

FormatNumber()   FUNCTION: 返回表达式,此表达式已被格式化为数值.   语法: FormatNumber(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit>>>>)   参数: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; LeadingDigit i指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; Paren 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。; GroupDigit i指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。.   举例: <%=FormatNumber(45.324567, 3)%>   RESULT: 45.325

FormatPercent()   FUNCTION: 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 (%)   语法: FormatPercent(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit>>>>)   参数: 同上.   举例: <%=FormatPercent(0.45267, 3)%>   RESULT: 45.267%

Hour()   FUNCTION: 以24时返回小时数.   语法: Hour(time)   参数:   举例: <%=Hour(#4:45:34 PM#)%>   RESULT: 16   (Hour has been converted to 24-hour system)

Instr()   FUNCTION: 返回字符或字符串在另一个字符串中第一次出现的位置.   语法: Instr([start, > strToBeSearched, strSearchFor [, compare>)   参数: Start为搜索的起始值,strToBeSearched接受搜索的字符串 strSearchFor要搜索的字符compare 比较方式(详细见ASP常数)   举例: <%   strText = "This is a test!!"   pos = Instr(strText, "a")   response.write pos   %>   RESULT: 9

InstrRev()   FUNCTION: 同上,只是从字符串的最后一个搜索起   语法: InstrRev([start, > strToBeSearched, strSearchFor [, compare>)   参数: 同上.   举例: <%   strText = "This is a test!!"   pos = InstrRev(strText, "s")   response.write pos   %>   RESULT: 13

Int()   FUNCTION: 返回数值类型,不四舍五入。   语法: Int(number)   参数:   举例: <%=INT(32.89)%>   RESULT: 32

IsArray()   FUNCTION: 判断一对象是否为数组,返回布尔值 .   语法: IsArray(name)   参数:   举例: <%   strTest = "Test!"   response.write IsArray(strTest)   %>   RESULT: False

IsDate()   FUNCTION: 判断一对象是否为日期,返回布尔值   语法: IsDate(expression)   参数: expression is any valid expression.   举例: <%   strTest = "8/4/99"   response.write IsDate(strTest)   %>   RESULT: True

IsEmpty()   FUNCTION: 判断一对象是否初始化,返回布尔值.   语法: IsEmpty(expression)   参数:   举例: <%   Dim i   response.write IsEmpty(i)   %>   RESULT: True

IsNull()   FUNCTION: 判断一对象是否为空,返回布尔值.   语法: IsNull(expression)   参数:   举例: <%   Dim i   response.write IsNull(i)   %>   RESULT: False      IsNumeric()   FUNCTION: 判断一对象是否为数字,返回布尔值.   语法: IsNumeric(expression)   参数:   举例: <%   i = "345"   response.write IsNumeric(i)   %>   RESULT: True   就算数字加了引号,ASP还是认为它是数字。

IsObject()   FUNCTION: 判断一对象是否为对象,返回布尔值.   语法: IsObject(expression)   参数:   举例: <%   Set con = Server.CreateObject("ADODB.Connection")   response.write IsObject(con)   %>   RESULT: True

LBound()   FUNCTION: 返回指定数组维的最小可用下标.   语法: Lbound(arrayname [, dimension>)   参数: dimension 指明要返回哪一维下界的整数。使用 1 表示第一维,2 表示第二维,以此类  推。如果省略 dimension 参数,默认值为 1.   举例: <%   i = Array("Monday","Tuesday","Wednesday")   response.write LBound(i)   %>   RESULT: 0

LCase()   FUNCTION: 返回字符串的小写形式   语法: Lcase(string)   参数: string is any valid string expression.   举例: <%   strTest = "This is a test!"   response.write LCase(strTest)   %>   RESULT: this is a test!

Left()   FUNCTION: 返回字符串左边第length个字符以前的字符(含第length个字符).   语法: Left(string, length)   参数:   举例: <%   strTest = "This is a test!"   response.write Left(strTest, 3)   %>   RESULT: Thi

Len()   FUNCTION: 返回字符串的长度.   语法: Len(string | varName)   参数:   举例: <%   strTest = "This is a test!"   response.write Len(strTest)   %>   RESULT: 15

LTrim()   FUNCTION: 去掉字符串左边的空格.   语法: LTrim(string)   参数:   举例: <%   strTest = " This is a test!"   response.write LTrim(strTest)   %>   RESULT: This is a test!

Mid()   FUNCTION: 返回特定长度的字符串(从start开始,长度为length).   语法: Mid(string, start [, length>)   参数:   举例: <%   strTest = "This is a test! Today is Monday."   response.write Mid(strTest, 17, 5)   %>   RESULT: Today

Minute()   FUNCTION: 返回时间的分钏.   语法: Minute(time)   参数:   举例: <%=Minute(#12:45:32 PM#)%>   RESULT: 45

Month()   FUNCTION: 返回日期.   语法: Month(date)   参数: date is any valid date expression.   举例: <%=Month(#08/04/99#)%>   RESULT: 8

MonthName()   FUNCTION: Returns a string identifying the specified month.   语法: MonthName(month, [, Abb>)   参数: month is the numeric representation for a given month; Abb (optional) is a boolean value used to display month abbreviation. True will display the abbreviated month name and False (default) will not show the abbreviation.   举例: <%=MonthName(Month(#08/04/99#))%>   RESULT: August

Now()   FUNCTION: Returns the current system date and time.   语法: Now()   参数: None   举例: <%=Now%>   RESULT: 8/4/99 9:30:16 AM

Replace()   FUNCTION: Returns a string in which a specified sub-string has been replaced with another substring a specified number of times.   语法: Replace(strToBeSearched, strSearchFor, strReplaceWith [, start [, count [, compare>>>)   参数: strToBeSearched is a string expression containing a sub-string to be replaced; strSearchFor is the string expression to search for within strToBeSearched; strReplaceWith is the string expression to replace sub-string strSearchFor; start (optional) is the numeric character position to begin search; count (optional) is a value indicating the comparision constant.   举例: <%   strTest = "This is an apple!"   response.write Replace(strTest, "apple", "orange")   %>   RESULT: This is an orange!

Right()   FUNCTION: 返回字符串右边第length个字符以前的字符(含第length个字符).   语法: Right(string, length)   参数: .   举例: <%   strTest = "This is an test!"   response.write Right(strTest, 3)   %>   RESULT: st!

Rnd()   FUNCTION: 产生一个随机数.   语法: Rnd [ (number) >   参数:   举例: <%   Randomize()   response.write RND()   %>   RESULT: 任何一个在0 到 1 之间的数

Round()   FUNCTION: 返回按指定位数进行四舍五入的数值.   语法: Round(expression [, numRight>)   参数: numRight数字表明小数点右边有多少位进行四舍五入。如果省略,则 Round 函数返回整数.   举例: <%   i = 32.45678   response.write Round(i)   %>   RESULT: 32

Rtrim()   FUNCTION: 去掉字符串右边的字符串.   语法: Rtrim(string)   参数:   举例: <%   strTest = "This is a test!! "   response.write RTrim(strTest)   %>   RESULT: This is a test!!

Second()   FUNCTION: 返回秒.   语法: Second(time)   参数: .   举例: <%=Second(#12:34:28 PM#)%>   RESULT: 28

StrReverse()   FUNCTION: 反排一字符串   语法: StrReverse(string)   参数:   举例: <%   strTest = "This is a test!!"   response.write StrReverse(strTest)   %>   RESULT: !!tset a si sihT

Time()   FUNCTION: 返回系统时间.   语法: Time()   参数: .   举例: <%=Time%>   RESULT: 9:58:28 AM

Trim()   FUNCTION: 去掉字符串左右的空格.   语法: Trim(string)   参数: string is any valid string expression.   举例: <%   strTest = " This is a test!! "   response.write Trim(strTest)   %>   RESULT: This is a test!!

UBound()   FUNCTION: 返回指定数组维数的最大可用下标.   语法: Ubound(arrayname [, dimension>)   参数: dimension (optional) 指定返回哪一维上界的整数。1 表示第一维,2 表示第二维,以此类推。如果省略 dimension 参数,则默认值为 1.   举例: <%   i = Array("Monday","Tuesday","Wednesday")   response.write UBound(i)   %>   RESULT: 2

UCase()   FUNCTION: 返回字符串的大写形式.   语法: UCase(string)   参数:   举例: <%   strTest = "This is a test!!"   response.write UCase(strTest)   %>   RESULT: THIS IS A TEST!!

VarType()   FUNCTION: 返回指示变量子类型的值   语法: VarType(varName)   参数:   举例: <%   i = 3   response.write varType(i)   %>   RESULT: 2(数字)详见"asp常数"

WeekDay()   FUNCTION: 返回在一周的第几天.   语法: WeekDay(date [, firstdayofweek>)   参数: .   举例: <%   d = #8/4/99#   response.write Weekday(d)   %>   RESULT: 4(星期三)

WeekDayName() FUNCTION: 返回一周第几天的名字. 语法: WeekDayName(weekday [, Abb [, firstdayofweek>>) 参数: Abb可选。Boolean 值,指明是否缩写表示星期各天的名称。如果省略, 默认值为 False,即不缩写星期各天的名称.firstdayofweek指明星期第一天的数值 举例: <% d = #8/4/99# response.write WeekdayName(Weekday(d)) %> RESULT: Wednesday

Year()   FUNCTION: 返回当前的年份.   语法: Year(date)   参数:   举例: <%=Year(#8/4/99#)%>   RESULT: 1999


2005-04-26 08:53
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5807
专家分:108
注 册:2005-4-7
得分:0 

SQL保留字 action add aggregate all alter after and as asc avg avg_row_length auto_increment between bigint bit binary blob bool both by cascade case char character change check checksum column columns comment constraint create cross current_date current_time current_timestamp data database databases date datetime day day_hour day_minute day_second dayofmonth dayofweek dayofyear dec decimal default delayed delay_key_write delete desc describe distinct distinctrow double drop end else escape escaped enclosed enum explain exists fields file first float float4 float8 flush foreign from for full function global grant grants group having heap high_priority hour hour_minute hour_second hosts identified ignore in index infile inner insert insert_id int integer interval int1 int2 int3 int4 int8 into if is isam join key keys kill last_insert_id leading left length like lines limit load local lock logs long longblob longtext low_priority max max_rows match mediumblob mediumtext mediumint middleint min_rows minute minute_second modify month monthname myisam natural numeric no not null on optimize option optionally or order outer outfile pack_keys partial password precision primary procedure process processlist privileges read real references reload regexp rename replace restrict returns revoke rlike row rows second select set show shutdown smallint soname sql_big_tables sql_big_selects sql_low_priority_updates sql_log_off sql_log_update sql_select_limit sql_small_result sql_big_result sql_warnings straight_join starting status string table tables temporary terminated text then time timestamp tinyblob tinytext tinyint trailing to type use using unique unlock unsigned update usage values varchar variables varying varbinary with write when where year year_month zerofill

ACCESS保留字 Microsoft Access 版本:1.0 , 1.1 , 2.0 Microsoft Access for Windows 95, version 7.0 Microsoft Access 97

本片文章中所列的单词和符号是保留字,应避免在Access字段名和变量名中使用,因为这些保留字在Access和Microsoft Jet database系统中有其特定的含义,如果你使用,将会出错。 -A ADD ALL (2.0, 7.0, 97) Alphanumeric ALTER AND ANY (2.0, 7.0, 97) Application AS ASC Assistant AUTOINCREMENT Avg

-B

BETWEEN BINARY BIT BOOLEAN BY BYTE

-C

CHAR, CHARACTER COLUMN CompactDatabase (2.0, 7.0, 97) CONSTRAINT Container (2.0, 7.0, 97) Count COUNTER (2.0, 7.0, 97) CREATE CreateDatabase (2.0, 7.0, 97) CreateField (2.0, 7.0, 97) CreateGroup (2.0, 7.0, 97) CreateIndex (2.0, 7.0, 97) CreateObject (2.0, 7.0, 97) CreateProperty (2.0, 7.0, 97) CreateRelation (2.0, 7.0, 97) CreateTableDef (2.0, 7.0, 97) CreateUser (2.0, 7.0, 97) CreateWorkspace (2.0, 7.0, 97) CURRENCY CurrentUser (2.0, 7.0, 97)

-D

DATABASE (2.0, 7.0, 97) DATE (2.0, 7.0, 97) DATETIME DELETE DESC Description DISALLOW DISTINCT DISTINCTROW Document (2.0, 7.0, 97) DOUBLE (2.0, 7.0, 97) DROP

-E Echo (2.0, 7.0, 97) Else End Eqv Error EXISTS (2.0, 7.0, 97) Exit

-F

FALSE Field, Fields (2.0, 7.0, 97) FillCache (2.0, 7.0, 97) FLOAT, FLOAT4, FLOAT8 FOREIGN (2.0, 7.0, 97) Form, Forms FROM Full (2.0, 7.0, 97) FUNCTION

-G

GENERAL GetObject (2.0, 7.0, 97) GetOption (2.0, 7.0, 97) GotoPage GROUP (2.0, 7.0, 97) GROUP BY GUID (7.0, 97)

-H

HAVING

-I[/color

Idle (2.0, 7.0, 97) IEEEDOUBLE, IEEESINGLE If IGNORE (2.0, 7.0, 97) Imp IN, In INDEX Index, Indexes (2.0, 7.0, 97) INNER INSERT InsertText (2.0, 7.0, 97) INT, INTEGER, INTEGER1, INTEGER2, INTEGER4 INTO IS, Is

-J

JOIN

-K

KEY (2.0, 7.0, 97)

-L

LEFT Level Like LOGICAL, LOGICAL1 LONG, LONGBINARY, LONGTEXT

-M

Macro Match (2.0, 7.0, 97) Max, Min, Mod MEMO Module MONEY Move (2.0, 7.0, 97)

-N

NAME (2.0, 7.0, 97) NewPassword (2.0, 7.0, 97) NO Not NULL NUMBER, NUMERIC

-O

Object (2.0, 7.0, 97) OLEOBJECT (2.0, 7.0, 97) OFF ON OpenRecordset (2.0, 7.0, 97) OPTION OR, Or ORDER Outer (2.0, 7.0, 97) OWNERACCESS

-P

Parameter (2.0, 7.0, 97) PARAMETERS Partial (2.0, 7.0, 97) PERCENT (2.0, 7.0, 97) PIVOT PRIMARY PROCEDURE Property (2.0, 7.0, 97)

-Q

Queries Query Quit (2.0, 7.0, 97)

-R

REAL Recalc (2.0, 7.0, 97) Recordset (2.0, 7.0, 97) REFERENCES Refresh RefreshLink (2.0, 7.0, 97) RegisterDatabase (2.0, 7.0, 97) Relation (2.0, 7.0, 97) Repaint (2.0, 7.0, 97) RepairDatabase (2.0, 7.0, 97) Report Reports Requery RIGHT

-S

SCREEN SECTION SELECT (2.0, 7.0, 97) SET SetFocus (2.0, 7.0, 97) SetOption (2.0, 7.0, 97) SHORT SINGLE (2.0, 7.0, 97) SMALLINT (2.0, 7.0, 97) SOME (2.0, 7.0, 97) SQL StDev, StDevP STRING Sum

-T

TABLE TableDef, TableDefs (2.0, 7.0, 97) TableID TEXT TIME, TIMESTAMP (2.0, 7.0, 97) TOP (2.0, 7.0, 97) TRANSFORM TRUE Type

-U

UNION UNIQUE UPDATE

-V

VALUE VALUES (2.0, 7.0, 97) Var, VarP VARBINARY, VARCHAR (2.0, 7.0, 97)

-W

WHERE WITH Workspace (2.0, 7.0, 97)

-X

Xor

[color=red]-Y[/color

Year YES YESNO (2.0, 7.0, 97)

下面的符号不能在字段的设计中使用

. / * : ! # & -

[color=#000066][此贴子已经被作者于2005-4-26 9:31:02编辑过]


2005-04-26 08:54
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5807
专家分:108
注 册:2005-4-7
得分:0 
关于RE.OPEN后面所跟的参数的问题

打开数据记录集方法其实不止一种,但是我们用的最多的就是
rs.open  sql,1,1的方法,可是后面的数字参数很多人不解其意,下面我们来介绍一下。
其实open方法后面有多个参数  
CursorType        LockType        CommandType
比如  rs.open  sql,1,1
也可以写成
rs.cursorType  =  1
rs.LockType  =  1
rs.open  sql
其中CursorType代表从一个表或者一个SQL查询结果返回的记录。
这个参数有四个值分别是:
adOpenForwardOnly  表示只允许在记录集内的记录间往前移动。这个是缺省值。
adOpenKeyset  反映由其它用户所做的对记录的改变或者删除动作,但并不反映由其它用户做作的添加新记录的动作。
adOpenDynamic  反映由其它用户所做的对记录的改变或者删除动作,包括添加的新记录
adOpenStatic  不反映其它用户对记录所做的修改,添加,删除动作。
这四个值VBSCRIPT预定义位
adOpenForwardOnly  =  0
adOpenKeyset  =  1
adOpenDynamic  =  2
adOpenStatic  =  3

lockType  表示当打开记录集时,数据提供者用于锁定数据库的类型:
adLockReadOnly  数据不能改变,这是缺省值!
adLockPessimistic  数据提供者在开始编辑数据的时候锁定记录
adLockOptimistic    仅当调用update方法时,数据提供者锁定记录
adLockBatchOptimistic  用于批处理修改
他们的常量值定义分别是:
adLockReadOnly  =  1
adLockPessimistic  =  2
adLockOptimistic  =  3
adLockBatchOptimistic  =  4

2005-04-26 09:13
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5807
专家分:108
注 册:2005-4-7
得分:0 

SQL最基本的四种语句

掌握SQL四条最基本的数据*作语句:Insert,Select,Update和Delete。

  练掌握SQL是数据库用户的宝贵财 富。在本文中,我们将引导你掌握四条最基本的

数据*作语句—SQL的核心功能—来依次介绍比较*作符、选择断言以及三值逻辑。当你

完成这些学习后,显然你已经开始算是精通SQL了。

  在我们开始之前,先使用CREATE TABLE语句来创建一个表。DDL语句对数据库对象

如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数

据库中实际的数据。这些工作由另一类SQL语句—数据*作语言(DML)语句进行处理。

  SQL中有四种基本的DML*作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数

SQL用户经常用到的,我们有必要在此对它们进行一一说明。我们给出了一个名为

EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面

的例子中将要用到它。

  INSERT语句

  用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John

Smith的记录插入到本例的表中,可以使用如下语句:

  INSERT INTO EMPLOYEES VALUES

   ('Smith','John','1980-06-10',

   'Los Angles',16,45000);

  通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们

创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中

;第二个值“John”将填到第二列FIRST_NAME中……以此类推。

  我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。如果

类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次*作并返回

一个错误信息。

  如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。这是因为SQL

提供对事务的支持。一次事务将数据库从一种一致性转移到另一种一致性。如果事务的

某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到此事务之前

的状态。

  回到原来的INSERT的例子,请注意所有的整形十进制数都不需要用单引号引起来,

而字符串和日期类型的值都要用单引号来区别。为了增加可读性而在数字间插入逗号将

会引起错误。记住,在SQL中逗号是元素的分隔符。

  同样要注意输入文字值时要使用单引号。双引号用来封装限界标识符。

  对于日期类型,我们必须使用SQL标准日期格式(yyyy-mm-dd),但是在系统中可

以进行定义,以接受其他的格式。当然,2000年临近,请你最好还是使用四位来表示年

份。

  既然你已经理解了INSERT语句是怎样工作的了,让我们转到EMPLOYEES表中的其他

部分:

  INSERT INTO EMPLOYEES VALUES

  ('Bunyan','Paul','1970-07-04',

  'Boston',12,70000);

  INSERT INTO EMPLOYEES VALUES

  ('John','Adams','1992-01-21',

  'Boston',20,100000);

  INSERT INTO EMPLOYEES VALUES

  ('Smith','Pocahontas','1976-04-06',

  'Los Angles',12,100000);

  INSERT INTO EMPLOYEES VALUES

  ('Smith','Bessie','1940-05-02',

  'Boston',5,200000);

  INSERT INTO EMPLOYEES VALUES

  ('Jones','Davy','1970-10-10',

   'Boston',8,45000);

  INSERT INTO EMPLOYEES VALUES

  ('Jones','Indiana','1992-02-01',

   'Chicago',NULL,NULL);

  在最后一项中,我们不知道Jones先生的工薪级别和年薪,所以我们输入NULL(不

要引号)。NULL是SQL中的一种特殊情况,我们以后将进行详细的讨论。现在我们只需

认为NULL表示一种未知的值。

有时,像我们刚才所讨论的情况,我们可能希望对某一些而不是全部的列进行赋值。除

了对要省略的列输入NULL外,还可以采用另外一种INSERT语句,如下:

  INSERT INTO EMPLOYEES(

  FIRST_NAME, LAST_NAME,

  HIRE_DATE, BRANCH_OFFICE)

  VALUE(

  'Indiana','Jones',

  '1992-02-01','Indianapolis');

  这样,我们先在表名之后列出一系列列名。未列出的列中将自动填入缺省值,如果

没有设置缺省值则填入NULL。请注意我们改变了列的顺序,而值的顺序要对应新的列的

顺序。如果该语句中省略了FIRST_NAME和LAST_NAME项(这两项规定不能为空),SQL*

作将失败。

  让我们来看一看上述INSERT语句的语法图:

  INSERT INTO table

  [(column { ,column})]

  VALUES

  (columnvalue [{,columnvalue}]);

  和前一篇文?幸谎?,我们用方括号来表示可选项,大括号表示可以重复任意次数的

项(不能在实际的SQL语句中使用这些特殊字符)。VALUE子句和可选的列名列表中必须

使用圆括号。

  SELECT语句

  SELECT语句可以从一个或多个表中选取特定的行和列。因为查询和检索数据是数据

库管理中最重要的功能,所以SELECT语句在SQL中是工作量最大的部分。实际上,仅仅

是访问数据库来分析数据并生成报表的人可以对其他SQL语句一窍不通。

  SELECT语句的结果通常是生成另外一个表。在执行过程中系统根据用户的标准从数

据库中选出匹配的行和列,并将结果放到临时的表中。在直接SQL(direct SQL)中,

它将结果显示在终端的显示屏上,或者将结果送到打印机或文件中。也可以结合其他

SQL语句来将结果放到一个已知名称的表中。

  SELECT语句功能强大。虽然表面上看来它只用来完成本文第一部分中提到的关系代

数运算“选择”(或称“限制”),但实际上它也可以完成其他两种关系运算—“投影

”和“连接”,SELECT语句还可以完成聚合计算并对数据进行排序。

  SELECT语句最简单的语法如下:

  SELECT columns FROM tables;

  当我们以这种形式执行一条SELECT语句时,系统返回由所选择的列以及用户选择的

表中所有指定的行组成的一个结果表。这就是实现关系投影运算的一个形式。

  让我们看一下使用EMPLOYEES表的一些例子(这个表是我们以后所有SELECT语句实

例都要使用的。而我们在图2和图3中给出了查询的实际结果。我们将在其他的例子中使

用这些结果)。

  假设你想查看雇员工作部门的列表。那下面就是你所需要编写的SQL查询:

  SELECT BRANCH_OFFICE FROM EMPLOYEES;

  由于我们在SELECT语句中只指定了一个列,所以我们的结果表中也只有一个列。注

意结果表中具有重复的行,这是因为有多个雇员在同一部门工作(记住SQL从所选的所

有行中将值返回)。要消除结果中的重复行,只要在SELECT语句中加上DISTINCT子句:

  SELECT DISTINCT BRANCH_OFFICE

  FROM EMPLOYEES;

  现在已经消除了重复的行,但结果并不是按照顺序排列的。如果你希望以字母表顺

序将结果列出又该怎么做呢?只要使用ORDER BY子句就可以按照升序或降序来排列结果

  SELECT DISTINCT BRANCH_OFFICE

  FROM EMPLOYEES

  ORDER BY BRANCH_OFFICE ASC;

  这一查询的结果如表4所示。请注意在ORDER BY之后是如何放置列名BRANCH

_OFFICE的,这就是我们想要对其进行排序的列。为什么即使是结果表中只有一个列时

我们也必须指出列名呢?这是因为我们还能够按照表中其他列进行排序,即使它们并不

显示出来。列名BRANCH_ OFFICE之后的关键字ASC表示按照升序排列。如果你希望以降

序排列,那么可以用关键字DESC。

  同样我们应该指出ORDER BY子句只将临时表中的结果进行排序;并不影响原来的表

  假设我们希望得到按部门排序并从工资最高的雇员到工资最低的雇员排列的列表。

除了工资括号中的内容,我们还希望看到按照聘用时间从最近聘用的雇员开始列出的列

表。以下是你将要用到的语句:

  SELECT BRANCH_OFFICE,FIRST_NAME,

  LAST_NAME,SALARY,HIRE_DATE

  FROM EMPLOYEES

  ORDER BY SALARY DESC,

  HIRE_DATE DESC;

  这里我们进行了多列的选择和排序。排序的优先级由语句中的列名顺序所决定。

SQL将先对列出的第一个列进行排序。如果在第一个列中出现了重复的行时,这些行将

被按照第二列进行排序,如果在第二列中又出现了重复的行时,这些行又将被按照第三

列进行排序……如此类推。这次查询的结果如表5所示。

  将一个很长的表中的所有列名写出来是一件相当麻烦的事,所以SQL允许在选择表

中所有的列时使用*号:

  SELECT * FROM EMPLOYEES;

  这次查询返回整个EMPLOYEES表,如表1所示。

  下面我们对开始时给出的SELECT语句的语法进行一下更新(竖直线表示一个可选项

,允许在其中选择一项。):

  SELECT [DISTINCT]

  (column [{, columns}])  *

  FROM table [ {, table}]

  [ORDER BY column [ASC]   DESC

  [ {, column [ASC]   DESC }]];

定义选择标准

  在我们目前所介绍的SELECT语句中,我们对结果表中的列作出了选择但返回的是表

中所有的行。让我们看一下如何对SELECT语句进行限制使得它只返回希望得到的行:

  SELECT columns FROM tables [WHERE predicates];

  WHERE子句对条件进行了设置,只有满足条件的行才被包括到结果表中。这些条件

由断言(predicate)进行指定(断言指出了关于某件事情的一种可能的事实)。如果

该断言对于某个给定的行成立,该行将被包括到结果表中,否则该行被忽略。在SQL语

句中断言通常通过比较来表示。例如,假如你需要查询所有姓为Jones的职员,则可以

使用以下SELECT语句:

  SELECT * FROM EMPLOYEES

  WHERE LAST_NAME = 'Jones';

  LAST_NAME = 'Jones'部分就是断言。在执行该语句时,SQL将每一行的LAST_NAME

列与“Jones”进行比较。如果某一职员的姓为“Jones”,即断言成立,该职员的信息

将被包括到结果表中

  使用最多的六种比较

  我们上例中的断言包括一种基于“等值”的比较(LAST_NAME = 'Jones'),但是

SQL断言还可以包含其他几种类型的比较。其中最常用的为:

  等于 =

  不等于 <>

  小于 <

  大于 >

  小于或等于 <=

  大于或等于 >=

  下面给出了不是基于等值比较的一个例子:

  SELECT * FROM EMPLOYEES

  WHERE SALARY > 50000;

  这一查询将返回年薪高于$50,000.00的职员(参见表7)。

  逻辑连接符

  有时我们需要定义一条不止一种断言的SELECT语句。举例来说,如果你仅仅想查看

Davy Jones的信息的话,表6中的结果将是不正确的。为了进一步定义一个WHERE子句,

用户可以使用逻辑连接符AND,OR和NOT。为了只得到职员Davy Jones的记录,用户可以

输入如下语句:

  SELECT * FROM EMPLOYEES

  WHERE LAST_NAME = 'Jones' AND FIRST_NAME = 'Davy';

  在本例中,我们通过逻辑连接符AND将两个断言连接起来。只有两个断言都满足时

整个表达式才会满足。如果用户需要定义一个SELECT语句来使得当其中任何一项成立就

满足条件时,可以使用OR连接符:

  SELECT * FROM EMPLOYEES

  WHERE LAST_NAME = 'Jones' OR LAST_NAME = 'Smith';

  有时定义一个断言的最好方法是通过相反的描述来说明。如果你想要查看除了

Boston办事处的职员以外的其他所有职员的信息时,你可以进行如下的查询:

  SELECT * FROM EMPLOYEES

  WHERE NOT(BRANCH_OFFICE = 'Boston');

  关键字NOT后面跟着用圆括号括起来的比较表达式。其结果是对结果取否定。如果

某一职员所在部门的办事处在Boston,括号内的表达式返回true,但是NOT*作符将该值

取反,所以该行将不被选中。

  断言可以与其他的断言嵌套使用。为了保证它们以正确的顺序进行求值,可以用括

号将它们括起来:

  SELECT * FROM EMPLOYEES

  WHERE (LAST_NAME = 'Jones'

  AND FIRST_NAME = 'Indiana')

  OR (LAST_NAME = 'Smith'

  AND FIRST_NAME = 'Bessie');

  SQL沿用数学上标准的表达式求值的约定—圆括号内的表达式将最先进行求值,其

他表达式将从左到右进行求值。

  以上对逻辑连接符进行了说明,在对下面的内容进行说明之前,我们再一次对

SELECT语句的语法进行更新:

  SELECT [DISTINCT]

  (column [{, column } ] )  *

  FROM table [ { , table} ]

  [ORDER BY column [ASC]   [DESC

  [{ , column [ASC]   [DESC } ] ]

  WHERE predicate [ { logical-connector predicate } ];

  NULL和三值逻辑

  在SQL中NULL是一个复杂的话题,关于NULL的详细描述更适合于在SQL的高级教程而

不是现在的入门教程中进行介绍。但由于NULL需要进行特殊处理,并且你也很可能会遇

到它,所以我们还是简略地进行一下说明。

  首先,在断言中进行NULL判断时需要特殊的语法。例如,如果用户需要显示所有年

薪未知的职员的全部信息,用户可以使用如下SELECT语句:

  SELECT * FROM EMPLOYEES

  WHERE SALARY IS NULL;

  相反,如果用户需要所有已知年薪数据的职员的信息,你可以使用以下语句:

  SELECT * FROM EMPLOYEES

  WHERE SALARY IS NOT NULL;

  请注意我们在列名之后使用了关键字IS NULL或IS NOT NULL,而不是标准的比较形

式:COLUMN = NULL、COLUMN <> NULL或是逻辑*作符NOT(NULL)。

  这种形式相当简单。但当你不明确地测试NULL(而它们确实存在)时,事情会变得

很混乱。

  例如,回过头来看我们图1中的EM-PLOYEES表,可以看到Indiana Jones的工薪等级

或年薪值都是未知的。这两个列都包含NULL。可以想象运行如下的查询:

  SELECT * FROM EMPLOYEES

  WHERE GRADE <= SALARY;

  此时,Indiana Jones应该出现在结果表中。因为NULL都是相等的,所以可以想象

它们是能够通过GRADE小于等于SALARY的检查的。这其实是一个毫无疑义的查询,但是

并没有关系。SQL允许进行这样的比较,只要两个列都是数字类型的。然而,Indiana

Jones并没有出现在查询的结果中,为什么?

  正如我们早先提到过的,NULL表示未知的值(而不是象某些人所想象的那样表示一

个为NULL的值)。对于SQL来说意味着这个值是未知的,而只要这个值为未知,就不能

将其与其他值比较(即使其他值也是NULL)。所以SQL允许除了在true 和false之外还

有第三种类型的真值,称之为“非确定”(unknown)值。

  如果比较的两边都是NULL,整个断言就被认为是非确定的。将一个非确定断言取反

或使用AND或OR与其他断言进行合并之后,其结果仍是非确定的。由于结果表中只包括

断言值为“真”的行,所以NULL不可能满足该检查。从而需要使用特殊的*作符IS NULL

和IS NOT NULL。

UPDATE语句

  UPDATE语句允许用户在已知的表中对现有的行进行修改。

  例如,我们刚刚发现Indiana Jones的等级为16,工资为$40,000.00,我们可以通

过下面的SQL语句对数据库进行更新(并清除那些烦人的NULL)。

  UPDATE EMPLOYEES

  SET GRADE = 16, SALARY = 40000

  WHERE FIRST_NAME = 'Indiana'

  AND LAST_NAME = 'Jones';

  上面的例子说明了一个单行更新,但是UPDATE语句可以对多行进行*作。满足WHERE

条件的所有行都将被更新。如果,你想让Boston办事处中的所有职员搬到New York,你

可以使用如下语句:

  UPDATE EMPLOYEES

  SET BRANCH_OFFICE = 'New York'

  WHERE BRANCH_OFFICE = 'Boston';

  如果忽略WHERE子句,表中所有行中的部门值都将被更新为'New York'。

  UPDATE语句的语法流图如下面所示:

  UPDATE table

  SET column = value [{, column = value}]

  [ WHERE predicate [ { logical-connector predicate}]];

DELETE语句

  DELETE语句用来删除已知表中的行。如同UPDATE语句中一样,所有满足WHERE子句

中条件的行都将被删除。由于SQL中没有UNDO语句或是“你确认删除吗?”之类的警告

,在执行这条语句时千万要小心。如果决定取消Los Angeles办事处并解雇办事处的所

有职员,这一卑鄙的工作可以由以下这条语句来实现:

  DELETE FROM EMPLOYEES

  WHERE BRANCH_OFFICE = 'Los Angeles';

  如同UPDATE语句中一样,省略WHERE子句将使得*作施加到表中所有的行。

  DELETE语句的语法流图如下面所示:

  DELETE FROM table

  [WHERE predicate [ { logical-connector predicate} ] ];

  现在我们完成了数据*作语言(DML)的主要语句的介绍。我们并没有对SQL能完成

的所有功能进行说明。SQL还提供了许多的功能,如求平均值、求和以及其他对表中数

据的计算,此外SQL还能完成从多个表中进行查询(多表查询,或称之为连接)的工作

。这种语言还允许你使用GRANT和REVOKE命令控制使用者的数据访问权限。

  创建表格:

  SQL语言中的create table语句被用来建立新的数据库表格。create table语句的

使用格式如下:

  create table tablename

  (column1 data type,

  column2 data type,

  column3 data type);

  如果用户希望在建立新表格时规定列的限制条件,可以使用可选的条件选项:

  create table tablename

  (column1 data type [constraint],

  column2 data type [constraint],

  column3 data type [constraint]);

  举例如下:

  create table employee

  (firstname varchar(15),

  lastname varchar(20),

  age number(3),

  address varchar(30),

  city varchar(20));

  简单来说,创建新表格时,在关键词create table后面加入所要建立的表格的名称

,然后在括号内顺次设定各列的名称,数据类型,以及可选的限制条件等。注意,所有

的SQL语句在结尾处都要使用“;”符号。

  使用SQL语句创建的数据库表格和表格中列的名称必须以字母开头,后面可以使用

字母,数字或下划线,名称的长度不能超过30个字符。注意,用户在选择表格名称时不

要使用SQL语言中的保留关键词,如select, create, insert等,作为表格或列的名称

  数据类型用来设定某一个具体列中数据的类型。例如,在姓名列中只能采用

varchar或char的数据类型,而不能使用number的数据类型。

  SQL语言中较为常用的数据类型为:

  char(size):固定长度字符串,其中括号中的size用来设定字符串的最大长度。

Char类型的最大长度为255字节。

  varchar(size):可变长度字符串,最大长度由size设定。

  number(size):数字类型,其中数字的最大位数由size设定。

  Date:日期类型。

  number(size,d):数字类型,size决定该数字总的最大位数,而d则用于设定该数

字在小数点后的位数。

  最后,在创建新表格时需要注意的一点就是表格中列的限制条件。所谓限制条件就

是当向特定列输入数据时所必须遵守的规则。例如,unique这一限制条件要求某一列中

不能存在两个值相同的记录,所有记录的值都必须是唯一的。除unique之外,较为常用

的列的限制条件还包括not null和primary key等。not null用来规定表格中某一列的

值不能为空。primary key则为表格中的所有记录规定了唯一的标识符。


2005-04-26 09:18
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5807
专家分:108
注 册:2005-4-7
得分:0 

Asp及Web开发中的常见问题 及ASP错误信息一揽表

表格的折行处理.

<table style="TABLE-LAYOUT: fixed" width="200" border="0" cellspacing="0" cellpadding="7" bgcolor="#f7f7f7"> <tr> <td style="LEFT: 0px; WIDTH: 100%; WORD-WRAP: break-word"> dffadfdaqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqsfdffadfdasfdffadfdasfdffadfdasfdffadfdasfdffadfdasfdffadfdasfdffadfdasfdffadfdasfdffadfd

asf </td> </tr> </table>

此处主要是用css样式进行控制在<table>标签中有个style="TABLE-LAYOUT: fixed",其说明如下

语法:

table-layout : auto | fixed

参数:

auto :  默认的自动算法。布局将基于各单元格的内容。表格在每一单元格读取计算之后才会显示出来。速度很慢 fixed :  固定布局的算法。在这算法中,水平布局是仅仅基于表格的宽度,表格边框的宽度,单元格间距,列的宽度,而和表格内容无关,此时在<td>标签中如果

没有WORD-WRAP: break-word样式,表格中的内容将只能显示一部份,具体看表格的宽度了.word-wrap说明如下:

语法:

word-wrap : normal | break-word

参数:

normal :  允许内容顶开指定的容器边界 break-word :  内容将在边界内换行。如果需要,词内换行(word-break)也会发生

VBSCRIPT标记索引

基本运算 + 数字加法及字符串连接 - 数字减法 * 数字乘法 / 数字除法 Mod 求余数 \ 求商数 & 字符串连接 ^ 次方 = 相等 <> 不相等 >= 大于或等于 > 大于 <= 小于或等于 < 小于 Not 非 And 且 Or 或 Xor 异或

循环及决策 if ....then 若...则... if ...then...else 若...则...非 else if... 非若 select case... 群组选择条件 end select for ... next 计数循环 while...wend 条件循环(一) do while...loop 条件循环(二) do...loop while 条件循环(三) do until...loop 条件循环(四) do...loop until 条件循环(五)

数学函数 Abs 绝对值 Sgn 正负号 Hex 转换成十六进制 Oct 转换成八进制 Sqr 平方根 Int 取整数 Fix 取整数 Round 取整数 Log 以e为底的对数 Sin 正弦函数 Cos 余弦函数 Tan 正切函数

字符串处理函数 Len 字符串长度 Mid 取部分字符串 Left 从字符串开头取部分字符串 Right 从字符串结尾取部分字符串 Lcase 转换成小写 Ucase 转换成大写 Trim 清除字符串开头及结尾的空格符 Ltrim 清除字符串开头空格符 Rtrim 清除字符串结尾空格符 Replace 替换字符串部分字符 Instr 判断是否包含于另一个字符串(从起始搜寻) InstrRev 判断是否包含于另一个字符串(从结尾搜寻) Space 任意字符数的空格符 String 任意字符数的任一字符 StrReverse 反转字符串 Split 以某字符分割字符串

数据类型转换函数 Cint 转换成整形 Cstr 转换成字符串 Clng 转换成常整数 Cbool 转换成布尔函数 Cdate 转换成日期函数 CSng 转换成单精度 CDbl 转换成双精度

日期时间函数 Date 现在日期 Time 现在时间 NOw 现在日期时间 DateAdd 增加日期 DateDiff 两日期差 DateSerial 日期设定 DateValue 日期设定 Year 现在年份 Month 现在月份 Day 现在天 Hour 现在时刻 Minute 现在分钟 Second 现在秒钟 Timer 午夜距现在秒数 TimeSerial 时间设定 TimeValue 时间所属部分 WeekDay 星期名称 MonthName 月份名称

其它函数 Array 产生数组 Asc 字符ASCII码 Chr ASCII码字符 Filter 过滤数组 InputBox 输入窗口 Join 合并数组中的元素 MsgBox 信息窗口 Lbound 数组下界 Ubound 数组上界

指令 Const 设定常数 Dim 定义变量或者数组 Erase 清除数组 ReDim 重新声明数组 Randomize 起始随机数 Rnd 取得随机数

ASP对象

Session对象 IsEmpty 测试Session变量是否存在 TimeOut 设定Session变量生存周期 Abandon 强制清除Session变量

Application对象 IsEmpty 测试Application变量是否存在 Lock 锁定Application变量 Unlock 解除Lock指令的锁定

Cookies对象 Expires 设定Cookies变量的生存周期

Connection对象 Open 打开与数据库的连接 Execute 打开Recordset对象 Close 关闭Connection对象

Recordset对象 movefirst 将记录指针移至第一条 movelast 将记录指针移至最后一条 movenext 将记录指针移至下一条 moveprevious 将记录指针移至上一条 bof 测试是否为recordset的起始 eof 测试是否为recordset的结束 open 打开Recoreset对象 close 关闭recordset对象 fields 读取数据的子对象 fileds.count 字段个数 pagesize 每页记录条数 absolutepage 设定为某页 pagecount 总页数 Absoluteposition 直接跳至某条记录 MicrosoftVBscript运行时错误列表(10进制表示)

error # 5 无效的过程调用或参数 error # 5 无效的过程调用或参数 error # 6 溢出 error # 7 内存不够 error # 9 下标越界 error # 10 该数组为定长的或临时被锁定 error # 11 被零除 error # 13 类型不匹配 error # 14 字符串空间不够 error # 17 不能执行所需的操作 error # 28 堆栈溢出 error # 35 未定义过程或函数 error # 48 加载 DLL 时出错 error # 51 内部错误 error # 52 错误的文件名或号码 error # 53 文件未找到 error # 54 错误的文件模式 error # 55 文件已经打开 error # 57 设备 I/O 错误 error # 58 文件已存在 error # 61 磁盘已满 error # 62 输入超出了文件尾 error # 67 文件过多 error # 68 设备不可用 error # 70 没有权限 error # 71 磁盘没有准备好 error # 74 重命名时不能带有其他驱动器符号 error # 75 路径/文件访问错误 error # 76 路径未找到 error # 91 对象变量未设置 error # 92 For 循环未初始化 error # 94 无效使用 Null error # 322 不能创建必要的临时文件 error # 424 缺少对象 error # 429 ActiveX 部件不能创建对象 error # 430 类不支持 Automation 操作 error # 432 Automation 操作中文件名或类名未找到 error # 438 对象不支持此属性或方法 error # 440 Automation 操作错误 error # 445 对象不支持此操作 error # 446 对象不支持已命名参数 error # 447 对象不支持当前区域设置选项 error # 448 未找到已命名参数 error # 449 参数是必选项 error # 450 错误的参数个数或无效的参数属性值 error # 451 对象不是一个集合 error # 453 未找到指定的 DLL 函数 error # 455 代码资源锁定错误 error # 457 此键已与该集合的一个元素关联 error # 458 变量使用了一个 VBScript 中不支持的 Automation 类型 error # 462 远程服务器不存在或不可用 error # 481 无效图片 error # 500 变量未定义 error # 501 非法赋值 error # 502 对象不能安全用 Script 编程 error # 503 对象不能安全初始化 error # 504 对象不能安全创建 error # 505 无效的或无资格的引用 error # 506 类没有被定义 error # 507 出现一个意外错误 error # 1001 内存不够 error # 1002 语法错误 error # 1003 缺少 ':' error # 1005 缺少 '(' error # 1006 缺少 ')' error # 1007 缺少 ']' error # 1010 缺少标识符 error # 1011 缺少 '=' error # 1012 缺少 'If' error # 1013 缺少 'To' error # 1014 缺少 'End' error # 1015 缺少 'Function' error # 1016 缺少 'Sub' error # 1017 缺少 'Then' error # 1018 缺少 'Wend' error # 1019 缺少 'Loop' error # 1020 缺少 'Next' error # 1021 缺少 'Case' error # 1022 缺少 'Select' error # 1023 缺少表达式 error # 1024 缺少语句 error # 1025 语句未结束 error # 1026 缺少整型常数 error # 1027 缺少 'While' 或 'Until' error # 1028 缺少 'While' 和 'Until'或语句未结束 error # 1029 缺少 'With' error # 1030 标识符过长 error # 1031 无效数字 error # 1032 无效字符 error # 1033 未结束的字符串常量 error # 1034 注释未结束 error # 1037 无效使用 'Me' 关键字 error # 1038 'loop' 语句缺少 'do' error # 1039 无效的 'exit' 语句 error # 1040 循环控制变量 'for' 无效 error # 1041 名称重定义 error # 1042 必须是行中的第一个语句 error # 1043 不能为 non-ByVal 参数赋值 error # 1044 调用子程序时不能使用括号 error # 1045 缺少文字常数 error # 1046 缺少 'In' error # 1047 缺少 'Class' error # 1048 必须在一个类的内部定义 error # 1049 在属性声明中缺少 Let , Set 或 Get error # 1050 缺少 'Property' error # 1051 在所有属性的规范中,变量的数目必须一致 error # 1052 在一个类中不允许有多个缺省的属性/方法 error # 1053 类的初始化或终止程序没有变量 error # 1054 属性的 set 或 let 必须至少有一个变量 error # 1055 错误的 'Next' error # 1056 'Default' 只能在 'Property' , 'Function' 或 'Sub' 中指定 error # 1057 指定 'Default' 时必须同时指定 'Public' error # 1058 只能在 Property Get 中指定 'Default' error # 4096 Microsoft VBScript 编译器错误 error # 4097 Microsoft VBScript 运行时错误 error # 5016 缺少正则表达式对象 error # 5017 正则表达式语法错误 error # 5018 错误的数量词 error # 5019 正则表达式中缺少 ']' error # 5020 正则表达式中缺少 ')' error # 5021 字符集越界

树形菜单: <SCRIPT language="JavaScript"> var lastObj

function expandIt(obj) { if(lastObj != null) { if(obj == lastObj) { if(obj.style.display == "none") { obj.style.display = ""; } else { obj.style.display = "none" } } else { lastObj.style.display = "none"; obj.style.display = ""; } } else { obj.style.display = ""; }

lastObj = obj } </SCRIPT>

<table width="100%" border="0" cellspacing="0" cellpadding="0"> <% dim id id = request("id") dim strsql,rs

strsql="select * from p_type where slanguage=1 and typelevel=1 order by typename" set rs=fgetrslist(strsql) do while not rs.eof

%> <tr> <td height="25" class="LEFTLINKS"><img width="30" height="0" align="absmiddle" /><b><%if rs("isleaf")=0 then%><a href="#"

onClick="javascript:expandIt(kb<%=rs("id")%>);return false"><%else%><a href="<%=request.ServerVariables("SCRIPT_NAME")%>?idtree=<%=rs

("idtree")%>" ><%end if%><%=server.HTMLEncode(right((rs("typename")&""),len(rs("typename")&"")-2))%></a></b></td> </tr> <% IF clng(id)=clng(rs("id")) then

%> <tr id="kb<%=rs("id")%>"> <% else

%>

<tr id="kb<%=rs("id")%>" style="display:none;"> <% end if %> <td> <table> <% dim rs1 strsql="select * from p_type where parentid="&rs("id")&" and slanguage=1 order by typename" set rs1=fgetrslist(strsql) do while not rs1.eof %> <tr><td height="20" class="LEFTLINKS"> <img width="40" height="0" align="absmiddle" /><a href="<%=request.ServerVariables("SCRIPT_NAME")%>?idtree=<%=rs1("idtree")%>&id=<%=rs("id")%>"

><%=server.HTMLEncode(right((rs1("typename")&""),len(rs1("typename")&"")-2))%></a></td></tr> <% rs1.movenext loop rs1.close set rs1=nothing %> </table> </td> </tr> <% rs.movenext

loop rs.close set rs=nothing %> </table>

ASP错误代码祥解

MicrosoftVBScript语*错误(0x800A03E9)-->内存不足 MicrosoftVBScript语*错误(0x800A03EA)-->语*错误 MicrosoftVBScript语*错误(0x800A03EB)-->缺少 ':' MicrosoftVBScript语*错误(0x800A03ED)-->缺少 '(' MicrosoftVBScript语*错误(0x800A03EE)-->缺少 ')' MicrosoftVBScript语*错误(0x800A03EF)-->缺少 ']' MicrosoftVBScript语*错误(0x800A03F2)-->缺少标识符 MicrosoftVBScript语*错误(0x800A03F3)-->缺少 '=' MicrosoftVBScript语*错误(0x800A03F4)-->缺少 'If' MicrosoftVBScript语*错误(0x800A03F5)-->缺少 'To' MicrosoftVBScript语*错误(0x800A03F6)-->缺少 'End' MicrosoftVBScript语*错误(0x800A03F7)-->缺少 'Function' MicrosoftVBScript语*错误(0x800A03F8)-->缺少 'Sub' MicrosoftVBScript语*错误(0x800A03F9)-->缺少 'Then' MicrosoftVBScript语*错误(0x800A03FA)-->缺少 'Wend' MicrosoftVBScript语*错误(0x800A03FB)-->缺少 'Loop' MicrosoftVBScript语*错误(0x800A03FC)-->缺少 'Next' MicrosoftVBScript语*错误(0x800A03FD)-->缺少 'Case' MicrosoftVBScript语*错误(0x800A03FE)-->缺少 'Select' MicrosoftVBScript语*错误(0x800A03FF)-->缺少表达式 MicrosoftVBScript语*错误(0x800A0400)-->缺少语句 MicrosoftVBScript语*错误(0x800A0401)-->语句未结束 MicrosoftVBScript语*错误(0x800A0402)-->缺少整型常数 MicrosoftVBScript语*错误(0x800A0403)-->缺少 'While' 或 'Until' MicrosoftVBScript语*错误(0x800A0404)-->缺少 'While', 'Until' 或语句未结束 MicrosoftVBScript语*错误(0x800A0405)-->缺少 'With' MicrosoftVBScript语*错误(0x800A0406)-->标识符过长 MicrosoftVBScript语*错误(0x800A0407)-->无效数字 MicrosoftVBScript语*错误(0x800A0408)-->无效字符 MicrosoftVBScript语*错误(0x800A0409)-->未结束的字符串常量 MicrosoftVBScript语*错误(0x800A040A)-->注释未结束 MicrosoftVBScript语*错误(0x800A040D)-->无效使用 'Me' 关键字 MicrosoftVBScript语*错误(0x800A040E)-->'loop' 语句缺少 'do' MicrosoftVBScript语*错误(0x800A040F)-->无效的 'exit' 语句 MicrosoftVBScript语*错误(0x800A0410)-->循环控制变量 'for' 无效 MicrosoftVBScript语*错误(0x800A0411)-->名称重定义 MicrosoftVBScript语*错误(0x800A0412)-->必须是行中的第一个语句 MicrosoftVBScript语*错误(0x800A0413)-->不能为 non-ByVal 参数赋值 MicrosoftVBScript语*错误(0x800A0414)-->调用子程序时不能使用括号 MicrosoftVBScript语*错误(0x800A0415)-->缺少文字常数 MicrosoftVBScript语*错误(0x800A0416)-->缺少 'In' MicrosoftVBScript语*错误(0x800A0417)-->缺少 'Class' MicrosoftVBScript语*错误(0x800A0418)-->必须在一个类的内部定义 MicrosoftVBScript语*错误(0x800A0419)-->在属性声明中缺少 Let , Set 或 Get MicrosoftVBScript语*错误(0x800A041A)-->缺少 'Property' MicrosoftVBScript语*错误(0x800A041B)-->在所有属性的规范中,变量的数目必须一致 MicrosoftVBScript语*错误(0x800A041C)-->在一个类中不允许有多个缺省的属性/方* MicrosoftVBScript语*错误(0x800A041D)-->类的初始化或终止程序没有参数 MicrosoftVBScript语*错误(0x800A041E)-->属性的 set 或 let 必须至少有一个参数 MicrosoftVBScript语*错误(0x800A041F)-->错误的 'Next' MicrosoftVBScript语*错误(0x800A0420)-->'Default' 只能在 'Property' , 'Function' 或 'Sub' 中指定 MicrosoftVBScript语*错误(0x800A0421)-->指定 'Default' 时必须同时指定 'Public' " MicrosoftVBScript语*错误(0x800A0422)-->只能在 Property Get 中指定 'Default' MicrosoftVBScript 运行时错误(0x800A0005)-->无效的过程调用或参数 MicrosoftVBScript 运行时错误(0x800A0006)-->溢出 MicrosoftVBScript 运行时错误(0x800A0007)-->内存不足 MicrosoftVBScript 运行时错误(0x800A0009)-->下标越界 MicrosoftVBScript 运行时错误(0x800A000A)-->该数组为定长的或临时被锁定 MicrosoftVBScript 运行时错误(0x800A000B)-->被零除 MicrosoftVBScript 运行时错误(0x800A000D)-->类型不匹配 MicrosoftVBScript 运行时错误(0x800A000E)-->字符串空间不够 MicrosoftVBScript 运行时错误(0x800A0011)-->不能执行所需的操作 MicrosoftVBScript 运行时错误(0x800A001C)-->堆栈溢出 MicrosoftVBScript 运行时错误(0x800A0023)-->未定义过程或函数 MicrosoftVBScript 运行时错误(0x800A0030)-->加载 DLL 时出错 MicrosoftVBScript 运行时错误(0x800A0033)-->内部错误 MicrosoftVBScript 运行时错误(0x800A0034)-->错误的文件名或号码 MicrosoftVBScript 运行时错误(0x800A0035)-->文件未找到 MicrosoftVBScript 运行时错误(0x800A0036)-->错误的文件模式 MicrosoftVBScript 运行时错误(0x800A0037)-->文件已经打开 MicrosoftVBScript 运行时错误(0x800A0039)-->设备 I/O 错误 MicrosoftVBScript 运行时错误(0x800A003A)-->文件已存在 MicrosoftVBScript 运行时错误(0x800A003D)-->磁盘已满 MicrosoftVBScript 运行时错误(0x800A003E)-->输入超出了文件尾 MicrosoftVBScript 运行时错误(0x800A0043)-->文件过多 MicrosoftVBScript 运行时错误(0x800A0044)-->设备不可用 MicrosoftVBScript 运行时错误(0x800A0046)-->没有权限 MicrosoftVBScript 运行时错误(0x800A0047)-->磁盘没有准备好 MicrosoftVBScript 运行时错误(0x800A004A)-->重命名时不能带有其他驱动器符号 MicrosoftVBScript 运行时错误(0x800A004B)-->路径/文件访问错误 MicrosoftVBScript 运行时错误(0x800A004C)-->路径未找到 MicrosoftVBScript 运行时错误(0x800A005B)-->对象变量未设置 MicrosoftVBScript 运行时错误(0x800A005C)-->For 循环未初始化 MicrosoftVBScript 运行时错误(0x800A005E)-->无效使用 Null MicrosoftVBScript 运行时错误(0x800A0142)-->不能创建所需的临时文件 MicrosoftVBScript 运行时错误(0x800A01A8)-->缺少对象 MicrosoftVBScript 运行时错误(0x800A01AD)-->ActiveX 部件不能创建对象 MicrosoftVBScript 运行时错误(0x800A01AE)-->类不能支持 Automation 操作 MicrosoftVBScript 运行时错误(0x800A01B0)-->Automation 操作中文件名或类名未找到 MicrosoftVBScript 运行时错误(0x800A01B6)-->对象不支持此属性或方* MicrosoftVBScript 运行时错误(0x800A01B8)-->Automation 操作错误 MicrosoftVBScript 运行时错误(0x800A01BD)-->对象不支持此操作 MicrosoftVBScript 运行时错误(0x800A01BE)-->对象不支持已命名参数 MicrosoftVBScript 运行时错误(0x800A01BF)-->对象不支持当前区域设置 MicrosoftVBScript 运行时错误(0x800A01C0)-->未找到已命名参数 MicrosoftVBScript 运行时错误(0x800A01C1)-->参数是必选项 MicrosoftVBScript 运行时错误(0x800A01C2)-->错误的参数个数或无效的参数属性值 MicrosoftVBScript 运行时错误(0x800A01C3)-->对象不是一个集合 MicrosoftVBScript 运行时错误(0x800A01C5)-->未找到指定的 DLL 函数 MicrosoftVBScript 运行时错误(0x800A01C7)-->代码资源锁定错误 MicrosoftVBScript 运行时错误(0x800A01CA)-->变量使用了一个 VBScript 中不支持的 Automation 类型 MicrosoftVBScript 运行时错误(0x800A01CE)-->远程服务器不存在或不可用 MicrosoftVBScript 运行时错误(0x800A01E1)-->无效图片 MicrosoftVBScript 运行时错误(0x800A01F4)-->变量未定义 MicrosoftVBScript 运行时错误(0x800A01F5)-->非*赋值 MicrosoftVBScript 运行时错误(0x800A01F6)-->对象不能安全地使用 Script 编程 MicrosoftVBScript 运行时错误(0x800A01F7)-->对象不能安全初始化 MicrosoftVBScript 运行时错误(0x800A01F8)-->对象不能安全创建 MicrosoftVBScript 运行时错误(0x800A01F9)-->无效的或无资格的引用 MicrosoftVBScript 运行时错误(0x800A01FA)-->类没有被定义 MicrosoftVBScript 运行时错误(0x800A01FB)-->出现一个意外错误 MicrosoftVBScript 运行时错误(0x800A1398)-->缺少常规表达式对象 MicrosoftVBScript 运行时错误(0x800A1399)-->常规表达式语*错误 MicrosoftVBScript 运行时错误(0x800A139A)-->错误的数量词 MicrosoftVBScript 运行时错误(0x800A139B)-->常规表达式中缺少 ']' MicrosoftVBScript 运行时错误(0x800A139C)-->常规表达式中缺少 ')' MicrosoftVBScript 运行时错误(0x800A139D)-->字符集越界 MicrosoftVBScript 运行时错误(0x800A802B)-->未找到元素 ActiveServerPages,ASP0126(0x80004005)-->找不到包含文件 MicrosoftOLEDBProviderforODBCDrivers(0x80040E14)-->sql语句出错(字段名错误,或数据类型不匹配) MicrosoftOLEDBProviderforODBCDrivers(0x80040E07)-->sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配) MicrosoftOLEDBProviderforODBCDrivers(0x80040E57)-->sql语句出错(要插入或更新的数据溢出) MicrosoftOLEDBProviderforODBCDrivers(0x80040E10)-->sql语句出错(update字段名或要更新的数据类型错误) MicrosoftOLEDBProviderforODBCDrivers(0x80004005)-->sql语句出错(要插入或更新的字段的数值不能为空值) MicrosoftOLEDBProviderforODBCDrivers(0x80004005)-->打开数据库出错,没有在指定目录发现数据库 MicrosoftOLEDBProviderforODBCDrivers(0x80040E37)-->没有发现表 ODBCDrivers(0x80040E21)-->sql语句出错(数据类型不匹配或表/字段错误或处于编辑状态,或不存在于conn打开的数据库中) ADODB.Recordset(0x800A0BB9)-->sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误) ADODB.Recordset(0x800A0CC1)-->rs对像出错(rs对像本身不存在或错误地引用了一个不存在的字段名) ADODB.Recordset(0x800A0BCD)-->rs对像出错(记录集中没有记录却对记录集进行操作) ADODB.Recordset(0x800A0E78)-->rs对像出错(记录集不存在,缺少rs.open语句) ADODB.Recordset(0x800A0CC1)-->rs对像出错(引用了一个不存在的字段名) ADODB.Recordset(0x800A0E7D)-->conn定义错误 ADODB.Recordset(0x800A0CB3)-->数据库以只读方式打开,无*更新数据 ADODB.Recordset(0x800A000D)-->错误引用rs变量(rs对像已关闭或未定义)


2005-04-26 09:50
suyongtao
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:33
帖 子:8674
专家分:127
注 册:2004-11-6
得分:0 
看出来了,全不是原创,,呵呵,

面朝大海,春暖花开!
2005-04-26 10:52
hxfly
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:5807
专家分:108
注 册:2005-4-7
得分:0 
这么多
你怎么让我原创啊?
呵呵
东搜搜,西搜搜而已
有很多人问的问题都重复
总是一次一次的解答也不是办法啊
所以
只有.......
十全大补啊!!!
哈哈
以后再有类似的问题
直接把这个网址一贴,自己看看吧
呵呵
这就简单了

2005-04-26 11:06
caiyakang
Rank: 2
等 级:新手上路
威 望:5
帖 子:2111
专家分:0
注 册:2005-3-24
得分:0 
楼主,请问ASP的语法和对像是JAVASCRIPT或者VBSCRIPT还是有自已的语法啊.

中国人的财富网:http://www..cn/
2005-04-26 14:54
━╋网情深★
Rank: 1
等 级:新手上路
帖 子:187
专家分:0
注 册:2005-3-18
得分:0 
楼主在哪拷的啊!那么长怎么看!
还不如看书呢?
你说说网址我们自己会看的!

[glow=255,red,2] ╭︿︿☆╮ ╭︿︿︿╮ {/ . .\\}oοО缘份使… {/. . \\} ( (oo) ) …我们相识Оοo( (oo) ) ︶︶︶︶….距离总是太远 …︶︶︶︶oοО相处总是太难Оοo伤心伤神不如失去记忆 [/glow]
2005-04-26 15:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-16723-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.303851 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved