访问数据库(4)
大家好,我是武汉华师的sunwen,前些天给大家讲述了一些SQL的基本语法,然后就好几天没有了下文。这是因为学校这几天正在开运动会,我也跑了800米,虽然没有名次,但也累得半死,毕竟我已拼尽了全力。本来我今天是没有力气写下去的,但是想起我的学习ASP的过程,我就又打起精神,打开电脑,写了起来。(很有敬业精神吧!)
今天开始我还是要向大家讲一点SQL的知识,然后再回到ASP中来。
B.插入数据
这当然也是一个非常重要内容,看下面的介绍吧:
1.column_list参数指定insert语句向哪些列中插入数据
2.values子句为新插入行中column_list参数所指定列提供数据,这些数据可以用常量或表达式表示,也可使用defalt关键字说明向列中插入其默认值
3.default values说明向表中所有列插入其默认值
4.选用select_statement时,insert语句将select_statement子句所返回的结果插入到指定表中
5.table_souces说明要插入数据的表或视图
例一:使用数值列表方式向表中插入数据的时候,要求values子句中各列数据的排列顺序与表中定义顺序完全一致 insert tb values ('ypf','china','99999')
这个例子中tb表示一个表的名称,values后表示要向表中的列插入的数据,其排列顺序应与实际表中的顺序一致
例二:也可以指明顺序:例如 insert tb(phone,name) values ('899999','user')
这个例子中tb(phone,name)表示tb表中的phone和name这两列,而values ('899999','user')指定了向这两列插入的内容。列与要插入的数据是一一对应的。另外,我们可以变量来代替数据,如:values (a,b)中,a,b就是两个变量,但是要切记,其变量类型一定要与列的类型一致,否则将产生错误。我们还可以将数据用default代替,用来表示向这一列插入默认值。如:insert tb(phone,name) values (DEFAULT','user')
好了,让我们再开始ASP吧!
通过上面的课程我们已经知道了如何对一个数据库进行一些操作。但是我们知道,我们现在是在用vbscript来编写ASP,而vb中字符型变量的赋值形式是a="abcd",也就是说,我们在引用a这个字符型数据时,实际上是在引用"abcd"。比如说一句这样的语句:insert tb values (a,'poi')这其中的a代表"abcd",而这个语句实际上就是insert tb values ("abcd",'poi'),发现问题了吧!我们在上一节课中讲到SQL中的字符型变量的引用应当是用单引号来分界的,而我们前面一个语句中用的是双引号。这必将产生问题。所以,当我们要在一个页面中放置一个表单,其中包括一个text的话,我们用另一个ASP来引用这个text的内容,并要将这个text中的内容写入数据库的时候,用一个insert语句就会产生问题,而要将其中的双引号变为单引号又是比较困难的。所以,我今天要向大家介绍另一种向数据库插入数据的方法,这个方法便是利用记录集的addnew方法。
首先看下面一个例子:
set objconn=server.createobject("adodb.connection") objconn.open "dsn=mydb;database=db2;uid=;pwd=;" set rs=server.createobject("adodb.recordset") rs.open "ships",objconn,,,adcmdtable objrs.addnew objrs("companyname")="华师科技" objrs.update objrs.close
是不是看得懂呢?让我来解释一下吧!rs.open "ships",objconn,,,adcmdtable这一句就是要利用objconn这个连接来打开ships这个表。接着有objrs.addnew这个语句来告诉系统我要进行addnew操作了,然后将表中的companyname这个字段的内容替换成“华师科技”,其实这一系列动作都是在内存中进行的,并没有写入磁盘,而objrs.update这一句则将其写入磁盘.最后关闭记录集。是不是很简单。
好了,下一课再见!
慢着!随着大学学习的不断进行,我在高中养成的勤奋学习的好习惯也渐渐没有了,变得异常懒(原来大学远没有想象的那么好),所以这一篇写完了,下一篇不知什么时候才会出来。所以大家多摧一摧我,给我打一打气!mrfat@china.com
|