我必須在數據庫中存儲多個文件。爲了做到這一點,我正在使用blueimp編寫的jQuery多文件Uplaod控件。對於服務器語言,我使用asp.net。它使用一個處理程序 - ashx,它接受每個特定的文件並將其存儲在數據庫中。 在我的數據庫中,我有一個存儲過程,它返回當前上傳文件的文檔ID,然後將其存儲到數據庫中。 這是從它的碼片段,其示出了獲得這個ID是一個3步驟的過程:多文件上傳blueimp「sequentialUploads = true」不起作用
SELECT TOP 1 @docIdOut = tblFile.docId - ,@創建者創作者=,@創建= FROM創建[ tblFile] WHERE 的FriendlyName LIKE @friendlyname AND @CategoryID =的categoryId AND @objectId = OBJECTID AND @objectTypeId = objectTypeId ORDER BY tblFile.version DESC
IF @docIdOut = 0 BEGIN --get the next docId SELECT TOP 1
@docIdOut =的docId + 1 FROM [tblFile] ORDER BY docId DESC END
IF @docIdOut = 0 BEGIN --set to 1 SET @docIdOut = 1 END
如果多個調用存儲過程執行,然後將是一個問題,由於數據的不一致,但如果我添加一個事務,然後上傳一些文件將被取消。
https://dl.dropboxusercontent.com/u/13878369/2013-05-20_1731.png
有沒有辦法使用相同的參數再次調用存儲過程時,執行由交易受阻?
另一個選擇是使用blueimp插件與選項「sequentialUploads = true」同步 該選項適用於除firefox以外的所有瀏覽器,並且我讀到它也不適用於Safari。
任何建議將有所幫助。我嘗試並啓用了一次只選擇一個文件的選項,這不是最好的選擇,但會停止數據庫問題(已過程)並將正確保存文件。
感謝, 最好的問候, Lyuubomir