佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 627|回复: 10

ASP 的问题当换成Mysql就不可以了。

[复制链接]
发表于 24-12-2005 11:14 AM | 显示全部楼层 |阅读模式

  1. 这是access的


  2. <%
  3. Response.Expires = -1000
  4. Dim oRS, oConn,sSQL
  5. Dim rndMax,rndNumber
  6. Set oConn = Server.CreateObject("ADODB.Connection")
  7. oConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("advertise.mdb"))
  8. sSQL = "SELECT * FROM banners"
  9. Set oRS = Server.CreateObject("ADODB.Recordset")
  10. oRS.Open sSQL , oConn, 3
  11. rndMax = CInt(oRS.RecordCount)
  12. oRS.MoveFirst
  13. Randomize Timer
  14. rndNumber = Int(RND * rndMax)
  15. oRS.Move rndNumber
  16. response.write "<a href='" & oRS("alink") & "' target='_blank'><img border=0 src='images" & oRS("aPicture") & "'></a>"
  17. set oRS = nothing
  18. set oConn = nothing
  19. %>
复制代码



  1. 当我换成Mysql就出error了。

  2. <%
  3. Response.Expires = -1000
  4. Dim oRS, oConn,sSQL
  5. Dim rndMax,rndNumber
  6. connection = "dsn=mydata;driver={myodbd driver};server=localhost;uid=root;pwd=chen1983;database=mydata"
  7. Set oConn = Server.CreateObject("ADODB.Connection")
  8. oConn.Open connection
  9. sSQL = "SELECT img FROM product"
  10. Set oRS = Server.CreateObject("ADODB.Recordset")
  11. oRS.Open sSQL , oConn, 3
  12. rndMax = CInt(oRS.RecordCount)
  13. oRS.MoveFirst
  14. Randomize Timer
  15. rndNumber = Int(RND * rndMax)
  16. oRS.Move rndNumber
  17. response.write (""&oRS("img")&"")
  18. set oRS = nothing
  19. set oConn = nothing
  20. %>
复制代码



这是他的error

Error Type:
(0x80020009)
Exception occurred.
line 16

line 16 也就是这个

response.write (""&oRS("img")&"")
回复

使用道具 举报


ADVERTISEMENT

发表于 24-12-2005 12:02 PM | 显示全部楼层
不知道行不行...

copy from ccfans.net


  1. ASP使用MYSQL数据库全攻略
  2.   发表日期:2005年2月18日   出处:互联网        【编辑录入:赏金猎人】

  3.   MYSQL数据库以它短小、方便、速度快、免费等优点成为很多网站目前首选数据库,但一般都是用PHP+MYSQL相结合来开发各种动态页面,其实ASP也可以使用MYSQL数据库开发动态页面,小弟我也是刚刚学会,不敢独享,所以特写了这篇文章供大伙参考。
  4.   我的环境是WINDOWS98+PWS4.0+mysql-3.23.32-win+PHP4
  5.   必要的软件:PWS4.0(呵呵,废话)
  6.   mysql-3.23.32-win
  7.   myodbc-2.50.36-dll(这个是最重要的,MYSQL ODBC的驱动程序,可以到www.mysql.com下载)
  8.   第一步:安装MYSQL ODBD的驱动程序,将下载的myodbd-2.50.46-dll文件复制到windows\system目录下(windows2000是 winnt/system32)然后建立一新文件,扩展名为reg(就是注册表文件),将以下内容复制到该文件中。

  9.   REGEDIT4
  10. [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\myodbc driver]
  11. "UsageCount"=dword:00000002
  12. "Driver"="C:\\WINDOWS\\System\\myodbc.dll"
  13. "Setup"="C:\\WINDOWS\\System\\myodbc.dll"
  14. "SQLLevel"="1"
  15. "FileUsage"="0"
  16. "DriverODBCVer"="02.50"
  17. "ConnectFunctions"="YYY"
  18. "APILevel"="1"
  19. "CpTimeout"="120"
  20. [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers]
  21. "myodbc driver"="installed"

  22.   保存后双击该文件,将上面代码注册到WINDOWS注册表中。
  23.   如果安装在windows2000中,则Driver和Setup主键的值要做相应改变,这里我想就不用多说了。
  24.   如果成功,在控制面板/ODBD数据源的驱动程序里将看到myodbd driver这一项!

  25.   第二步:建立ASP文件链接数据库。
  26.   这里有两种方法,一种是在ODBC数据源中建立一个系统DSN。后来我发现不建立也可以在ASP中使用MYSQL,方法在下文将讲道。
  27.   打开控制面板/ODBD数据源,选择系统DSN,然后添加一个新的DSN,驱动程序选择myodbd driver,会出现一个对话框供输入mysql
  28. 相关信息。
  29.   Windows DSN name: 所要建立DSN的名称
  30.   Mysql Host (name or ip):Mysql服务器的名称或者是IP地址,通常填localhost
  31.   Mysql database name:需要使用数据库的名称,数据库在Mysql管理程序中建立。这里我们使用一个例子。数据库名:mydata里面有数据表:user 数据表有两个字段分别是:username和password,随便插入几个数据。
  32.   user:链接数据库的用户名,我填的是root超级用户
  33.   password:链接数据库用户密码,如果没有,可以不填
  34.   Port(if not 3306):Mysql在服务器的端口,如果不填默认为3306
  35.   SQL command on connect:使用sql命令链接数据库,这项可以不填
  36.   填写完毕后选择OK保存。

  37.   下面链接数据库的ASP代码!
  38. <%
  39. strConnection = "dsn=mydata;driver={myodbd driver};server=localhost;uid=root;pwd=;database=mydata"
  40. Set adoDataConn = Server.CreateObject("ADODB.Connection")
  41. adoDataConn.Open strConnection

  42. strQuery = "SELECT * FROM user"
  43. Set rs = adoDataConn.Execute(strQuery)
  44. If Not rs.BOF Then
  45. %>
  46. <TABLE>
  47. <TR>
  48. <TD<b>username</b></TD>
  49. <TD><b>password</b></TD>
  50. </TR>
  51. <%
  52. Do While Not rs.EOF
  53. %>
  54. <TR>
  55. <TD><%=rs("username")%></TD>
  56. <TD><%=rs("password")%></TD>
  57. </TR>
  58. <%
  59. rs.MoveNext
  60. Loop
  61. %>
  62. </TABLE>
  63. <%
  64. Else
  65. Response.Write("Sorry, no data found.")
  66. End If

  67. rs.Close
  68. adoDataConn.Close
  69. Set adoDataConn = Nothing
  70. Set rsEmailData = Nothing
  71. %>

  72.   第二种方法:我在使用中想过如果不建立系统DSN,是否也可以使用MYSQL数据库呢?结果是可以的。
  73.   方法很简单,把上面ASP代码第二行代码改为:
  74. strconnection="DefaultDir=;Driver={myodbc driver};database=mydata"

  75.   我奇怪的发现,这种方法连用户名和密码都不需要就可以使用。是不是MYSQL的一个BUG呢?

