论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > ASP >

(C)011网上教学系统

3、查询

查询是数据库系统中一个十分重要的对象,它用于在一个或多个表内查找某些特定的数据,完成数据的检索、定位和计算的功能,供用户查看。没有查询,就没有应用系统对数据的处理能力。SQL Server2000提供多种查询方式。 内容来自www.paper51.com

汇总查询:对数据表进行统计,如求和、记数、求平均值等;

paper51.com

动作查询:对数据表进行生成、删除、替换等; http://www.paper51.com

选择查询:找到符合特定准则的数据信息; copyright paper51.com

SQL查询:使用结构查询语言SQL进行查询。

copyright paper51.com

五、功能模块介绍

内容来自www.paper51.com

站内的大部分功能段都自定义成函数,过程的形式,做成一个独立的文件(connect-data.asp文件)有需要用到里面的功能段的时候,只要通过<!--#include virtual=”210.34.144.96/netclass/connect-data.asp”-->这样就能省掉很多重复的写的工作。下面是对几个自定义的函数的说明:

paper51.com

1、连接数据库,

http://www.paper51.com

连接数据库的方法有很多种,但归纳起来分为两大类,一类是用OLEDB连接数据库,另一类是采用ODBC连接数据库。我是采用无DNS的连接方法,代码如下: 内容来自论文无忧网 www.paper51.com

dim conn

http://www.paper51.com

Set conn = Server.CreateObject(“ADODB.Connection”)

http://www.paper51.com

Conn.Open “Provider=SQLOLEDB; DataSource=host.domain.com;UID=sa; PWD=password; DataBase=Netclass”这样每建立一次数据库连接,就要将这段代码重复一遍,显然没这个必要因此改成函数的形式放在Connect-data.asp文件中,Function GetSQLConnection(computer,uid,pwd,db) 内容来自www.paper51.com

   dimparams,conn

内容来自论文无忧网 www.paper51.com

   setGetSQLConnection = nothing paper51.com

  params = "Provider=SQLOLEDB" 内容来自www.paper51.com

  params = params & ";Data Source=" & computer http://www.paper51.com

  params = params & ";User ID=" & uid paper51.com

  params = params & ";Password=" & pwd

copyright paper51.com

  params = params & ";Database=" & db http://www.paper51.com

   setconn = Server.CreateObject("ADODB.Connection")

内容来自论文无忧网 www.paper51.com

  conn.open params copyright paper51.com

   setGetSQLConnection = conn

http://www.paper51.com

end Function这样,这个函数的兼容性就变得很好。 http://www.paper51.com

Dim Conn copyright paper51.com

Set Conn = GetSQLConnect(“orientrain”,”sa”,”chaoqun”,”netclass”) paper51.com

我们现在就可以这样就建立了ASP和数据库的连接了。

paper51.com

2、取数据库的数据函数。这里有两种方式,这里是有关于ADO游标的选择。一种是客户机端游标,一种是服务器端游标。默认的情况下是服务器端游标,当我们不希望网络服务器负担过重或网络太拥挤,可以选用这样方式。但是有的情况下是必须用到客户机端游标的。比如数据的分页显示,此时就必须用到客户机端游标。要表明你想使用客户机端游标,必须使用CursorLocation属性。为了适应这样的需要,我写了两个不同的取数据函数:GetSQLData(conn,mysql)及GetStaticSQLData(conn,mysql) 内容来自www.paper51.com

Function GetSQLDATA(conn,mysql) paper51.com

 dim rs

内容来自论文无忧网 www.paper51.com

 set GetSQLDATA = nothing

copyright paper51.com

 set rs = Server.CreateObject("ADODB.Recordset")

paper51.com

 rs.open mysql,conn,adOpenKeyset,adLockOptimistic,adCmdText copyright paper51.com

 set GetSQLDATA = rs

内容来自论文无忧网 www.paper51.com

End Function

内容来自论文无忧网 www.paper51.com

'------------------------------------------------------------------------------------- paper51.com

Function GetStaticSQLDATA(conn,mysql) copyright paper51.com

 dim rs paper51.com

 set GetStaticSQLDATA = nothing paper51.com

 set rs = Server.CreateObject("ADODB.Recordset")

paper51.com

 rs.CursorLocation = adUseClientBatch

paper51.com

 rs.open mysql,conn,adOpenStatic,adLockReadOnly,adCmdText

内容来自论文无忧网 www.paper51.com

 set GetStaticSQLDATA = rs

http://www.paper51.com

End Function paper51.com

‘----------------------------------------------------------------------------------------

copyright paper51.com

函数GetSQLDATA未对rs的CursorLocationj进行定义,默认的情况下为服务器端游标(adUseServer)函数GetStaticSQLDATA定义了rs.CursorLocation = adUserClientBatch为客户机端游标。

内容来自论文无忧网 www.paper51.com

3、取得指定的文件夹,取得指定的文件夹其实没有什么用处,但是我们可以使用其files属性取得该文件夹下的所有文件。这样我就可以做一个任意的一个文件夹作为共享文件夹,可以接受上传的文件,而这些文件就可以直接映射成网页内的一个超连接。代码是: paper51.com

Function GetFolder(path) http://www.paper51.com

  dim fso

