ASP完美转化ACCESS为SQL数据库连接
- 格式:doc
- 大小:28.00 KB
- 文档页数:3
Access导入到SQL Server数据库中的三种方法SQL Server数据库以2005为例,导入方法如下:一.使用SQL Server的数据库导入/导出功能。
首先在要导入到的SQL Srever数据库上右键,选择“任务”,然后选择“导入数据”,按照提示下一步直到完成即可成功将Access数据库导入到SQL Server数据库中,此种方法如果SQL Server数据库中没有相应的数据表,则会自动创建改表,但是约束等表关系不会同步导入,如果SQL Server中有相同名称并且属性相同的数据表,则会直接将Access数据库中的对应表的数据导入。
在导入过程中,还可以通过SQL语句指定要导入的数据。
使用这种方法一般会出现以下两种错误:(1)无法建立数据流连接为连接管理器“{FFBF32BF-EE84-4F94-ACDB-D4C5AC4C2941}”指定的连接类型“OLEDB”未被识别为有效的连接管理器类型。
当视图创建未知连接类型的连接管理器时会返回此错误。
请检查连接类型名称的拼写是否正确。
(2)无法连接源组件找不到连接“SourceConnectionOLEDB”。
如果找不到特定的连接元素,Connections集合将发生此错误。
其他信息:找不到连接“SourceConnectionOLEDB”。
如果找不到特定的连接元素,Connections集合将发生此错误。
({0DE0CDBB-BCD6-4261-A118-B0CB22DA3C4A})具体解决办法是打开SqlServer Configuration Manage,右键单击“Sql Server Integrati on Services”,选择“属性”,将登录身份修改为“Local System(本地系统)”,然后重新启动该服务。
二.使用Access数据库的数据升迁功能。
首先点击“工具”菜单,选择“数据库实用工具”,选择“升迁向导”,这是会提示你该功能尚未安装,需要安装XXX之类的信息,点击安装,等待安装成功后,即可弹出“升迁向导”对话框,按照提示下一步直到完成,即可将Acces s数据库导入到SQL Server数据库中。
用ASP连接数据库的几种方法用ASP连接DBF、DBC、MDB、Excel、SQL Server型数据库的方法:一、ASP的对象存取数据库方法在ASP中,用来存取数据库的对象统称ADO〔Active Data Objects〕,主要含有三种对象:Connection、Recordset 、CommandConnection:负责打开或连接数据Recordset:负责存取数据表Command:负责对数据库执行行动查询命令二、连接各数据库的驱动程序连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,因为使用驱动程序非常方便、简单,而使用数据源比较麻烦。
驱动程序适用数据库类型Microsoft.Jet.OLEDB.4.0 MdbMicrosoft Access Driver AccessMicrosoft dBase Driver DbaseMicrosoft Excel Driver ExcelMicrosoft Visual FoxPro Driver DbcSQLOLEDB.1 SQL srver7.0而我们在一般情况下使用Access的数据库比较多,在这里我建议大家连接Access数据库使用下面的方法:dim connset conn = server.createobject("adodb.connection")conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " &server.mappath("../db/bbs.mdb")其中../db/bbs.mdb是你的数据库存放的相对路径!如果你的数据库和ASP文件在同一目录下,你只要这样写就可以了:dim connset conn = server.createobject("adodb.connection")conn.open = "provider=microsoft.jet.oledb.4.0;" & "data source = " & server.map path("bbs.mdb")有许多初学者在遇到数据库连接时总是会出问题,然而使用上面的驱动程序只要你的数据库路径选对了就不会出问题了ASP连接数据库的5种方法第一种 - 这种方法用在ACCESS中最多strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _& Server.MapPath("aspfree.mdb")set conn = server.createobject("adodb.connection")conn.open strconn第二种-这种方法用在SQL SERVER中多strconn = "Driver={SQL Server};Description=sqldemo;SERVER=127.0.0.1;" _ &"UID=LoginID;Password=;DATABASE=Database_Name"set conn = server.createobject("adodb.connection")conn.open strconn第三种strconn="Driver={Microsoft Access Driver(*.mdb)};" _&"DBQ=F:\Inetpub\wwwroot\somedir\db1.mdb;DefaultDir=" _&"f:\Inetpub\wwwroot\somedir;uid=LoginID;" _&"pwd=Password;DriverId=25;FIL=MSAccess;"set conn = server.createobject("adodb.connection")conn.open strconn第四种运用系统数据源The following uses a Data Source Name: Exampleset conn = server.createobject("adodb.connection")conn.open "Example"第五种运用ODBC数据源,前提是你必须在控制面板的ODBC中设置数据源set rs = server.createobject("adodb.recordset")rs.open "tblname", "DSNName", 3, 3 第一种 - 这种方法用在ACCESS中最多strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" _& Server.MapPath("aspfree.mdb")set conn = server.createobject("adodb.connection")conn.open strconnASP访问数据库的方式有哪些?在ASP中可以通过三种方式访问数据库:1、IDC〔Internet Database Connector〕方式;2、ADO〔ActiveX Data Objects〕方式;3、RDS〔Remote Data Service〕方式。
ASP连接Access数据库几种常见方法在弹出来的“自定义连接字符串”对话框中,"连接名称"随便写一个。
“连接字符串”就要好好填写了。
当"使用此计算机上的驱动程序"时应用绝对路径:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\newgn\database\cnbruce.mdb否则“使用测试服务器上的驱动程序”采用Mappath转换路径:"Driver={Microsoft Access Driver (*.mdb)};DBQ="& server.mappath("/newgn/database/cnbruce.mdb")注:如果将要上传到网上去的页子就可以直接采用Mappath了点击“测试”,出现成功即爽。
附注:需要更多了解的,可以打开DW的帮助教程。
第一种连接和记录集分开声明<%db="db/darden.mdb"set conn=server.createobject("ADODB.connection")connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("" & db & "")conn.open connstr%><%set rs=server.createobject("adodb.recordset")sql="select * from ebook order by id desc"rs.open sql,conn,3,3rs.addnew............rs.update (rs.delete)rs.closeset rs=nothingconn.closeset conn=nothingresponse.write("<center><a href=viewdatabase.asp>显示文字</a></center>")Response.Redirect "homepage.asp"%>第二种连接和记录集一同声明<%set rs=server.createobject("adodb.recordset")sql="select * from ebook order by id desc"conn = "DBQ=" + server.mappath("book.mdb") + ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"rs.open sql,conn,3,3rs.addnew............rs.update (rs.delete)rs.closeset rs=nothingresponse.write("<center><a href=viewdatabase.asp>显示文字</a></center>")%>ASP数据库简单*作教程<1>.数据库连接(用来单独编制连接文件conn.asp)<%Set conn = Server.CreateObject(ADODB.Connection)conn.Open DRIVER={Microsoft Access Driver (*.mdb)}; DBQ= & Server.MapPath(\bbs\db1\user.mdb)%>(用来连接bbs\db1\目录下的user.mdb数据库)<2>显示数据库记录原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录如果是从头到尾:用循环并判断指针是否到末使用: not rs.eof如果是从尾到头:用循环并判断指针是否到开始使用:not rs.bof <!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%set rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)rs.movefirst ---->(将指针移到第一条记录)while not rs.eof ---->(判断指针是否到末尾)response.write(rs(name)) ---->(显示数据表message中的name字段)rs.movenext ---->(将指针移动到下一条记录)wend ---->(循环结束)------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%>其中response对象是服务器向客户端浏览器发送的信息<3>增加数据库记录增加数据库记录用到rs.addnew,rs.update两个函数<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%set rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)rs.addnew 新增加一条记录rs(name)=xx 将xx的值传给name字段rs.update 刷新数据库------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%><4>删除一条记录删除数据库记录主要用到rs.delete,rs.update<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%dim namename=xxset rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)-------------------------------------------------------while not rs.eofif rs.(name)=name thenrs.deleters.update 查询数据表中的name字段的值是否等于变量name的值xx,如果符合就执行删除,else 否则继续查询,直到指针到末尾为止rs.movenextemd ifwend------------------------------------------------------------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%><5>关于数据库的查询(a) 查询字段为字符型<%dim user,pass,qq,mail,messageuser=request.Form(user)pass=request.Form(pass)qq=request.Form(qq)mail=request.Form(mail)message=request.Form(message)if trim(user)&x=x or trim(pass)&x=x then (检测user值和pass 值是否为空,可以检测到空格)response.write(注册信息不能为空)elseset rs=server.CreateObject(adodb.recordset)sqlstr=select * from user where user='&user&' (查询user数据表中的user字段其中user字段为字符型)rs.open sqlstr,conn,1,3if rs.eof thenrs.addnewrs(user)=userrs(pass)=passrs(qq)=qqrs(mail)=mailrs(message)=messagers.updaters.closeconn.closeset rs=nothingset conn=nothingresponse.write(注册成功)end ifrs.closeconn.closeset rs=nothingset conn=nothingresponse.write(注册重名)%>(b)查询字段为数字型<%dim numnum=request.Form(num)set rs=server.CreateObject(adodb.recordset)sqlstr=select * from message where id=&num (查询message 数据表中id字段的值是否与num相等,其中id为数字型) rs.open sqlstr,conn,1,3if not rs.eof thenrs.deleters.updaters.closeconn.closeset rs=nothingset conn=nothingresponse.write(删除成功)end ifrs.closeconn.closeset rs=nothingset conn=nothingresponse.write(删除失败)。
DW制作ASP动态网页与access数据库连接教程.doc设置IIS构建了一个正确的网页开发环境,实际上这里最重要的是我们要确定我们安装的web服务器(如win2000/xp以上为IIS)IIS是否已经正确启动了。
如何确定呢?我们可以启动IE浏览器,在地址栏中输入“http://localhost/”或“http://127.0.0.1/”或“http://计算机名/”看看能不能打开默认的网页,如过能打开IIS默认的网页,则说明IIS已经正常启动了,这时就可以用来测试asp动态网页了。
为了更好的进行测试,我们也可以打开IIS管理器对IIS进行具体设置。
打开 "控制面板"-->"管理工具"-->"internet信息服务器" 这样就打开了IIS管理器。
如图1图1我们可以对“默认WEB站点”的主目录进行更改。
主目录是什么?想详细知道IIS的详细设置的话,可以看相关专业书籍哦。
我们这里要讲求“速成”,我们可以理解为,主目录就是我们要存放代测试的动态网页的地方。
其默认的路径为“C:\Inetpub\wwwroot\”如果你想更改主目录也非常简单:选中“默认web站点”-->右击-->选择“属性”在弹出的窗口中选择“主目录”选项卡,这样就可以给该为任意的磁盘分区或目录了,当然是越方便越好了,本人的电脑,主目录被我改成了“f:\webtest\”如下图所示:用Dreamweaver+access制作一个简单的asp新闻发布系统(二)2009年05月11日星期一下午 05:17----数据库与测试站点的建立分析实现所要实现功能首先我们要明确,一个新闻发布系统所能实现的最基本的功能:1、一般在网站的首页有新闻的标题列表(news_list.asp)2、通过显示的新闻标题可以看到新闻的内容(news_detail.asp)3、有一个管理员登陆的入口(login.asp)4、添加新闻的页面(news_add.asp)5、编辑新闻的列表的页面(news_edit.asp)6、修改并更新新闻的页面(news_update.asp)7、此外还有新闻修改和删除成功的页面(news_del_ok.asp,news_update_ok.asp)从上面的分析可以看出,我们只要制作10个左右的页面就可以实现动态发布新闻的功能了。
掌握ACCESS数据库的连接和读取记录一:看下面两句话:<%set conn=server.createobject("adodb.connection") 定义了一个adodb数据库连接组件conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")%> 连接了数据库,我们只要修改后面的数据库名字就可以了。
是不是很简单?二:下面再看三句:<%exec="select * from guestbook" 设置查询数据库的命令selectt后面加的是字段,如果都要查询的话就用*,from后面再加上表的名字,set rs=server.createobject("adodb.recordset") :定义一个记录集组件,所有搜索到的记录都放在这里面,rs.open exec,conn,1,1%>这三句加在前面两句的后面,第二句第三句是打开这个记录集,exec 就是前面定义的查询命令,conn就是前面定义的数据库连接组件,后面参数“1,1”,这是读取,后面讲到修改记录就把参数设置为1,3,三:接下来我们读取记录。
<table width="100%" border="0" cellspacing="0" cellpadding="0"><%do while not rs.eof%><tr><td><%=rs("name")%></td><td><%=rs("tel")%></td><td><%=rs("message")%></td><td><%=rs("time")%></td></tr><%rs.movenextloop%></table>在一个表格中,我们用4列分别显示了上次建立的表里面的四个字段,用do循环,not rs.eof的意思是条件为没有读到记录集的最后,rs.movenext的意思是显示完一条转到下面一条记录,<%=%>就等于<%response.write%>用于在html代码里面插入asp代码,主要用于显示变量。
如何把ACCESS转成SQL数据库很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的;二,转换的方法1,打开”控制面板“下”管理工具“中的”数据库源“;2,按”添加“添加一个新的数据源,在选择栏里选“Driver do microsoft Access (*.mdb)”,完成后将出现一个框,在“数据库源”里面输入你想写的名称,我取名叫“ABC”,说明不需要填,接着,按下面的选择,寻找你的数据库地址和选中(注意,请先备份自己的ACCESS数据库),然后确定。
数据源在这里建好了,剩下转换了。
3,打开SQL2000企业管理器,进入数据库,新建一个空的数据库“ABC”;4,选择新建立的数据库,按鼠标右键,选择“所有任务”下“导入数据”,按“下一步”继续;5,在数据库源下拉但中选择”Driver do microsoft Access(*.mdb)“,在”用户/系统DSN“中,选种你刚才添加的”ABC“,按”下一步“;6,“目的”不需要修改,选择服务器(一般下为自己的本机local,也可以选择服务器地址或者局域网地址,确定你的权限是否可以操作,),使用WINDOWS 身份验证指用自己的系统管理员身份操作,使用SQL身份操作验证可以用于网站的操作,推荐用后者;7,选上使用SQL身份操作验证后,填写你的用户名和密码,我自己选择的是系统默认号码sa,****,数据库选择刚新建的ABC,按下一步;8,这一步的两个单项选择,从数据源复制表和视图与用一条查询指令指定要传输的数据,选择前者,按下一步继续;9,这里将出现你自己ACCESS数据库的表,按全选后,下一步;10,DTS导入/导出向导,看立即运行被选中按下一步,11,按完成继续;12,这个步骤你将看到你的数据被导入SQL2000里面,当出现已经成功把XXX个表导入到数据库的字样,而且所有的表前面都有绿色的勾,就表示成功导入所有数据,如果中途出现问题或者表前面有红色的叉的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了.三,数据修改1,由于SQL2000里面没有自动编号,所以你的以自动编号设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的标示选择是,种子为1,增量为1,2,另外,ACCESS2000转换成SQL2000后,原来属性为是/否的字段将被转换成非空的bit,这时候你必须修改成自己想要的属性了;3,另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的.ACCESS转MS SQL数据库的几点经验1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime 型,因为datetime型的范围比smalldatetime型大。
关于ASPCMS开源中ACCESS转SQL的代码修改大多数企业在一定的成长时间段里面,需要对自我的突破,那么建立一个自己的网站也是很好的一个方面。
好的,现在我们进入正题,ASPCMS是一个开源的企业网站代码,可以在后台管理中简单易懂的制作网站的操作。
首先在这个网站下载程序:www .aspcms .com (我使用的2.5版本的ASPCMS程序),如果配置IIS出现问题的,建议可以下载一个“NetBox2”小软件放在网站文件夹内就可以了。
进入网站也就是主页,可以看到默认的模板,在地址栏后面接着输入admin_aspcms/admin 填写管理员账号密码,登录即可。
总的就是这么多了,下面,我开始要数据库移植,安装SQL然后新建数据库,在新建数据库里面导入access数据(数据在文件夹data内,将后缀asp改成mdb)。
导入成功后,记得设置SQL账号和密码。
打开文件夹\config,文件名AspCms_Config.asp,在里面进行数据库信息填写,保存即可,数据库的转移第一步已经完成。
数据搭到MS SQL 2000之后然后调整config\AspConfig.asp 中的MS SQL 的相关信息:Const dbType=1 '数据库类型(0为access;1为sqlserver)Const databaseServer="**************" 'sqlserver数据库地址Const databaseName="************" 'sqlserver数据库名称Const databaseUser="*************" 'sqlserver数据库账号Const databasepwd="************" 'sqlserver数据库密码第二步:1、\inc文件下的AspCms_MainClass.asp、AspCms_CommonFun.asp、AspCms_templateFun.asp 这三个文件基本涉及了所有DB类和操作,改动比较多。
asp连接SQL和Access数据代码(asp⾥的随机函数)第⼀种写法:复制代码代码如下:MM_conn_STRING = "Driver={SQL Server};server=(local);uid=sa;pwd=;database=infs;"Set conn = Server.Createobject("ADODB.Connection")conn.open MM_conn_STRINGSET RS=SERVER.CreateObject("ADOBD.recordset")SQL="SELECT * FROM TABLE ORDER BY ID DESC"RS.open SQL,CONN,3,3复制代码代码如下:DataServer = "jb51" '数据库服务器IPDataUser = "jb51" '访问数据库⽤户名DataBaseName = "jb51" '数据库名称DataBasePsw = "" '访问数据库密码Set conn = Server.CreateObject("ADODB.Connection")ConnStr="driver={SQLServer};server="&dataserver&";UID="&datauser&";PWD="&databasepsw&";Database="&databasenameconn.open ConnStrIf Err Then Err.Clear:Set conn = Nothing:Response.Write "数据库连接出错,请检查Conn.asp⽂件中的数据库参数设置。
ASP连接ACCESS常见问题及解决方法作者:日期: 2005-3-20 2:00:03显示选项: 文字背景字号字型自动滚屏[左键停止]问题:我在asp上挂上access数据库,发现它不支持Group by 或 Order by 子句,请问是何原因?SELECT * FROM zyckb group by ckdwdm where cksj>cdate(1998/12/31)Microsoft OLE DB Provider for ODBC Drivers 错误 80040e21 ODBC 驱动程序不支持需要的属性。
1 group子句只能用在Where子句后面。
2 直接使用 Microsoft.Jet.OLEDB.4.0 一层接口:adoConnection.open"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath ("/") & "xxx.mdb"不要使用Microsoft OLEDB Provider for ODBC Drivers + Microsoft Access Driver (*.mdb)(Access 的 ODBC Driver)两层接口: adoConnection.open"PROVIDER=MSDASQL.1;Driver=Microsoft Access Driver(*.mdb);DBQ=" & Server.MapPath ("/") & xxx.mdb"/msg23/qa27.shtml80004005 及其它错误消息的疑难解答---------------------------------------------这篇文章中的信息适用于:Microsoft Data Access Components versions 1.5, 2.0, 2.1, 2.5 Active Server PagesMicrosoft Visual InterDev, version 1.0-------------------------------------------概要本文详细讲述了Microsoft 数据访问组件(MDAC) 收到0x800040005 错误的一些常见原因,MDAC 包括 ActiveX 数据对象、OLE DB 和远程数据服务(RDS)。
假定所有操作均在如下环境下进行:1. XP SP2 系统,系统中已安装了IIS 服务器和Office2003(用其中的Access2003 建立数据库),网站制作工具是Dreamweaver MX 2004 或Dreamweaver 8(下面均简称DW );2. 假设你网站本地存放位置是F:\try,网站主页文件是index.asp 本地存放于F:\try\下,做数据库连接试验用的数据库名字是aaa.mdb,本地存放位置是F:\try\data\aaa.mdb。
3. 在本地IIS 中已经为你在F:\try 下的网站建立了虚拟目录,虚拟目录的名字由你自己决定,例如仍命名为try 。
一、在本地“浏览”调试网站时的连接方法在DW 或本地的IIS 服务器下浏览、调试网站访问数据库时,自定义连接字符串中使用数据库的绝对路径,操作如下:打开DW,建好站点,打开所需网页,例如主页文件index.asp,在弹出的“自定义连接字符串”对话框中“连接名称”栏填写自定义的名称(为了养成好的编程习惯,最好名称前加上conn 前缀,表明这是一个数据库的连接名称,例如本来你想起的连接名称为test,加上conn 前缀后的连接名称为conntest)。
在“连接字符串”栏中填写:"Driver={Microsoft Access Driver (*.mdb)};DBQ=你的数据库的绝对路径"把本文开始处假定的具体参数代进去就是:"Driver={Microsoft Access Driver(*.mdb)};DBQ=F:\try\data\aaa.mdb"一定要注意:Driver 和(*.mdb) 之间有个空格,不要写错了!写错了不能通过“测试”,当然也连接不上数据库。
上面连接字符串两端的双引号在输入时可以省略,DW 会自动为你补上的。
在“Dreamweaver 应连接”项中,应选择“使用此计算机上的驱动程序”。
我的ASP经验之路(4)--连接access数据库的两种方法、读取数据库内容这篇主要介绍以下两个问题:asp连接access数据库常用的两种方法、asp创建记录集与如何读取数据库的内容。
ASP最常连接的是ACCESS与MSSQL两种数据库,本文先介绍简单的连接ACCESS数据库的两种常用方法。
假设数据库名称为data.mdb,位于根目录下,与conn.asp文件同一目录。
连接数据库文件conn.asp写法如下:第一种:<%dim conndim connstrconnstr="DBQ="+server.mappath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set conn=server.createobject("ADODB.CONNECTION") '创建数据库连接对象conn.open connstr '连接数据库%>第二种:<%dim conndim connstrConnstr="Provider=;Data Source=" & Server.MapPath("data.mdb")Set conn = Server.CreateObject("ADODB.Connection")Conn.Open Connstr%>接下来,我们看下asp是如何创建记录集以及如何来读取数据库里的内容的。
首先,我们要建一个数据库,里面放些需要读取的内容。
1、建立一个数据库文件,名称估且命为data.mdb ,里面准备存放一些公司企业的电话地址等内容。
数据库中建一个名为company的表,表设计以下四个字段:companyname,tel,address,website (公司名称,电话,地址,网址),字段类型全部选择“文本”,字段大小设置为250,创建好表后,打开表,自己输入随意输入几条记录值(所有建立数据库的具体操作本文略过)建好后,表设计如下图:打开表,内容如下:2、新建一个文件名为index.aspindex.asp文件代码里,首先要建立数据库连接,代码如上面介绍:dim conndim connstrconnstr="DBQ="+server.mappath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set conn=server.createobject("ADODB.CONNECTION") '创建数据库连接对象conn.open connstr '连接数据库创建记录集:set rs=server.CreateObject("adodb.recordset") '创建rs记录集sql="select * from [company]" '读取数据库的SQL语句串rs.open sql,conn,1,1 '打开记录集读取数据库代码:结合前面介绍过的do while ...loop语句来循环读取多条记录内容<table width="100%" border="0" cellspacing="0" cellpadding="0"><%do while not rs.eof'rs.eof意思是最后一条记录,rs.bof的意思是第一条记录,所以这句话的意思是:当不是最后一条记录时,输出下面的代码%><tr><td height="24"><%=rs("companyname")%></td><td><%=rs("tel")%></td><td><%=rs("address")%></td><td><a href="<%=rs("website")%>" target="_blank"><%=rs("website")%></a></td></tr><%rs.movenext '移到下一条记录loop%></table>所有代码放在一起就是index.asp的所有代码。
(一)数据库的选择:有许多的数据库你可以选择,SQL SERVER、ACCESS(*.mdb)、EXCEL(*.xls)、FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以达到存储数据的功能。
那么到底选择什么数据库最合适呢?其中SQL SERVER是服务器级的,足以应付每天上万次的访问量。
对于非服务器级的数据库建议使用ACCESS97。
因为:(1)只要安装了PWS或IIS4肯定有ACCESS的ODBC驱动,即你的系统肯定支持ACCESS数据库的存取。
(2)ACCESS支持的SQL指令非常齐全。
(3)ACCESS ODBC驱动程序的效率非常高。
虽然它不是服务器级的数据库,但是作为中小型企业内部网的数据库支持还是绰绰有余的。
(4)ACCESS97在OFFICE97中就有,非常方便得到和使用。
本文就以ACCESS数据库为准介绍基于WEB的数据库存取方法。
(二)例子:我们建立一个“客户”数据库,需要保存如下的客户资料:客户名称、联络人姓名、所在城市、电话号码。
(1)首先建立ACCESS数据库customer.mdb(今后有用的)。
建立如下字段:客户名称、联络人姓名、所在城市、电话号码、客户编号、时间。
将表保存为"客户"(今后有用的,===>看看图)。
注意:建立字段时多作了2个(客户编号、时间),因为在今后排序时要用到它们。
建议今后做数据库时最好都加上这2项,不会没用的。
此外,在保存表时ACCESS 会询问是否建立一个住关键字,我们不需要它所以不必建立。
还有:时间字段的"默认值"设成"now()",即去系统当时的时间。
同时将索引项设成"有(允许重复)",含义:WEB上极有可能同时存取数据,所以允许重复,索引设成"有"可以加快排序速度。
===>看看图(2)建立递交表单add.htm:源代码如下:<html><head><title>添加数据库记录</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#FFFFFF"><p align="center"><font size="5">添加数据库记录</font></p><form method="post" action="adddatabase.asp"><div align="center"><table width="46%" border="0"><tr><td width="28%"><div align="right">公司名称:</div></td><td width="72%"><input type="text" name="CompanyName"></td></tr><tr><td width="28%"><div align="right">联络人姓名:</div></td><td width="72%"><input type="text" name="CName"></td></tr><tr><td width="28%"><div align="right">所在城市:</div></td><td width="72%"><input type="text" name="City"></td></tr><tr><td width="28%"><div align="right">电话号码:</div></td><td width="72%"><input type="text" name="Tel"></td></tr><tr><td width="28%"><div align="right"> </div></td><td width="72%"><input type="submit" name="Submit" value="Submit"> <input type="reset" name="reset" value="Reset"></td></tr></table></div></form></body></html>这与普通的HTML没有任何区别,关键部分已经用红色标记了。
ASP 连接SQL Server数据库在网页中实现读取或写入数据到数据库是ASP动态网页设计的重要技术,要实现使用ASP通过数据库组件来设计能访问数据库的网页必须首先建立与数据库的连接。
建立数据库的连接没有数据驱动就不可能实现。
在ASP进行数据访问时使用ADO组件是最好的选择,ADO组件可提供多种对象进行数据库访问。
这些对象在本章的正文中都有详细介绍,本次练习主要使用Connection对象连接SQL Server 数据库。
我们知道,Connection对象是与数据存储进行连接的对象,它代表一个打开的、与数据源的连接。
在ASP与SQL Server数据库连接的过程中,实际上,如果没有显式创建一个Connection对象连接到数据库,当在使用Recordset对象时,ADO会隐式地创建一个Connection对象。
而这里我们显式地创建了Connection对象,然后在需要使用它的地方引用它。
这样做是因为通常在数据库操作时,需要运行不只一条数据操作命令。
这里我们会使用ODBC和OLE DB两种方式来连接到SQL Server数据库。
第一种是采用ODBC方式来连接到SQL Server服务器ZHHT上的“图书管理系统”下面来看使用OLE DB方式连接同一个数据库的代码,如下所示:本实例上述的两种代码均可以实现连接SQL Server数据库的功能,都是ASP 程序中Connection对象的一个实例。
在实际网站设计中通常的做法是,在一个单独的文件中显式地创建Connection对象实例,然后在需要使用数据访问的页面中使用include指令将该页面包含进来。
例如,此处将上述连接代码保存到conn.asp文件中,然后在其他页面中使用如下语句来包含这个数据库连接。
ASP连接数据库的种方法1.使用A连接对象:ASP可以使用A连接对象连接数据库,其中A代表了不同的对象类型,比如ADODB.Connection、ADODB.Recordset等。
这是最常见的连接数据库的方法之一2.使用ODBC连接:ASP支持通过ODBC(Open Database Connectivity)连接数据库。
ODBC是一种标准接口,可以连接不同类型的数据库。
使用ODBC连接数据库需要先创建一个数据源,然后通过数据源名称连接数据库。
3.使用DSN连接:DSN(Data Source Name)是ODBC的一种连接方式,在ASP中可以使用DSN连接数据库。
DSN是一种定义了数据库连接属性的文件,ASP可以使用该文件中的连接信息连接数据库。
4. 使用DSN-less连接:DSN-less连接是指不依赖DSN来连接数据库,而是直接使用连接字符串来连接数据库。
连接字符串包括了数据库的连接属性,如服务器地址、数据库名称、用户名、密码等。
5.使用连接池连接:连接池是一种连接数据库的技术,它利用缓存的连接对象提高数据库连接的性能。
ASP可以使用连接池来连接数据库,提高数据库查询操作的效率。
6.使用DSO连接:DSO(Data Shaping Object)是一种用于连接数据库的COM对象,可以使用它来连接数据库并执行查询操作。
DSO可以通过执行SQL语句或者使用分页功能,方便地进行数据库操作。
7. 使用Excel连接:ASP可以连接Excel文件作为数据库,利用Excel的数据存储和查询功能。
可以通过ADO连接Excel文件,并执行查询操作。
8. 使用Access连接:ASP可以连接Access数据库,Access是一个轻量级的数据库管理系统,支持SQL语言和ODBC连接。
可以通过ADO连接Access数据库,并进行增删改查等操作。
9. 使用SQL Server连接:ASP可以连接Microsoft SQL Server数据库,SQL Server是一种关系型数据库管理系统。
Access导入到SQL Server数据库中的三种方法SQL Server数据库以2005为例,导入方法如下:一.使用SQL Server的数据库导入/导出功能。
首先在要导入到的SQL Srever数据库上右键,选择“任务”,然后选择“导入数据”,按照提示下一步直到完成即可成功将Access数据库导入到SQL Server数据库中,此种方法如果SQL Server数据库中没有相应的数据表,则会自动创建改表,但是约束等表关系不会同步导入,如果SQL Server中有相同名称并且属性相同的数据表,则会直接将Access数据库中的对应表的数据导入。
在导入过程中,还可以通过SQL语句指定要导入的数据。
使用这种方法一般会出现以下两种错误:(1)无法建立数据流连接为连接管理器“{FFBF32BF-EE84-4F94-ACDB-D4C5AC4C2941}”指定的连接类型“OLEDB”未被识别为有效的连接管理器类型。
当视图创建未知连接类型的连接管理器时会返回此错误。
请检查连接类型名称的拼写是否正确。
(2)无法连接源组件找不到连接“SourceConnectionOLEDB”。
如果找不到特定的连接元素,Connections集合将发生此错误。
其他信息:找不到连接“SourceConnectionOLEDB”。
如果找不到特定的连接元素,Connections集合将发生此错误。
({0DE0CDBB-BCD6-4261-A118-B0CB22DA3C4A})具体解决办法是打开SqlServer Configuration Manage,右键单击“Sql Server Integrati on Services”,选择“属性”,将登录身份修改为“Local System(本地系统)”,然后重新启动该服务。
二.使用Access数据库的数据升迁功能。
首先点击“工具”菜单,选择“数据库实用工具”,选择“升迁向导”,这是会提示你该功能尚未安装,需要安装XXX之类的信息,点击安装,等待安装成功后,即可弹出“升迁向导”对话框,按照提示下一步直到完成,即可将Acces s数据库导入到SQL Server数据库中。
ASP连接Access数据库的⼏种⽅法1. 相对与⽐较⽼的环境,建议使⽤第⼆个set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")DBPath = Server.MapPath("customer.mdb")dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPathSQL="select * from auth where id='" & user_id &"'"SET uplist=dbconnection.EXECUTE(SQL)2.win2003以上的机器,建议⽤此⽅法,效率更⾼set dbconnection=Server.CreateObject("ADODB.Connection")DBPath = Server.MapPath("customer.mdb")dbconnection.Open "provider=microsoft.jet.oledb.4.0;data source="&dbpathSQL="select * from auth where id='" & user_id &"'"SET uplist=dbconnection.EXECUTE(SQL)3.DBPath = Server.MapPath("customer.mdb")set session("rs")=Server.CreateObject("ADODB.Recordset")' rs=Server.CreateObject("ADODB.Recordset")connstr="provider=microsoft.jet.oledb.4.0;data source="&dbpathSQL="select * from auth where id='" & user_id &"'"session("rs").Open sql,connstr,1,34. 建odbc源xxxset conn=server.createobject("Adodb.connection")conn.open "DSN=xxx;UID=;PWD=;Database=customer5、附上⼀个经常⽤的sqlserver与access通⽤的连接数据库代码<%Const DataBaseType=1If DataBaseType=0 thenDBPath="/jb51/news.asp"SqlNowString = "Now()"ystr=truenstr=falsesuiji="rnd(id)"Else'如果是SQL数据库,请认真修改好以下数据库选项DataServer = "wwwjb51net" '数据库服务器IPDataUser = "jb51net" '访问数据库⽤户名DataBaseName = "jb51net" '数据库名称DataBasePsw = "密码" '访问数据库密码SqlNowString = "getdate()"ystr=1nstr=0suiji="newid()"End ifOn Error Resume NextIf DataBaseType = 1 ThenConnStr="driver={SQL Server};server="&dataserver&";UID="&datauser&";PWD="&databasepsw&";Database="&databasenameElseConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DBPath)End IfSet conn = Server.CreateObject("ADODB.Connection")conn.open ConnStrIf Err Then Err.Clear:Set conn = Nothing:Response.Write "数据库连接出错,请检查Conn.asp⽂件中的数据库参数设置。
其实两者基本通用步骤很简单3步:
1,转化MDB数据库到SQL SQL工具里就有
2, 更改数据库链接字串以下为代码:
Set Conn=Server.CreateObject("ADODB.Connection")
SQL="Driver={SQL Server};Server=XD-Y1W9B7;UID=sa;PWD=sa;DataBase=ljl" Conn.Open(SQL)
最后是SQL与ACCESS差异的地方· 这个大家需要注意下面为其详细讲解:
把ACCESS转成SQL数据库
很多朋友想用SQL2000数据库的编程方法,但是却又苦于自己是学ACCESS的,对SQL只是一点点的了解而已,这里我给大家提供以下参考---将ACCESS转化成SQL2000的方法和注意事项
一,首先,我说的是在ACCESS2000,SQL2000之间转换,其他的我也还没有尝试过,希望大家多多试验,肯定是有办法的;
二,转换的方法
1,打开”控制面板“下”管理工具“中的”数据库源“;
2,按”添加“添加一个新的数据源,在选择栏里选”Driver do microsoft Access (*.md b)”,完成后将出现一个框, 在”数据库源“里面输入你想写的名称,我取名叫“ABC”,说明不需要填,接着,按下面的选择,寻找你的数据库地址和选中(注意,请先备份自己的 ACCESS数据库),然后确定。
数据源在这里建好了,剩下转换了。
3,打开SQL2000企业管理器,进入数据库,新建一个空的数据库“ABC”;
4,选择新建立的数据库,按鼠标右键,选择“所有任务”下“导入数据”,按“下一步”继续;
5,在数据库源下拉但中选择”Driver do microsoft Access(*.mdb)“,在”用户/系统DSN“中,选种你刚才添加的”ABC“,按”下一步“;
6,“目的”不需要修改,选择服务器(一般下为自己的本机“local“,也可以选择服务器地址或者局域网地址,确定你的权限是否可以操作,),“使用WINDOWS 身份验证“指用自己的系统管理员身份操作,“使用SQL身份操作验证“可以用于网站的操作,推荐用后者;
7,选上“使用SQL身份操作验证“后,填写你的用户名和密码,我自己选择的是系统默认号码“sa“,“****“,数据库选择刚新建的“ABC“,按“下一步“; 8,这一步的两个单项选择,“从数据源复制表和视图“与“用一条查询指令指定要传输的数据“,选择前者,按“下一步“继续;
9,这里将出现你自己ACCESS数据库的表,按“全选“后,下一步;
10,“DTS导入/导出向导“,看“立即运行“被选中按“下一步“,
11,按“完成“继续;
12,这个步骤你将看到你的数据被导入SQL2000里面,当出现“已经成功把XXX 个表导入到数据库“的字样,而且所有的表前面都有绿色的勾,就表示成功导入
所有数据,如果中途出现问题或者表前面有红色的叉的话,说明该表没有成功导入,这时就要回去查看自己的操作是否正确了.
三,数据修改
1,由于SQL2000里面没有“自动编号“,所以你的以“自动编号“设置的字段都会变成非空的字段,这就必须手工修改这些字段,并把他的“标示“选择“是“,种子为“1“,增量为“1“,
2,另外,ACCESS2000转换成SQL2000后,原来属性为“是/否“的字段将被转换成非空的“bit“,这时候你必须修改成自己想要的属性了;
3,另外,大家要注意对时间函数的把握.ACCESS与SQL是有很多不同的. ACCESS 改为SQL需要注意哪几个地方
数据库导入以后,自动增加字段需要重写,所有的数字类型需要增加长度,最好用decimal。
所有的默认值都丢失了。
主要是数字类型和日期类型。
所有now(),time(),date()要改成getdate()。
所有datediff(‘d‘, time1, time2)要改成datediff(day, time1, time2) 有可能一些true/false类型不能使用,要变为1/0。
备注类型要通过cast(column as varchar)来使用。
CursorType要改成1,也就是打开数据库时要给出第一个数字参数为1,否则记录可能显示不完整。
isnull(rowname)要改成rowname = null
ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!
转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。
有时用smalldatetime型时,转化失败,而用datetime型时,转化成功。
对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进行删除纪录时用:“delete * from user where id=10“,而对SQL SERVER数据库进行删除是用:“delete user where id=10“.
日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。
ACCESS转SQL SERVER的数据库的几点经验
1.ACCESS的数据库中的自动编号类型在转化时,sql server并没有将它设为自动编号型,我们需在SQL创建语句中加上identity,表示自动编号!
2.转化时,跟日期有关的字段,SQL SERVER默认为smalldatetime型,我们最好将它变为datetime型,因为datetime型的范围比smalldatetime型大。
我遇见这种情况,用smalldatetime型时,转化失败,而用datetime型时,转化成功。
3.对此两种数据库进行操作的sql语句不全相同,例如:在对ACCESS数据库进
行删除纪录时用:“delete * from user where id=10“,而对SQL SERVER数据库进行删除是用:“delete user where id=10“.
4.日期函数不相同,在对ACCESS数据库处理中,可用date()、time()等函数,但对SQL SERVER数据库处理中,只能用datediff,dateadd等函数,而不能用date()、time()等函数。
5.在对ACCESS数据库处理中,sql语句中直接可以用一些VB的函数,像cstr()函数,而对SQL SERVER数据库处理中,却不能用。