版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
SIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)1of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明技術(shù)總結(jié)WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程版本日期作者校對批準(zhǔn)說明0.12008-5-10顏春明SIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)2of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明目錄TOC\o"1-5"\h\z應(yīng)用范圍3詳述3適用的系統(tǒng)3硬、軟件配置3解決方法3存儲(chǔ)過程編寫3VBS調(diào)用存儲(chǔ)過程6SQLSERVER存儲(chǔ)過程及觸發(fā)器10存儲(chǔ)過程定義10創(chuàng)建存儲(chǔ)過程10存儲(chǔ)過程調(diào)試12存儲(chǔ)過程中游標(biāo)的使用13觸發(fā)器介紹以及實(shí)例錯(cuò)誤!未定義書簽。附件附件文檔號說明SIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)3of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明應(yīng)用范圍詳述SQL存儲(chǔ)過程執(zhí)行起來比SQL命令文本快得多。當(dāng)一個(gè)SQL語句包含在存儲(chǔ)過程中時(shí),服務(wù)器不必每次執(zhí)行它時(shí)都要分析和編譯它。調(diào)用存儲(chǔ)過程,可以認(rèn)為是一個(gè)三層結(jié)構(gòu)。這使你的程序易于維護(hù)。如果程序需要做某些改動(dòng),你只要改動(dòng)存儲(chǔ)過程即可你可以在存儲(chǔ)過程中利用Transact-SQL的強(qiáng)大功能。一個(gè)SQL存儲(chǔ)過程可以包含多個(gè)SQL語句。你可以使用變量和條件。這意味著你可以用存儲(chǔ)過程建立非常復(fù)雜的查詢,以非常復(fù)雜的方式更新數(shù)據(jù)庫。最后,這也許是最重要的,在存儲(chǔ)過程中可以使用參數(shù)。你可以傳送和返回參數(shù)。你還可以得到一個(gè)返回值(從SQLRETURN語句)。WINCC中執(zhí)行存儲(chǔ)過程與執(zhí)行SQL命令又有以下優(yōu)點(diǎn)。異常處理可以封裝在存儲(chǔ)過程中,復(fù)雜的數(shù)據(jù)處理過程有存儲(chǔ)過程來完成,避免執(zhí)行多條SQL命令來完成某一數(shù)據(jù)處理。減輕了WINCC系統(tǒng)的負(fù)擔(dān),當(dāng)VBS腳本中大量執(zhí)行SQL命令,系統(tǒng)消耗大量資源,同時(shí)影響了系統(tǒng)其他腳本的執(zhí)行。適用的系統(tǒng)該方法適用于安裝有WINCC的系統(tǒng)中硬、軟件配置安裝有WINCC,SQLServer軟件,無版本限制解決方法存儲(chǔ)過程編寫進(jìn)入EnterpriseManager,選擇我們所需要的數(shù)據(jù)庫。在StoredProcedures中創(chuàng)建一個(gè)新的存儲(chǔ)過程。存儲(chǔ)過程sp_givaudan_GetAreaAMission實(shí)現(xiàn)了一下功能,根據(jù)submixing查找到該配方的所有原料紀(jì)錄,然后而該配方而記錄插入?yún)^(qū)域A需要執(zhí)行表中。首先查找是否有該配方存在,然后,然后檢查當(dāng)前是否有配方在執(zhí)行中。如果所有條件滿足,更新當(dāng)前配方的信息,根據(jù)產(chǎn)品代碼,以及現(xiàn)場所有原料伐的信息,找到對應(yīng)原料在那個(gè)區(qū),那個(gè)管道中,最后寫入當(dāng)前執(zhí)行表中。從以下存儲(chǔ)過程實(shí)現(xiàn)功能可以看出,如果使用SQL命令,實(shí)現(xiàn)這些功能將非常繁瑣。用StoredProcedure來實(shí)現(xiàn),方便了系統(tǒng)的調(diào)試和維護(hù),同時(shí)大大提高了系統(tǒng)的效率。以下存儲(chǔ)過程使用在Givaudan伐島控制系統(tǒng)中,系統(tǒng)相關(guān)說明請參考相關(guān)文檔。實(shí)例1SIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)4of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明--GETTHEMISSIONLISTANDINSERTINTOARCHIVE_AREACREATEPROCEDUREsp_givaudan_GetAreaAMission@submixingNVARCHAR(12)='-',@totalweightBIGINTOUTPUT,@soproductNVARCHAR(14)OUTPUT,@resultNVARCHAR(300)OUTPUTASDeclare@RcordCountintDeclare@FinishedintBEGIN--首先在配方統(tǒng)計(jì)表中查找相關(guān)配方是否存在SELECT@RcordCount=Count(*)FROMUA#FormularsCheckWHEREsubmixing=@submixingIF(@RcordCount=0)配方不存在BEGINSET@result='Sub-Mixing:"'+@submixing+'"isnotavailable!!'SET@totalweight=0RETURNENDELSEBEGIN--檢查配方是否已經(jīng)完成SELECT@Finished=[finished]FROMUA#FormularsCheckWHEREsubmixing=@submixingIF((@Finished&4)=0)--配方?jīng)]有完成(bit2置位說明已經(jīng)完成)BEGINSELECT@RcordCount=Count(*)FROMUA#Formulars_AreaAIF(@RcordCount=0)一當(dāng)前A區(qū)沒有配方在執(zhí)行SIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)5of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明BEGINSELECT@totalweight=SUM(WEIGHTREQUESTED)/1000FROMUA#FormularsWHEREsubmixing=@submixing--GettotalweightSELECT@soproduct=[soproduct]FROMUA#FormularsCheckWHEREsubmixing=@submixingGetSOCode--updatetheconfigurationinformationUPDATEUA#FormularsSETtubenumber=UATC.tubenumber,productname=UATC.itemname,internalarea=UATC.internalarea,lotnumber=UATC.lotnumber,location=UATC.location,pourduration=UATC.dosefactor,perturbation=UATC.startindex,reserved=UATC.description,tolerance=round(weightrequested*UATC.toleranceproportion,0)FROMUA#FormularsUAF,UA#TubesConfigurationUATCWHEREUAF.submixing=@submixingANDUAF.productcode=UATC.itemnumberANDUAF.finished=0ANDUATC.internalarea=1ANDUATC.internalstatus=1UPDATEUA#FormularsSETtubenumber=UATC.tubenumber,productname=UATC.itemname,internalarea=UATC.internalarea,lotnumber=UATC.lotnumber,location=UATC.location,pourduration=UATC.dosefactor,perturbation=UATC.startindex,reserved=UATC.description,amtpoured=1FROMUA#FormularsUAF,UA#TubesConfigurationUATCWHEREUAF.submixing=@submixingANDUAF.productcode=UATC.itemnumberANDUAF.finished=0ANDUATC.internalarea=1ANDUATC.internalstatus<>1SELECT@RcordCount=Count(*)FROMUA#FormularsWHEREsubmixing=@submixingANDinternalarea=1ANDfinished<=1IF@RcordCount>0-如果A區(qū)有配方需要執(zhí)行BEGIN--insertintoformulars_areaa.INSERTINTOUA#Formulars_AreaASELECT*FROMUA#FormularsWHEREsubmixing=@submixingANDinternalarea=1ANDfinished<=1--updateformularcheckinformation@Finished&253--meanstheremovethesubmittempflagUPDATEUA#FormularsCheckSETUA#FormularsCheck.finished=(@Finished&253)|1WHEREsubmixing=@submixingENDELSE--A區(qū)沒有配方BEGINUPDATEUA#FormularsCheckSETUA#FormularsCheck.finished=(@Finished&253)|5WHEREsubmixing=@submixingSET@totalweight=-1----NOMISSIONINAREAASIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)6of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明ENDENDELSEA區(qū)還有配方在執(zhí)行中BEGINSET@result='TherearestillformularsinArea_A'SET@totalweight=0RETURNENDENDELSE—該配方已經(jīng)完成BEGINSET@result='Sub-Mixing:"'+@submixing+'"HavebeensubmittedorHavedone.!!'SET@totalweight=0RETURNENDENDIF@@error=0SET@result=@result+'Good'ELSEBEGINSET@result=@result+'Fail'SET@totalweight=0ENDENDGO3.2VBS調(diào)用存儲(chǔ)過程連接字符串,系統(tǒng)中多次執(zhí)行存儲(chǔ)過程,為了方便維護(hù)連接字符串,因?yàn)閃INCC的vbs沒有全局變量的,需要將連接字符串放在公共函數(shù)中。建議將projectmodulars中,standardmodulars中的函數(shù)在修改后,不能立刻生效,需要對standardmodulars函數(shù)進(jìn)行重新調(diào)用,而連接字符串在項(xiàng)目重新加載后系統(tǒng)數(shù)據(jù)庫名稱會(huì)發(fā)生變化,需要經(jīng)常修改。FunctionconString()
SIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)7of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明conString="Provider=SQLOLEDB;Server=GSHMW5306\WINCC;Database=CCCluster2080426090643R;IntegratedSecurity=SSPI;"EndFunction以下函數(shù)實(shí)現(xiàn)了對3.1小節(jié)中sp_givaudan_GetAreaAMission存儲(chǔ)過程的調(diào)用。改函數(shù)可以有某一特點(diǎn)操作來觸發(fā)執(zhí)行。當(dāng)操作人員完成配方條形鬲的掃描后將觸發(fā)該函數(shù)。'AreaAGetBarCode'ToExecutetheprocedure"sp_givaudan_GetAreaAMission"'Moreinformationaboutprocedure"sp_givaudan_GetAreaAMission",pleasegotoSQLServerDimobjCmd'ADODB.Command變量Dimresult'返回結(jié)果DimobjTagbarcodeareaa'條形碼值DimobjTag_barcode_getmissionDimobjTag_A_TotalWeightDimobjTag_A_SOProductDimobjTag_AreaA_Submixing_Flag為DimobjTag_barcode_getmissionDimobjTag_A_TotalWeightDimobjTag_A_SOProductDimobjTag_AreaA_Submixing_Flag為1’成功獲取配方后置該變量為True嘈己方總重量'SOCode’配方執(zhí)行標(biāo)記,當(dāng)有新配方可以執(zhí)行時(shí),該變量值DimobjTag_AreaA_TextFlagDimConnectionString'連接字符串變量SetobjTag_barcode_areaa=HMIRuntime.Tags("A_SubmixingChar")SIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)8of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明SetobjTag_barcode_getmission=HMIRuntime.Tags("A_Get_Mission")SetobjTag_A_TotalWeight=HMIRuntime.Tags("A_TotalWeight")SetobjTag_A_SOProduct=HMIRuntime.Tags("A_SOProduct")SetobjTag_AreaA_Submixing_Flag=HMIRuntime.Tags("A_Flag")SetobjTag_AreaA_TextFlag=HMIRuntime.Tags("A_TextFlag")objTag_barcode_areaa.Read'If(Len(objTag_barcode_areaa.Value)=0)Then'條形碼為空時(shí)退出'HMIRuntime.Trace"SubmixingCharisnull!!"&vbCrLf'ExitSub'EndIfSetobjCmd=CreateObject("ADODB.Command")ConnectionString=conString()'獲取到上面的鏈接字符串ObjCmd.ActiveConnection=ConnectionStringObjCmd.CommandType=4'StoredProcedures等同二ObjCmd.CommandText="sp_givaudan_GetAreaAMission"ObjCmd.Parameters.Refresh'參數(shù)賦值ObjCmd.Parameters(1).Value=objTag_barcode_areaa.ValueObjCmd.Parameters(2)=NullObjCmd.Parameters(3)=NullObjCmd.Parameters(4)=NullObjCmd.Execute()result=ObjCmd.Parameters(4).ValueobjTag_A_TotalWeight.Value=ObjCmd.Parameters(2).Value尸adCmdStoredProc’存儲(chǔ)過程名稱‘傳遞條形碼作為輸入?yún)?shù)’總重量,輸出參數(shù)'productcode,輸出參數(shù)’返回信息SIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)9of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明objTag_A_TotalWeight.WriteobjTag_A_SOProduct.Value=ObjCmd.Parameters(3).ValueobjTag_A_SOProduct.WriteSetobjCmd=Nothing'釋放數(shù)據(jù)庫連接資源HMIRuntime.Trace"#AGetMission#"&result&vbCrLf’完成后續(xù)處理工作IfCLng(objTag_A_TotalWeight.Value)>0ThenobjTag_barcode_getmission.Value=TrueobjTag_barcode_getmission.WriteElseobjTag_AreaA_Submixing_Flag.Value=1objTag_AreaA_Submixing_Flag.WriteIfCLng(objTag_A_TotalWeight.Value)=0ThenobjTag_AreaA_TextFlag.Value=4objTag_AreaA_TextFlag.WriteHMIRuntime.Trace"PleaseScanNextBarCode."&vbCrLfElseobjTag_AreaA_TextFlag.Value=5objTag_AreaA_TextFlag.WriteHMIRuntime.Trace"EmptyInAreaA."&vbCrLfEndIfEndIfEndSubSIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)10of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明從存儲(chǔ)過程的實(shí)例可以看出,vbs代碼簡潔清晰,僅僅和數(shù)據(jù)庫完成了1次鏈接。大量繁瑣的工作在存儲(chǔ)過程中來實(shí)行。若完全有SQL命令來實(shí)行將大大增加WINCC系統(tǒng)負(fù)擔(dān),同時(shí)數(shù)據(jù)庫的負(fù)擔(dān)也相對比較大,每次都要對SQL命令進(jìn)行編譯,執(zhí)行,同時(shí)SQL和WINCC之間有大量的數(shù)據(jù)通訊。4SQLSERVER存儲(chǔ)過程及觸發(fā)器4.1存儲(chǔ)過程定義存儲(chǔ)過程是保存起來的可以接受和返回用戶提供的參數(shù)的Transact-SQL語句的集合??梢詣?chuàng)建一個(gè)過程供永久使用,或在一個(gè)會(huì)話中臨時(shí)使用(局部臨時(shí)過程),或在所有會(huì)話中臨時(shí)使用(全局臨時(shí)過程)。也可以創(chuàng)建在MicrosoftSQLServer啟動(dòng)時(shí)自動(dòng)運(yùn)行的存儲(chǔ)過程。4.2創(chuàng)建存儲(chǔ)過程和數(shù)據(jù)表一樣,在使用之前我們需要?jiǎng)?chuàng)建存儲(chǔ)過程,它的簡明語法是:具體語法請參考T-SQL相關(guān)的手冊和文檔。CREATEPROC存儲(chǔ)過程名稱[參數(shù)列表(多個(gè)以"/分隔)]ASSQL語句實(shí)例2--說明部分--DeleteAlltheRecordsinFormulars_AreaA--命名CREATEPROCEDUREsp_givaudan_DeleteAlltheRecordsInFormulars_AreaA@resultNVARCHAR(300)OUTPUT參數(shù)ASSIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)11of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明BEGIN詳細(xì)SQLIFNOTEXISTS(SELECT*FROMUA#Formulars_AreaA)BEGINSET@result='NoFormularsavailableinUA#Formulars_AreaAnow!!'RETURNENDELSEBEGINDELETEFROMUA#Formulars_AreaAENDIF@@error=0SET@result='Good'ELSESET@result='Fail'ENDGO實(shí)例3—說明--'DELETEUA#Formulars_AreaA,UA#Formulars_AreaB,UA#FormularsCheckWHEREsubmixing=@submixing-命名CREATEPROCEDUREsp_givaudan_DeleteSelectedSubmixing@submixingNVARCHAR(12)='-',@resultNVARCHAR(300)OUTPUTAS-實(shí)現(xiàn)BEGINIF@submixing=''OR(NOTEXISTS(SELECT*FROMUA#FormularsCheckWHEREsubmixing=@submixing))--submixing為空或沒有所指定的submixng就返回BEGINSET@result='ParemeterError,Thesubmixing'+@submixing+'isnotavailable!!'SIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)12of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明RETURNENDELSE--submixing存在BEGIN一刪除指定的submixing.SET@resukDELETEUA#Formulars_AreaA,UA#Formulars_AreaB,UA#FormularsCheckWHERESUBMIXING='+@submixing+'!!'DELETEFROMUA#Formulars_AreaAWHEREsubmixing=@submixingDELETEFROMUA#Formulars_AreaBWHEREsubmixing=@submixingDELETEFROMUA#FormularsCheckWHEREsubmixing=@submixingENDIF@@error=0SET@result=@result+'Good'ELSESET@result=@result+'Fail'ENDGO4.3存儲(chǔ)過程調(diào)試從SQLServerEnterpriseManager進(jìn)入SQLQueryAnalyzer,默認(rèn)情況下進(jìn)入當(dāng)前數(shù)據(jù)庫,如果不正確需要選擇當(dāng)前數(shù)據(jù)庫。執(zhí)行以下程序,可以對實(shí)例1進(jìn)行調(diào)試。Declare@totalweightBIGINT,--定義臨時(shí)總重量變量@soproductNVARCHAR(14),--定義口缶時(shí)socode變量@resultNVARCHAR(300)--定義臨時(shí)結(jié)果信息變量--執(zhí)行存儲(chǔ)過程,提供所有參數(shù)execsp_givaudan_GetAreaAMission'test',@totalweightoutput,@soproductoutput,@resultoutput--顯示執(zhí)行后的輸出變量的信息select@totalweight,@soproduct,@result結(jié)果如下圖,可以通過修改‘test'為具體的submixing編碼,來真正獲取配方。實(shí)例2和實(shí)例3的調(diào)試都方法都和實(shí)例1相同。首先定義需要的變量,用在返回信息上。然后執(zhí)行存儲(chǔ)過程,必須提供所有的輸入輸出參數(shù)。最后為了方便調(diào)試,需要輸出所有返回變量。詳細(xì)的語法請參考T-SQL文檔。
SIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)13of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明呷!羋」?■力二口球”口廳4口以;匚二_匚妨⑶2_必」萬_洞」匚0」/見加不但九川皿建同心川■U」H…..」Queryb^tch5TA5CNJ4YCai\WINCL(8,0)5IA5CN01YC]l\cnO4A0l(62)C€^Clu>ter2JQ8050^l6^,45JOj0C^00IrowsLn%Col10圖1.實(shí)例調(diào)試結(jié)果4.4存儲(chǔ)過程中游標(biāo)的使用在數(shù)據(jù)庫開發(fā)過程中,當(dāng)你檢索的數(shù)據(jù)只是一條記錄時(shí),你所編寫的事務(wù)語句代碼往往使用SELECTINSERT語句。但是我們常常會(huì)遇到這樣情況,即從某一結(jié)果集中逐一地讀取一條記錄。那么如何解決這種問題呢?在c,vbs等語言中,我們可以通過對紀(jì)錄集合的訪問來實(shí)現(xiàn)這樣的功能。在數(shù)據(jù)庫中,游標(biāo)為我們提供了一種極為優(yōu)秀的解決方案。在數(shù)據(jù)庫中,游標(biāo)是一個(gè)十分重要的概念。游標(biāo)提供了一種對從表中檢索出的數(shù)據(jù)進(jìn)行操作的靈活手段,就本質(zhì)而言,游標(biāo)實(shí)際上是一種能從包括多條數(shù)據(jù)記錄的結(jié)果集中每次提取一條記錄的機(jī)制。游標(biāo)總是與一條T_SQL選擇語句相關(guān)聯(lián)因?yàn)橛螛?biāo)由結(jié)果集(可以是零條、一條或由相關(guān)的選擇語句檢索出的多條記錄)和結(jié)果集中指向特定記錄的游標(biāo)位置組成。當(dāng)決定對結(jié)果集進(jìn)行處理時(shí),必須聲明一個(gè)指向該結(jié)果集的游標(biāo)。我們知道關(guān)系數(shù)據(jù)庫管理系統(tǒng)實(shí)質(zhì)是面向集合的,在MSSQLSERVER中并沒有一種描述表中單一記錄的表達(dá)形式,除非使用where子句來限制只有一條記錄被選中。因此我們必須借助于游標(biāo)來進(jìn)行面向單條記錄的數(shù)據(jù)處理。由此可見,游標(biāo)允許應(yīng)用程序?qū)Σ樵冋Z句select返回的行結(jié)果集中每一行進(jìn)行相同或不同的操作,而不是一次對整個(gè)結(jié)果集進(jìn)行同一種操作;它還提供對基于游標(biāo)位置而對表中數(shù)據(jù)進(jìn)行刪除或更新的能力;而且,正是游標(biāo)把作為面向集合的數(shù)據(jù)庫管理系統(tǒng)和面向行的程序設(shè)計(jì)兩者聯(lián)系起來,使兩個(gè)數(shù)據(jù)處理方式能夠進(jìn)行溝通。MSSQLSERVER支持三種類型的游標(biāo):Transact_SQL游標(biāo),API服務(wù)器游標(biāo)和客戶游標(biāo)。這里主要討論的是Transact_SQL游標(biāo)
SIEMENS技術(shù)總結(jié)文檔號TN-00-01版本0.0日期10/05/08頁數(shù)14of17標(biāo)題:WINCC中使用vbs腳本調(diào)用SQL存儲(chǔ)過程SIAS---顏春明Transact_SQL游標(biāo)是由DECLARECURSOR語法定義、主要用在Transact_SQL腳本、存儲(chǔ)過程和觸發(fā)器.。Transact_SQL游標(biāo)主要用在服務(wù)器上,由從客戶端發(fā)送給服務(wù)器的Transact_SQL語句或是批處理、存儲(chǔ)過程、觸發(fā)器中的Transact_SQL進(jìn)行管理。Transact_SQL游標(biāo)不支口提取數(shù)據(jù)塊或多行數(shù)據(jù)。一一游標(biāo)操作使用游標(biāo)有四種基本的步驟:聲明游標(biāo)、打開游標(biāo)、提取數(shù)據(jù)、關(guān)閉游標(biāo)。下面我們以游標(biāo)在存儲(chǔ)過程中作為實(shí)例。實(shí)例4--GETTHEFIRSTTWOMISSIONID--命名存儲(chǔ)過程,聲明輸入輸出變量CREATEPROCEDUREspgivaudanGetStatIDAreaA@firstidBIGINTOUTPUT,@secondidBIGINTOUTPUT,@firstidBIGINTOUTPUT,@secondidBIGINTOUTPUT,@flagINTOUTPUT,onemission,morethan2mission.@resultNVARCHAR(300)OUTPUTAS--定義臨時(shí)變量Declare@RcordCountint--FIRSTID--SECONDID--FLAG,0,nomissionisavailable,1,onelyDeclare@idbigint--聲明游標(biāo)DeclarecurFormulars_AreaACursorforSelectTOP2IDFromUA#Formulars_AreaAWHEREfinished<3ORDERBYTUBENUMBERBEGINSELECT@RcordCount=Count(*)FROMUA#Formulars_A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 語文教師辭職報(bào)告(合集15篇)
- xx區(qū)供氣項(xiàng)目可行性研究報(bào)告
- 汽車的銷售年終總結(jié)體會(huì)10篇
- 國家級產(chǎn)業(yè)園基礎(chǔ)設(shè)施市場需求分析
- 2024年度打印機(jī)銷售與售后服務(wù)滿意度調(diào)查合同3篇
- 2024年度人工智能應(yīng)用項(xiàng)目擔(dān)保反擔(dān)保合同3篇
- 2024年團(tuán)隊(duì)出境旅游全程導(dǎo)游培訓(xùn)服務(wù)合同3篇
- 城市更新基礎(chǔ)設(shè)施建設(shè)項(xiàng)目選址與區(qū)域分析
- 液位測量控制課程設(shè)計(jì)
- 2024年糕點(diǎn)類食品供應(yīng)合同3篇
- 倉庫管理員月度績效考核表
- 戶外廣告設(shè)施設(shè)置申請表+審批表(城市管理資料2022新版)
- 國家開放大學(xué)電大??啤缎谭▽W(xué)(1)》期末題庫及答案
- 焦?fàn)t砌筑規(guī)程
- 聚酰亞胺基礎(chǔ)知識(shí)-1(橫田力男)
- ATS(發(fā)動(dòng)機(jī)智能冷卻系統(tǒng))
- 畢業(yè)論文飲料罐裝生產(chǎn)流水線系統(tǒng)設(shè)計(jì)與調(diào)試
- 項(xiàng)目工程施工安全生產(chǎn)管理流程圖
- CAD的樂趣(漂亮的自定義線型)
- 某某油庫投產(chǎn)試運(yùn)行方案
- 業(yè)障病因果病對照表
評論
0/150
提交評論