复制代码
回复

使用道具 举报

 楼主| 发表于 24-12-2005 12:25 PM | 显示全部楼层
谢谢flashang的回答,

但是,我不是这个问题。

ASP connect with Mysql这个我的可以。

问题是当我把那个MSAccess的DB换去Mysql的时候他的ASP source code就出了问题。
回复

使用道具 举报

发表于 24-12-2005 12:45 PM | 显示全部楼层
你的IMG field是什么Type的?
只是普通的text吗?
回复

使用道具 举报

发表于 24-12-2005 03:44 PM | 显示全部楼层
datatype和tag...都有错~
很久没来,来疯疯~
回复

使用道具 举报

 楼主| 发表于 27-12-2005 09:10 AM | 显示全部楼层
原帖由 jasonmun 于 24-12-2005 12:45 PM 发表
你的IMG field是什么Type的?
只是普通的text吗?


对是普通的text。

我把picture放在folder里的。
回复

使用道具 举报

Follow Us
 楼主| 发表于 27-12-2005 09:11 AM | 显示全部楼层
原帖由 o1j2m3 于 24-12-2005 03:44 PM 发表
datatype和tag...都有错~
很久没来,来疯疯~


错,错什么呢??
回复

使用道具 举报

 楼主| 发表于 28-12-2005 09:08 AM | 显示全部楼层
没人可以帮我吗??
回复

使用道具 举报


ADVERTISEMENT

发表于 28-12-2005 09:31 AM | 显示全部楼层
先尝试用 oRS.MoveNext, 看看是否能把 oRS 的资料成功呼唤出来.
回复

使用道具 举报

 楼主| 发表于 29-12-2005 09:23 AM | 显示全部楼层
发现一个问题,就是那个CInt(oRS.RecordCount)不能用的
要 sql = "SELECT count(rr) as total_record FROM product WHERE...."

rndMax = CInt(oRS.total_record).

为什么 CInt(oRS.RecordCount) 在MYSQL db 时不能用呢???

还有就是为什么我 count 了不能display data 呢?
sql = "SELECT count(rr) as total_record,rr FROM product WHERE...."
回复

使用道具 举报

 楼主| 发表于 29-12-2005 05:40 PM | 显示全部楼层
希望有人可以看到。。。。。。。。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 21-9-2024 06:43 PM , Processed in 0.108887 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表