2011-12-09 66 views
1

替代我都內置了ASP,最初我自己的本地服務器上託管的Web應用程序 - 2008年贏了,IIS 7.0,SQL Server 2008的如何在託管的SQL Server/IIS環境中使用BCP?什麼是BCP

我於是買了discountASP.Net託管帳戶的網站+數據庫。

Web應用程序從網站根目錄下的文件夾中獲取文件,並批量插入數據庫中的記錄。本地開發框一切正常。

將數據庫+網站移至DiscountASP.Net託管帳戶後,BULK INSERT將無法工作,並且DiscountASP.Net告訴我們由於託管數據庫服務器是共享服務器,因此不允許使用BULK INSERT。

這種情況的解決方法是什麼?他們表示我們可以使用單獨的INSERT。

那裏有更好的解決方案嗎?有人遇到過類似的問題,並且有一些解決方案可以重新使用嗎? (而不是重新發明輪子)。

感謝您查看我的問題。

回答

0

要分析一些嘗試後發送,我能得到一個解決方案自己。下面是該解決方案的步驟(由於客戶保密,我不能共享代碼):

  1. 我讀了所有從使用Scripting.FileSystemObject的服務器對象的ASP代碼的Web服務器上的文件中的文本。

  2. 我將文件的整個文本作爲變量傳遞給存儲過程(SQL Server 2008)。參數的數據類型必須是「adLongVarChar」Refer the data type table here(如果枚舉不被識別,就像我的情況一樣,我使用值201而不是枚舉)。

  3. 在存儲過程中寫入SQL代碼以將字符串解析爲行,然後將每行解析爲列值。

希望我的解決方案的僞代碼對某人有幫助。

0

你不得不使用SqlBulkCopy的從.NET或XML的SQL代碼

+0

我得到的源文件是一個平面文件,帶有列和行分隔符,Web代碼是經典ASP。 –

+0

在附註中,DiscountASP.Net允許在SQL Server中使用.Net代碼。有什麼想法嗎? –

+0

@Moiz Tankiwala:除非您可以調用Web服務或類似服務,否則在訪問SQL Server之外的資源時會遇到類似的問題。但我希望CLR允許的限制,否則您可能會干擾其他客戶端數據庫 – gbn