2011-10-24 40 views
0

將頭髮撕掉,並在整個週末使用Google搜索。我瘋狂地將一個ASP站點轉換爲使用MySQL。我是否正確地認爲我會吠叫錯誤的樹來嘗試使用記錄集命令通過ODBC從MySQL獲取數據和僅使用MySQL過程?如果是這樣,我面臨着一場噩夢,我認爲那時應該如何捕捉返回的值。MySQL和ADO - 無望?

對不起,如果這聽起來可恥無知,但不知道在哪裏轉。

詳情:

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 
+0

歡迎使用stackoverflow。如果您想回答您的問題,您需要提供更多詳情。一些(簡短)示例代碼可以證明您的問題,這將有很大幫助。 – Johan

+0

如果需要,可以針對MySQL ODBC運行直接的SQL查詢。您能否詳細說明您遇到的問題以及您正在嘗試做什麼。 –

+0

感謝您的意見。我在我的文章中添加了一些代碼。落在我似乎對鎖形式或遊標類型所做的任何事情上。 –

回答

1

您可以使用記錄並在完全相同的方式,你是當時正在使用其他數據庫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; 

做一個快速谷歌,以檢查選項中指定有你正確的,我已經撕開這個從一個使用MySQL的正在運行的經典ASP站點。

簡單地切換連接字符串應該允許您非常簡單地遷移到新的數據庫類型。請檢查您的所有SQL命令是否符合MySQL標準,並且不要使用特定於MSSQL或Access的單詞,例如TOP僅適用於MS,使用MySQL的LIMIT

+0

感謝您的建議。增加了我想要做的那種想法,並且將Access作爲後端高興地工作。在這裏,我要麼得到奇怪的錯誤,要麼沒有多少事情發生 –

+0

我不斷得到的錯誤消息是:參數是錯誤的類型,超出了可接受的範圍,或者彼此衝突。 –

+0

我傾向於爲MySQL使用'rs.CursorType = 2'和'rs.CursorLocation = 3',這聽起來不像是你的問題。大概這個錯誤與'rs.open'一致?是你改變連接字符串的唯一的東西嗎? –