【问题标题】:MySQL and ADO - hopeless?MySQL 和 ADO - 绝望?
【发布时间】:2011-10-24 22:22:46
【问题描述】:

整个周末都在扯头发和谷歌搜索。我正在疯狂地将一个 ASP 站点转换为使用 MySQL。我是否正确地认为我会在错误的树上尝试使用记录集命令通过 ODBC 将数据输入和输出 MySQL 并且应该只使用 MySQL 过程?如果是这样,我将面临一场噩梦,我认为必须弄清楚如何捕获返回的值。

对不起,如果这听起来非常无知,但不知道该转向哪里。

详情:

Set SConn = createobject("ADODB.Connection")
conn.open = "DRIVER={MySQL ODBC 5.1 Driver};"_
& "SERVER=" & SQLServer & ";"_ 
& "DATABASE=" & SQLDbase & ";"_
& "UID=" & SQLUser & ";PWD=" & SQLPW  & "; OPTION=35;"

SQL = "SELECT tblNodes.SingleSiteChildID "
SQL = SQL & "FROM tblNodes "
SQL = SQL & "WHERE (((tblNodes.NodeID)=" & m_lngNodeID & "));"


set RS=server.CreateObject("adodb.Recordset")
RS.CursorType = 1
RS.LockType = 2
RS.Open SQL, conn


 With RS
If not .Fields("SingleSiteChildID")  >0 or isnull(.Fields("SingleSiteChildID")) then
    If m_lngChildCount>0 then
        .Fields("SingleSiteChildID")=0
            m_lngSingleSiteChildID=0
     Else
            .Fields("SingleSiteChildID")=null
            m_lngSingleSiteChildID=null
     End if
     .UPDATE
End if
END WITH
RS.Close
Set RS = Nothing
Set conn = Nothing

End Sub

【问题讨论】:

  • 欢迎来到stackoverflow。如果您想回答您的问题,您需要提供更多详细信息。一些演示您的问题的(简短)示例代码会很有帮助。
  • 您可以根据需要对 MySQL ODBC 运行直接 SQL 查询。您能否详细说明您遇到的问题以及您正在尝试做的事情。
  • 感谢您的 cmets。我在帖子中添加了一些代码。落在我似乎对锁类型或游标类型所做的任何事情上。

标签: mysql asp-classic ado


【解决方案1】:

您可以像使用其他数据库一样使用 Recordset 和 Command 对象。

如果您使用 DSN,您只需为 MySQL DB 创建一个系统 DSN,尽管无 DSN 连接是一种更好的方法。

前往 MySQL 站点安装 ODBC drivers,然后您的连接字符串将如下所示:

Driver={MySQL ODBC 5.1 Driver}; Server=localhost; uid=user_name; pwd=password; database=db_name; option=67108899; port=3306;

快速搜索一下 Google 以检查指定的选项是否适合您,我已从使用 MySQL 的正常工作的 Classic ASP 站点中提取了该选项。

只需切换连接字符串,您就可以非常简单地迁移到新的数据库类型。请检查您的所有 SQL 命令是否符合 MySQL 标准,并且不要使用特定于 MSSQL 或 Access 的词,例如TOP 仅适用于 MS,请使用 LIMIT 用于 MySQL。

【讨论】:

  • 感谢您的建议。添加了我正在尝试做的那种想法,并且与 Access 作为后端一起愉快地工作。在这里,我要么得到奇怪的错误,要么什么都没有发生。
  • 我经常收到的错误消息是:参数类型错误、超出可接受范围或相互冲突。
  • 我倾向于将rs.CursorType = 2rs.CursorLocation = 3 用于MySQL,这听起来不像你的问题。想必这个错误与rs.open一致?是您唯一更改了连接字符串吗?
  • 是的。已将范围缩小到记录集更新。我认为这可能是一个长期存在的问题,从我在 Google 领域的一些毁灭性的冒险经历来看。不过谢谢你的帮助。我会尝试你的 cursortype 和 cursorlocation 虽然我很确定我已经尝试了每一个组合:(
猜你喜欢
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
  • 2012-02-22
  • 2023-01-09
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多