2012-02-10 125 views
0

我在舊的MSSQL 2000 db中有一些數據。我正試圖將一些表從它移動到一個mySQL(V 5.025)數據庫。在過去,我從MSSQL數據庫創建平面CSV文件,並使用此代碼片段導入空desination表的MySQL數據庫:嘗試使用odbc連接創建到mySQL db的連接

LOAD DATA INFILE '/moodle/sourcefile.csv' INTO TABLE tablename 
      FIELDS TERMINATED BY ',' 

我想這樣做,從源頭直接,方案選擇,插入進入目標進程。我正在使用Coldfusion(MX)從MSSQL表中讀取數據,它從源數據庫中獲取數據。

我已經使用此代碼創建一個連接對象:

classLoader = createObject("java", "java.lang.Class"); 
classLoader.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
dm = createObject("java","java.sql.DriverManager"); 

我可以轉儲DM對象,並以其優良的,隨時可以使用。

我試圖創建一個odbc連接到mySQL表,如下所示:這是失敗的代碼。

con = dm.getConnection("jdbc:odbc:DRIVER={MySQL ODBC 3.51 Driver}; SERVER=ipaddress; PORT=3306; DATABASE='dbname'; USER='username'; PASSWORD='password'; OPTION=3;"); 

它產生的錯誤是

「[微軟] [ODBC驅動程序管理器]數據源名稱找不到和未指定默認驅動程序」

如何糾正這一錯誤任何想法(使連接工作)或不同的觀點如何移動這些數據表示讚賞。

+0

只是好奇,任何原因,你不能建立一個常規的數據源?如果[更新驅動程序](http://kb2.adobe.com/cps/025/6ef0253.html),則應該能夠從MX連接到MySQL5。 – Leigh 2012-02-10 14:53:27

+0

你的意思是在CFIDE中爲mySQL db創建一個dsn? – jamesTheProgrammer 2012-02-10 15:00:56

+0

是的,通過CF管理員。 – Leigh 2012-02-10 15:12:11

回答

1

您必須安裝橋接器才能完成此操作。在Windows上,它是兩個單獨的服務,名爲ColdFusion ODBC服務器和ColdFusion ODBC代理。

此外,你可能會遇到64位與32位的問題。您可能需要使用不同的odbc服務器命令行安裝您的sys dsn(檢查WOW64文件夾)。看看這篇文章的一些與Access有關的解決方法(它們也通過ODBC橋接)。

http://www.coldfusionmuse.com/index.cfm/2010/12/31/Access.on.64bit.ColdFusion

而且 - 你應該知道,你可以與最新的驅動程序,即使在較舊版本的CF此設置。您必須將驅動程序文件放入類路徑中,然後使用「其他」JDBC類型。它需要創建一個JDBC連接字符串等 - 但可能與試圖評估綁定ODBC子系統一樣簡單或容易。祝你好運:)