|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了在本篇的开首,我要感激一些伴侣来信给我指出了前几篇文章中的毛病。不知人人是不是记得在第八篇中我举了一个复杂的使用Application制造的页面会见计数器?有位伴侣来信问我,为什么当他改动计数器肇端变量NumVisits的值后对最初的记数了局没有任何感化?后来我也百思不解,让我们往返忆一下这段源程序,以下:
<%
DimNumVisits
NumVisits=0
Application.Lock
Application("NumVisits")=Application("NumVisits")+1
Application.Unlock
%>
接待到临本网页,你是本页的第<%=Application("NumVisits")%>位访客!
在这段程序中,假如你试图经由过程改动变量NumVisits的值来改动记数器了局,是相对办不到的。由于用变量的值往改动Application的值是不成以的,这二者是不相干的。以是这里对变量的界说和赋值都是过剩的。那末我们事实应当怎样来给Application("NumVisits")界说一个初始值呢?请看以下修改后程序:
<%
IfApplication("NumVisits")<999then
Application("NumVisits")=999
EndIf
Application.Lock
Application("NumVisits")=Application("NumVisits")+1
Application.Unlock
%>
接待到临本网页,你是本页的第<%=Application("NumVisits")%>位访客!
这里的999就是你要设定的计数器初始值,云云一来成绩就水到渠成了。我十分感激这位姓康的伴侣给我指出了这个毛病,固然这只是一个很小的毛病,但我们在配合学程序写程序的过程当中十分必要这类松散仔细的风格,但愿从此伴侣们们一旦发明文中的毛病马上来信告诉,我也能实时改正,感谢。
SQL言语能够分为两年夜部分:数据界说言语和数据利用言语,继上一篇我们进修了数据利用言语中的Select语句后,明天作者要持续给人人扼要先容其他的SQL语句。
SQL是一种完整的数据处置言语,不但用于数据库查询,并且用于数据库中的数据修正和更新,与撑持SQL查询的Select语句的庞大性比拟较,变动数据库内容的SQL语句就分外复杂。但是关于一个DBMS来讲,数据更新所酿成的风险年夜年夜超越了数据查询。数据库办理体系必需在变动期内回护所存储的数据的分歧性,确保无效的数据进进数据库,数据库必需坚持分歧性,DBMS还必需和谐多用户的并行更新,以确保用户和他们的变动不至于影响其他用户的功课。 用于修正数据库内容的SQL语句次要有以下三个:
1、Insert,向一个表中到场新的数据行
2、Delete,从一个表中删除数据行
3、Update,变动数据库中已存在的数据
起首我们来看看Insert的用法:
尺度语法:
INSERTINTOtable_name
(col1,col2...)
VALUES(value1,value2...)
下例要将墨客作为一个新的发卖员到场表Salesreps中
InsertInto
Salesreps(name,num,sales,hire_date,income)
values(shusheng,9,10000,23-Feb-99,2000)
在此语句中,列的称号列在括号中以逗号离隔,接下往是Value短语和括号中一样以逗号离隔的每列数据,应当注重的是数据和列称号的按次是不异的,并且如果字符串型则以单引号离隔。从观点下去讲,Insert语句创建的一个与表列布局相分歧的数据行,用取自Values子句的数据来添补它,然后将该新行到场表中,表中的行是不排序的,因而不存在将该行拔出到表的头或尾或两行之间的这个观点。Insert语句停止后,新行就是表的一部分了。
Insert语句还能够将多行数据增加到方针表中往,在这类情势的Insert语句中,新行的数据值不是在语句注释中明白地指定的,而是语句中指定的一个数据库查询。增加的值来自数据库本身的行,这乍看起来仿佛有些奇异,可是在某些特定的形态下,这长短常有效的。好比,你想把1998年12月30日之前发生的定单编号、日期和数量从order表中拷贝到另外一个名为oldorder的表中往,多行Insert语句为拷贝数据供应了一种松散而高效的办法,以下:
Insertintooldorder(Num,Date,Amount)
SelectNum,Date,Amount
Fromorder
WhereDate<30-12-98
这条语句看起来有些庞大,实在很复杂,语句标识了吸收新行的表oldorder和吸收数据的列,完整相似于单行Insert语句。语句的残剩部分是一个查询,它检索order表中的数据。SQL先实行对order表的查询,然后将查询了局逐行拔出到oldorder表中往。
上面我们来看看Update的用法,Update语句用于更新单表当选定行的一列或多列的值。要更新的方针表在语句中界说,Set子句则指定要更新哪些列并盘算他们的值。Update语句老是包括Where语句,并且Update语句对照伤害,以是您必需明白地熟悉到Where语句的主要性,Where语句被用来指定必要更新的行。
尺度语法:
UPDATEtable_name
SETcolumnname1=value1
[,columname2=value2]...
WHEREsearch_condition
以下是一个复杂的Update语句的例子:
Updatecustomers
Setcredit=100000.00,id=99
Wherename=asp
在此例中我们将表customers中客户名为asp的客户的信贷值更新为10万并将他的ID变动为99。再看下例:
Updatecustomers
Setcredit=200000.00,state=021
WhereIDin(80,90,100,120)
我们能够发明,实在SQL处置Update语句的历程就是逐行遍历所指定的表,更新其搜刮前提了局为“真”的行,跳过其搜刮前提了局为“假”或“空”的行。
最初,来看看Delete语句。
尺度语法:
DELETEFROMtablename
WHEREcondition
因为它过于复杂,以是所酿成的成果也是严峻的,固然个中的Where子句是任选的,但它几近老是存在的,若将Where子句从Delete语句中省略失落,则方针表的一切行都将被删除。看下例:
DeletefromorderWhereID=99
在文章的开端,作者在给人人扼要先容一下数据界说言语。它是用来创立和修正数据库布局的一种语句,包含Create和Drop语句。
1、Create语句
尺度语法:
CREATETABLEtable_name
(field1datatype[NOTNULL],
field2datatype[NOTNULL],
field3datatype[NOTNULL]...)
如:
CREATETABLEBILLS
(NAMECHAR(30),
AMOUNTNUMBER,
ACCOUNT_IDNUMBER)
只管CreateTable比后面先容的语句难了解一些,但仍旧很直不雅。它将bills付与一个新表,并指定表中三列的称号和数据范例。表被创建后我们就能够添进数据了。如:
Insertintobills(name,amout,account_id)values(gates,100,1)
假如,你以为不再必要保留产物信息,则可用Droptable语句将该表及其所包括的一切数据从数据库中删撤除。
尺度语法:
DROPTABLEtable_name
至此,我们已懂得了一切经常使用的SQL语句,可别小视这些貌似英文的复杂语句,它们的功效非常壮大,当我们编写asp程序时必需利用他们对数据库举行操纵。从下一篇入手下手,作者将给人人先容ASP的内建ActiveX组件,敬请存眷。
由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。 |
|