第五章總結

2021-08-27 20:39:35 字數 1962 閱讀 2016

1事務特點

原子,隔離,一致,永久

/*--轉帳測試:張三轉賬1000元給李四--*/

--我們可能會這樣這樣編寫語句

--張三的帳戶少1000元,李四的帳戶多1000元

update bank set currentmoney = currentmoney - 1000 where customername = '張三'

update bank set currentmoney = currentmoney + 1000 where customername = '李四'

go--再次檢視轉帳後的結果。

select * from bank

go/*--使用事務進行解決--*/

--開始乙個事務

begin transaction tran_bank    --也可簡寫為begin tran tran_bank

--定義乙個用於記錄錯誤的變數

declare  @tran_error int

set @tran_error = 0

--在張三的賬戶減去

update bank set currentmoney = currentmoney - 10000 where customername = '張三'

set @tran_error = @tran_error + @@error

--在李四的賬戶增加

update bank set currentmoney = currentmoney + 10000 where customername = '李四'

set @tran_error = @tran_error + @@error

if @tran_error <> 0

begin

--執行出錯,回滾事務

rollback transaction

print '轉賬失賬,交易已取消'

endelse

begin

--沒有發現錯誤,提交事務

commit transaction

print '交易成功,已儲存新資料'

endgo

--再次檢視轉帳後的結果。

select * from bank

go--1.宣告游標

declare bank_cursor

cursor local

scroll

for select * from bank

--for select customername,currentmoney from bank  --獲取部分列

--2.開啟該游標

open bank_cursor

--3.讀取游標

--定義個變數,用於存放游標中讀取出來的值

declare @id int

declare @name char(10)

declare @money money

--讀取游標的第一條記錄行,並存放在變數中

fetch first from bank_cursor into @id,@name,@money

--迴圈讀取游標中的記錄

print '讀取的資料如下:'

while (@@fetch_status = 0)

begin

--用print輸出讀取的資料

print '賬戶名:' + @name + '    餘額:' +  convert(varchar,@money)

--update bank set currentmoney = currentmoney+1000 where customerid = @id

--讀取下一條記錄行

fetch next from bank_cursor into @id,@name,@money

end--4.讀取完成後關閉游標

close bank_cursor

--5.釋放游標

deallocate bank_cursor

第五章總結

5.1選單 選單是windows應用程式視窗的乙個非常重要的組成部分,視窗的選單欄一般在標題欄下面。這個選單通常稱為 主選單 5.1.1建立和程式設計選單 選單用於sdi 單文件介面 或mdi 多文件介面 以及基於對話方塊的應用程式,在基於對話方塊的應用程式中新建 設計並編輯選單後,在該對話方塊的 ...

第五章總結

兩個約定 約定符號 表示暫存器或者乙個記憶體單元的內容,如 ax 表示ax中內容,bx 表示bx內容,20000h 表示記憶體20000h單元的內容。約定符號idata表示常數。如mov ax,bx 就是把ds bx處的值賦值給ax loop指令 格式 loop 標號 標號有些類似在c語言中goto...

C template第五章總結

1.如果要訪問依賴於模板內部的型別,前面要加上typename,如 tempateclass my subtype是定義於t內部的型別 2.在多繼承中,要使用this指明要訪問的本成員函式 3.可以過載 讓不同的模板之間可以賦值,但是不會忽略型別檢查 如 stackint1 stackf2 f2 i...