當前位置:首頁 » 編程語言 » 非同步存儲sqlserver
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

非同步存儲sqlserver

發布時間: 2022-09-18 07:49:15

1. 怎麼使程序與sql server非同步執行請達人指教!!!

這種問題我早就碰過了,使用多線程是一種非常不好的選擇,你的系統隨時都會崩潰。
辦法其實非常簡單,你只要使用ADO非同步操作就可以了,完全不必建立多線程,當然這涉及ADO的高級應用,今天心情好,教你幾招!(下面是我在VB中使用過的方法,DELPHI中同樣也能使用ADO非同步操作訪問SQLSERVER)
之前先與SQL
SERVER建立一個CONNECTION對象,將其CURSORLOCATION屬性設置為adUseClient
然後用ADO
CONNECTION的Execute方法非同步執行存儲過程即可
例如:con.CursorLocation
=
adUseClient
dim
strSQL
as
String
strSQL="SQL語句或存儲過程名及其參數"
'語法必須正確
con.Execute
strSQL,
,
adAsyncExecute
'adAsyncExecute指令非同步操作
這樣你的應用程序就不用等待存儲過程執行完畢後才可執行後續代碼了。
你還可以使用ADO
CONNECTION對象的ExecuteComplete事件在執行完存儲過程後
通知你的應用程序執行相應的動作,例如MSGBOX等之類的東西,具體的實現代碼你自己去查ADO聯機手冊。
另外順便提一下,如果對於一個執行了很長時間都未能完成的查詢,你別指望使用貌似很行的ADO的CANCEL方法,立即取消一個正在執行的ADO非同步操作,即使在更新版本的ADO.net
3.5也是如此(非要等到超時後才能生效),真不明白微軟的工程師們是如何想的!誰要是能給出解決方法,我獎他300分,外加現金若干。
答復補充問題:
「四樓的大哥
我還想問一下
如果我在這個存儲過程還沒有執行完成的時候
其他客戶端又調用了這個存儲過程
會不會出錯呢???我不太清楚一個存儲過程還沒有執行完的時候
是否可以再次調用
請指教
謝謝!!!!」
不會的,因為SQLSERVER引擎會處理這些並發問題(自動使用事務處理,微軟的工程師們早就想到這些問題了,請放心使用)

2. 我寫了一段存儲過程 是SQLSERVER的代碼如下:

create proc sp_InsertPhoto2
(
@name VARCHAR(50),
@image IMAGE
)
AS
INSERT INTO photos
VALUES (@name,@image)
RETURN @@identity
go
基本語法錯誤就是這些,不過提醒一下image或text這樣的類型不能作為變數聲明,你這種存儲過程也是不行的……

3. 如何實現多線程(或者非同步)查詢Sqlserver庫

在後台創建多個線程,訪問你對應的數據然後放在一個指定的對象裡面。 JSP上非同步不斷的發送請求向你存放數據的對象,返回數據後,放在JSP頁面裡面。

4. sqlserver怎麼創建存儲過程

1、點擊資料庫下的「可編程性」,選擇「存儲過程」,點擊滑鼠右鍵,選擇「新建存儲過程」;

注意事項:

注意執行exec時,參數的類型,要與建立的存儲過程時設置的參數類型一致

5. sqlserver 數據同步問題

可以做成非同步的,比如只做一些表裡的數據,做個鏈接伺服器,作業定時執行insert,update,delete

6. sqlserver broker 什麼意思

SQL Server Service Broker 你可以理解為一種 資料庫隊列的 東西.
非同步處理的.

例如我要執行一個耗時比較長的存儲過程.
普通的執行方法, 是我 執行了, 然後我等著伺服器處理完了, 才能繼續干別的事情.

SQL Server Service Broker 則是以一種隊列非同步處理的機制來完成.
我需要執行一個很耗時的處理.
那麼可能就是向某個 隊列, 發送一個消息, 然後立即就返回了.
這個時候, 我可以做其他的查詢處理.
等伺服器執行完畢後, 再向我發一個消息, 告訴我 執行的結果.

7. ADO.Net(C#)中怎麼執行Oracle的存儲過程

SqlConnection conn=new SqlConnection ();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcere; //命令類型是存儲過程
cmd.CommandText = "存儲過程的名字";

8. sqlserver 導出億級數據怎麼處理

可以使用存儲過程實現,結合代碼調用
代碼可以使用java的jdbc或者c#等,很方便的
按照每次導出1w條,後台自動執行完成數據導出

9. 編寫一個SQLSERVER 存儲過程

create PROC Change_STUDENT(
@Msg varhar(200)
@maxId int output
)
as
begin
update STUDENT set SNAME = 'cay_'+SNAME where
substring(SNAME,1,2) ='WA'
set maxId =(select max(ID) from STUDENT)
if(@maxId<100)
begin
set @Msg ='沒有找到'
end
else
begin
set @Msg ='OK'
end
end

10. sqlserver里存儲過程怎麼調用存儲過程

sqlserver里調用存儲過程的具體操作步驟如下:

1、打開SQL Server Managment管理工具,新建一個表。