3.1.2 ADO数据访问接口
可以使用ADO(ActiveX Data Object,ActiveX数据对象)对几乎所有数据库进行读取和写入操作。ADO常用的四种对象及其功能如下:
1) 连接对象(Connection):用来连接数据库。
2) 记录集对象(RecordSet):用来保存查询语句返回的结果。
3) 命令对象(Command):用来执行SQL(Structured Query Language)语句或者SQL Server的存储过程。
4)参数对象(Parameter):用来为存储过程或查询提供参数。
与数据库的通信通过一个打开的Connection对象进行。对一个数据库进行数据的插入和读取前,必须先打开与这个数据库的连接,可以通过以下代码实现:
<%
DBPath=Server.MapPath("db1.mdb") 取得要打开数据库的完整路径
Set Conn=Server.CreatObject(“ADODB.Connection”) 建立Connection对象
Conn.Open “driver={Microsoft Access Driver (db1.mdb)};dbq=”& DbPath
Open方法打开指定的数据库
Set rs=Server.CreatObject(“ADODB.Recordset”) 建立Recordset对象
Rs.Open … … Open方法打开数据库表等
%>
3.1.3 常用SQL语句
1)select语句
select语句从一个或多个表中取得信息,其语法为:
select columns from tables
select columns from tables where criteria
select columns from tables order by sequence
select columns from tables where criteria order by sequence
其中tables 是用逗号隔开的一系列表,而columns 是由逗号隔开的这些表中的列,where 子句中定义了从表中选择哪些记录,order by子句定义了怎样对记录进行排序。
2)insert into
insert into语句用于在一个表中插入一个或多个记录,其语法为:
insert into table(columns) values (values)
insert into destination select from source
其中values是要加入表中的一条记录的值,用逗号分隔。上面第一条语句用于在表中加入一条记录,而第二条语句用于从源表中插入一系列记录到目的表中。
3)delete
delete语句用于从表中修改一条或多条记录,其语法为:
delete from table where criteria
其中criteria指定要删除哪些记录。
4)update
update 语句用于修改表中已存在的一条记录,其语法为:
update table set changes where criteria
其中要修改的内容在changes中指定,而criteria中指定要修改表中的哪些记录。
3.2 管理库功能实现
本多媒体积件管理系统实现了积件知识点的查找、添加、删除、修改、上传等功能。
3.2.5 多媒体积件管理库数据上传
多媒体积件管理库跟其他数据库一样,用户有需要向管理库或者指定文件夹中上传积件或素材。在多媒体积件管理库上传界面,用户只要输入上传文件的文件名及其地址,就可以将其上传到站点下的new.mdb数据库中的product表中以及站点下的files文件夹中。文件可以是zip文件,声音、影像等各类Windows文件等等。
文件上传功能的实现可以通过在ASP中使用外置组件LyfUpload来实现。LyfUpload是一个免费的ASP组件,可以在ASP页面中接收客户端浏览器使用encType=“multipart/form-data”的Form上传的文件。该组件是一个DLL(Dynamic Link Library,动态连接库)文件,名称为LyfUpload.dll。
ASP要使用一个组件,必须首先在服务器上注册。将LyfUpload.dll文件复制到系统盘WINNT目录的system32目录下,单击“开始”菜单,打开“运行”窗口,在运行窗口中输入“regsvr32 LyfUpload.dll”,注意必须将LyfUpload.dll文件复制到system32目录下,否则就找不到。注册成功后弹出对话框,说明注册成功。注册完以后,就可以在ASP程序中调用使用。
譬如,用户需要上传某文件,只要在文件名中输入该文件的文件名,然后在地址栏中选择文件的地址后点击上载就可以完成该文件的上传。
以下是文件上传功能实现的程序:
<%
strConn = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("new.mdb")
session("strconn")=strConn
Set dbc = Server.CreateObject("ADODB.Connection")
dbc.open strConn
set rs=server.CreateObject("adodb.recordset")
rs.Open "SELECT * FROM product",dbc,1,3
Set obj = Server.CreateObject("LyfUpload.UploadFile")
txt = obj.request("text1") 得到form元素的值
Response.Write( "文件名: " & txt)
Response.Write "<br>"
ss=obj.SaveFiletodb("file1") 保存文件到数据库
aa=obj.filetype("file1") 得到文件的Content-Type
if txt="" then
Response.Write("请填入文件名!")
elseif ss= "" then
Response.Write ("文件上传失败!")
--------------------------------文件上载到文件夹中-----------------------
Else
filename="file1"
path="c:\inetpub\wwwroot\jiyan\files"
ss=obj.SaveFile(filename, path, false,txt) 保存文件到文件夹
aa=obj.filetype("file1")
if ss="3" then
Response.Write "此文件在文件夹上已经存在!<br>"
Response.Write "请在文件名框内重新命名!<br>"
elseif ss<> "" then
Response.Write "选择的文件已经上载到文件夹!<br>"
Response.Write("文件名:" & ss)
Response.Write("<br>Content-Type:" & aa) '得到Content-Type
Response.Write"<br>"
Response.Write("文件大小:" & obj.FileSize)
end if
rs.AddNew
rs("文件名")=txt
rs("文件类型")=trim(aa)
rs("数据格式").AppendChunk obj.DBContent'BLOB 数据不能直接赋值
rs.Update
rs.movelast
session("ID")=rs("ID")
rs.Close
dbc.Close
set rs=nothing
set dbc=nothing [1] [2] 下一页