2010-03-18 47 views
2

要求:應該更新MySQL數據庫與MS Sql Server更新,它位於同一個Web主機1and1上的Linux和Windows主機上。從任一服務器相互訪問數據庫是不可能在共享主機,感謝的1and1的天才..是否可以從SQL Server創建一個文本格式的列表,然後由PHP Cron作業處理?

我選擇的解決方案:我想輸出的所有文本格式的Asp.Net頁的積極的房源被處理定期使用PHP cron作業。

爲什麼這個奇怪的解決方案:爲了實現這個功能(彌合MySQL和MS SQL Server之間的差距),我沒有付錢。

你們認爲什麼?我應該如何繼續?自從我接觸.Net編程以來,這已經有一段時間了。代碼示例來實現這個解決方案是高度讚賞。謝謝你們!

回答

1

我認爲答案與你正在談論的數據量有關。

如果量不是很大(我想,不到100萬的時間記錄的),如果數據庫的結構是一樣的,如果你不具備的性能問題,所有你需要做的是

1-查詢SQL Server和從表中

2-空同一表中提取關於MySQL

一切

3-插入MySQL表內的所有數據。

如果您必須照顧以前的「if」之一,解決方案可以根據您擁有的約束類型而有所不同。

+0

非常感謝! 這正是我計劃實施的。首先,我認爲我會每小時基於Flag(0/1)向Out.txt文件寫入增量更新,而不是每次都清空MySQL。數據不會超過500條記錄! 我在這個時候堅持使用ASP.Net的語法。我嫁給了PHP和ASP。網絡不是接近熟人的地方! – ThinkCode 2010-03-19 14:31:36

0

如果您在執行Response.Writes之前將您的ASP.NET頁面中的Response的ContentType設置爲CSV(我喜歡管道以逗號,但不管)或者只是文本(如您所說)文件,您應該能夠使用MySQL的LOAD INFILE命令不必做很多事情,具體取決於權限。

聽起來像你已經有一個應該工作的黑客/ kludge計劃,即使它讓你畏縮,談論它。 :)

+0

你能否闡述一下你的想法?你是指導出一個管道分隔文件,然後處理該文件或直接從ASP.Net頁面處理文件?我很困惑。 – ThinkCode 2010-03-18 19:00:19

+0

正如我理解你的計劃,按計劃,你會有PHP HTTP-GET一個ASP.NET頁面。我對此有所確認和擴展。 在ASP.NET中,在執行任何Response.Writes(或任何類型的輸出)之前,將您的COntentType更改爲文本。然後在你的PHP文件中,使用MySql的LOAD INFILE命令而不是遍歷文本文件的行 - 除非你需要隨時修改它們。 或者,您可能*只是讓ASP.NET頁面完成這項工作,並將PHP步驟帶出等式。讓你的cron作業在shell中執行HTTP-GET,然後開始執行。 有幫助嗎? – TomR 2010-03-21 15:33:45

相關問題