http://www.paper51.com

  dimobjFolder

paper51.com

  SetGetFolder = nothing

copyright paper51.com

  set fso =Server.CreateObject("Scripting.FilesystemObject")

paper51.com

  SetobjFolder = fso.GetFolder(path)

http://www.paper51.com

  SetGetFolder = objFolder 内容来自www.paper51.com

  Set fso =nothing

copyright paper51.com

End Function copyright paper51.com

我只要通过调用该函数就可以取得我想要的文件夹下的所以文件如

copyright paper51.com

dim path,Folder http://www.paper51.com

path = “d:\document”

内容来自www.paper51.com

Set Folder=GetFolder(path) 内容来自www.paper51.com

For each aa in Folder.files http://www.paper51.com

  Response.write aa.name &”<br>”

内容来自论文无忧网 www.paper51.com

Next 内容来自www.paper51.com

这样就可以把该文件夹下的所以文件名列出来。该函数主要用于一些打包过的教程、课件的下载。 内容来自论文无忧网 www.paper51.com

4、表单数据二进制提交法。当一个提交的表单中含有文件上传选项时,必须用到这种方法,或者所提交的数据会丢失,但是这就涉及到字符转换的问题,各不同提交数据的边界问题。我们必须将这些提交的数据进行分离,然后再转化回数据的原貌。特别是对于中文字符的处理。

copyright paper51.com

ASP的内置对象Request的BinaryRead方法。该方法从客户端获得数据,并把数据存储在SafeArray中。SafeArray是一个数组,其中包含维数以及各维的上下限的信息。通过试验总结知道,它的界限是类似”-----------------------------7d239dab076e”的字符串。我们可以取得该字符串,然后应用instrb(),leftb(),rightb(),lenb(),midb()这几个函数就可以轻松记得我们想要的数据了。具体代码如下:

内容来自论文无忧网 www.paper51.com

Sub BuildUploadRequest(RequestBin)

内容来自论文无忧网 www.paper51.com

dim PosBeg

内容来自论文无忧网 www.paper51.com

dim PosEnd

http://www.paper51.com

dim boundary

copyright paper51.com

dim boundaryPos

copyright paper51.com

dim Pos 内容来自www.paper51.com

dim Name

内容来自www.paper51.com

dim Value 内容来自www.paper51.com

dim PosFile

http://www.paper51.com

dim PosBound

paper51.com

dim FileName

内容来自www.paper51.com

dim ContentType paper51.com

dim UploadControl

http://www.paper51.com

    '取得分界符号

copyright paper51.com

    PosBeg = 1 内容来自论文无忧网 www.paper51.com

    PosEnd =InstrB(PosBeg,RequestBin,getByteString(chr(13)))

paper51.com

    boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)

paper51.com

    boundaryPos =InstrB(1,RequestBin,boundary) paper51.com

    '取得边界字符内所以的数据 paper51.com

    Do until(boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))

copyright paper51.com

        '将所以的变量附给一个对象object

内容来自论文无忧网 www.paper51.com

        Set UploadControl = CreateObject("Scripting.Dictionary")

内容来自www.paper51.com

        '取得对象名字 paper51.com

        Pos= InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))

http://www.paper51.com

        Pos= InstrB(Pos,RequestBin,getByteString("name="))

paper51.com

       PosBeg = Pos+6

copyright paper51.com

       PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))

copyright paper51.com

        Name= getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))

内容来自www.paper51.com

       PosFile =InstrB(BoundaryPos,RequestBin,getByteString("filename="))

内容来自www.paper51.com

       PosBound = InstrB(PosEnd,RequestBin,boundary) http://www.paper51.com

        '检测 copyright paper51.com

        If  PosFile<>0 AND(PosFile<PosBound) Then http://www.paper51.com

           '取得上传文件Filename,content-type和content paper51.com

           PosBeg = PosFile + 10

内容来自www.paper51.com

           PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34))) 内容来自论文无忧网 www.paper51.com

           FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg)) 内容来自www.paper51.com

           '把文件名加到对象中 内容来自论文无忧网 www.paper51.com

           UploadControl.Add "FileName", FileName paper51.com

           Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:")) http://www.paper51.com

           PosBeg = Pos+14 内容来自www.paper51.com

           PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13))) 内容来自www.paper51.com

           ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))

http://www.paper51.com

           UploadControl.Add "ContentType",ContentType paper51.com

           PosBeg = PosEnd+4 内容来自论文无忧网 www.paper51.com

           PosEnd = InstrB(PosBeg,RequestBin,boundary)-2

内容来自论文无忧网 www.paper51.com

           Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg) paper51.com

           Else 内容来自www.paper51.com

           Pos = InstrB(Pos,RequestBin,getByteString(chr(13))) copyright paper51.com

           PosBeg = Pos+4

copyright paper51.com

           PosEnd = InstrB(PosBeg,RequestBin,boundary)-2 paper51.com

           Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))

http://www.paper51.com

        EndIf paper51.com

       UploadControl.Add "Value" ,Value 内容来自www.paper51.com

       UploadRequest.Add Name, UploadControl copyright paper51.com

       BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary) http://www.paper51.com

    Loop copyright paper51.com

End Sub

内容来自www.paper51.com

------分隔线----------------------------
联系方式