Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29956862
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 系统运维

2009-01-09 18:24:12

学习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 加上锁类型处理就可以了!


阅读(1165) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~