学习ASP近两个月了。觉得有些东西应该要总结出来一起学习!
1.连接数据库
A.连接ACCESS数据库方法
dim conn,connstr,db
db="../ykslw22is112kswrs/web300.mdb" '数据库文件位置
on error resume next
connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
if err then
err.clear
else
conn.open connstr
end if
OK!这样就可以得到一个连接对象。
B.连接MSSQL数据库
Dim StrServer,StrUid,StrSaPwd,StrDbName
StrServer = "192.168.100.12" '数据库服务器的IP位置
StrUid="sa" '用户名
StrSaPwd="hkebao" '用户密码
StrDbName="MyFather" '数据库名称
Dim Conn
Dim StrDSN
StrDSN="driver={SQL server};server="&StrServer&";uid="&StrUid&";pwd="&StrSaPwd&";database="&StrDbName
set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open StrDSN
OK!通过这个就可以创建MSSQL连接了!
C.连接MYSQL
连接MYSQL的话是要通过配置好ODBC来实现的哦。
第一步下载一个MYODBC连接
我下了一个现在保存到D盘\常用的JAR文件中了!
开始安装好这个东西
开始配置好ODBC数据源了!
添加一个“系统DSN” ------> 选择对话框中“系统DSN”栏,按下右边的“添加”按钮。这时候会让你选择一个数据源。选择 MySQL ODBC 3.51 Driver。按“结束”。-------->这时候,会弹出一个配置对话框:
Data Source Name 数据源名字:在程序中使用的DSN的标识符,可以随便命名。
Host/Server Name (or IP)主机/服务器 名字 (或者IP 地址),如果是本机就填入localhost
Database Name 数据库名:你要在程序中使用的库名。
User 用户:登录MySQL 使用的用户名,特别注意,root用户由于安全问题只能在本机登录,当然啦,用户可以通过修改user表来去掉这个功能。
Password 密钥:登录的密码
Port 端口:使用默认值,最好不要改,除非你有把握。
配置好了之后就可以引用这个数据源了。数据源的名称就是DSN(Data Source Name)
接着就可以在ASP代码中进行写了:
<%
strconnection="dsn=hkebao;driver={mysql odbc 3.51 driver};server=localhost;uid=root;pwd=321;database=webcheck"
set conn = server.createobject("adodb.connection")
conn.open strconnection
%>
通过这样就可以建立连接我测试过了,没有问题的!
2.查询操作
2.1 计算记录的个数方法
第一种方法:通过SQL语句来进行操作处理
sql = "select count(*) as a from test"'SQL查询语句
set rs = conn.execute(sql)
response.Write(rs("a"))
第二种方法:通过ASP内置方法进行处理
先来看一种错误的情况:
sql = "select * from test"'SQL查询语句
set rs = conn.execute(sql)
response.Write(rs.recordcount)
这样的话会出来-1
哈哈 OK来跟踪一下这个问题所在吧!
因为执行SQL有两种方法一种就是通过execute 另一种就是open
那先说用OPEN的方法吧
sql = "select * from test"'SQL查询语句
Set Rs=Server.CreateObject("ADODB.RecordSet")
Rs.CursorLocation = 3 '这个设置非常地重要的 指明游标是客户端的
Rs.Open sql,Conn,1,1
response.Write(rs.recordcount)
返回了4 正确!
那如果用execute的方法又如何来做呢?
[插一条:Server.Execute("xxx.asp") 可以相当于JAVA中的动态包含操作的]
MS好像在这里有点问题:
set rs = conn.execute(sql)
'if not rs.eof then
' rsArray = rs.GetRows()
' nr = UBound(rsArray, 2) + 1
' response.write "There were " & nr & " matches."
' ... process real results here ...
'end if
网上有人这样来写我试了一下果然是可以的哦!
不过我决定 了以后就是用第一种方法 count(*) 或用 open 加上锁类型处理就可以了!
阅读(1158) | 评论(0) | 转发(0) |