第八十五章 SQL命令 UPDATE(四)示例

本節(jié)中的示例更新??SQLUser.MyStudents??表。下面的示例創(chuàng)建?


?SQLUser.MyStudents??表,并用數(shù)據(jù)填充它。因?yàn)檫@個(gè)示例的重復(fù)執(zhí)行會(huì)積累具有重復(fù)數(shù)據(jù)的記錄,所以它使用?


?TRUNCATE TABLE??在調(diào)用??INSERT??之前刪除舊數(shù)據(jù)。在調(diào)用?


?UPDATE??示例之前執(zhí)行這個(gè)示例:

ClassMethod Update1()
{
CreateStudentTable
s stuDDL = 5
s stuDDL(1) = "CREATE TABLE SQLUser.MyStudents ("
s stuDDL(2) = "StudentName VARCHAR(32),StudentDOB DATE,"
s stuDDL(3) = "StudentAge INTEGER COMPUTECODE {SET {StudentAge}="
s stuDDL(4) = "$PIECE(($PIECE($H,"","",1)-{StudentDOB})/365,""."",1)} CALCULATED,"
s stuDDL(5) = "Q1Grade CHAR,Q2Grade CHAR,Q3Grade CHAR,FinalGrade VARCHAR(2))"
s tStatement = ##class(%SQL.Statement).%New(0,"Sample")
s qStatus = tStatement.%Prepare(.stuDDL)
if qStatus=1 {
w "DDL %Prepare failed:"
d $System.Status.DisplayError(qStatus)
q
}
s rtn = tStatement.%Execute()
if rtn.%SQLCODE = 0 {
w !,"表創(chuàng)建成功"
} elseif rtn.%SQLCODE = -201 {
w "表已經(jīng)存在, SQLCODE=",rtn.%SQLCODE,!
} else {
w !,"表創(chuàng)建失敗, SQLCODE=",rtn.%SQLCODE,!
w rtn.%Message,!
}
RemoveOldData
s clearit = "TRUNCATE TABLE SQLUser.MyStudents"
s qStatus = tStatement.%Prepare(clearit)
if qStatus=1 {
w "Truncate %Prepare failed:"
d $System.Status.DisplayError(qStatus)
q
}
s truncrtn = tStatement.%Execute()
if truncrtn.%SQLCODE = 0 {
w !,"表舊數(shù)據(jù)已經(jīng)被刪除",!
} elseif truncrtn.%SQLCODE = 100 {
w !,"沒(méi)有數(shù)據(jù)可以刪除",!
} else {
w !,"truncate failed, SQLCODE=",truncrtn.%SQLCODE," ",truncrtn.%Message,!
}
PopulateStudentTable
s studentpop=2
s studentpop(1)="INSERT INTO SQLUser.MyStudents (StudentName,StudentDOB) "
s studentpop(2)="SELECT Name,DOB FROM Sample.Person WHERE Age <= 21"
s qStatus = tStatement.%Prepare(.studentpop)
if qStatus = 1 {
w "填充 %Prepare 失敗:"
d $System.Status.DisplayError(qStatus)
q
}
s poprtn = tStatement.%Execute()
if poprtn.%SQLCODE = 0 {
w !,"表填充成功",!
w poprtn.%ROWCOUNT," rows inserted"
} else {
w !,"表填充失敗, SQLCODE=",poprtn.%SQLCODE,!
w poprtn.%Message
}
}

可以使用下面的查詢(xún)來(lái)顯示這些示例的結(jié)果:

SELECT %ID,* FROM SQLUser.MyStudents ORDER BY StudentAge,%ID

下面的一些??UPDATE??示例依賴(lài)于其他??UPDAT??E示例設(shè)置的字段值;它們應(yīng)該按照指定的順序運(yùn)行。在下面的動(dòng)態(tài)SQL示例中,?


?SET field=value UPDATE??修改選定記錄中的指定字段。在我的學(xué)生表中,7歲以下的孩子是不給分?jǐn)?shù)的:

ClassMethod Update2()
{
s studentupdate=3
s studentupdate(1)="UPDATE SQLUser.MyStudents "
s studentupdate(2)="SET FinalGrade=NA "
s studentupdate(3)="WHERE StudentAge <= 6"
s tStatement = ##class(%SQL.Statement).%New(0,"Sample")
s qStatus = tStatement.%Prepare(.studentupdate)
if qStatus=1 {
w "%Prepare failed:"
d $System.Status.DisplayError(qStatus)
q
}
s uprtn = tStatement.%Execute()
if uprtn.%SQLCODE=0 {
w !,"表更新成功"
w !,"Rows updated=",uprtn.%ROWCOUNT," Final RowID=",uprtn.%ROWID
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/124825.html

相關(guān)文章

  • #yyds干貨盤(pán)點(diǎn)#安全管理制度管理辦法范文

    摘要:第四章安全管理制度發(fā)布第十條安全管理制度必須以正式文件的形式發(fā)布施行。第十一條安全管理制度由信息安全管理小組制訂,信息安全領(lǐng)導(dǎo)小組審批發(fā)布。第二十條安全管理制度的修改與廢止須經(jīng)信息安全領(lǐng)導(dǎo)組織審批確認(rèn),信息安全管理部門(mén)備案。 字?jǐn)?shù) 3610閱讀 760評(píng)論 0贊 3《xxxx安全管理制度匯編》****制度管理辦法****文...

    duan199226 評(píng)論0 收藏0
  • 五章-Java修飾符#yyds干貨盤(pán)點(diǎn)#

    摘要:修飾符包包的概述和使用其實(shí)就是文件夾作用對(duì)類(lèi)進(jìn)行分類(lèi)管理包的定義格式格式包名多級(jí)包用分開(kāi)范例帶包的類(lèi)編譯和執(zhí)行手動(dòng)建包按照以前的格式編譯文件手動(dòng)創(chuàng)建包建立文件夾然后在下建立文件夾把文件放到包的最里面把文件放到下的這個(gè)文件夾下帶包 1 修飾符1.1 包1.1.1 包的概述和使用其實(shí)就是文件夾作用:對(duì)類(lèi)進(jìn)行分類(lèi)管理...

    caspar 評(píng)論0 收藏0
  • 第八章-Java常用API#yyds干貨盤(pán)點(diǎn)#

    摘要:常用類(lèi)概述包含執(zhí)行基本數(shù)字運(yùn)算的方法沒(méi)有構(gòu)造方法,如何使用類(lèi)中的成員呢看類(lèi)的成員是否都是靜態(tài)的,如果是,通過(guò)類(lèi)名就可以直接調(diào)用。所有類(lèi)都直接或間接的繼承該類(lèi)。 1 常用API1.1 Math1.1.1 Math類(lèi)概述Math包含執(zhí)行基本數(shù)字運(yùn)算的方法沒(méi)有構(gòu)造方法,如何使用類(lèi)中的成員呢?看類(lèi)的成員是否都是靜態(tài)的,...

    番茄西紅柿 評(píng)論0 收藏2637
  • #yyds干貨盤(pán)點(diǎn)#Redis中的事務(wù)原理與操作分享

    摘要:事務(wù)的定義事務(wù)是一組具備原子性操作的命令集合。事務(wù)的特點(diǎn)原子性。一致性指的是事務(wù)操作前后必須滿(mǎn)足業(yè)務(wù)約束。對(duì)監(jiān)聽(tīng)的,取消監(jiān)聽(tīng)事件。當(dāng)事務(wù)中存在語(yǔ)法使用不當(dāng)?shù)那闆r時(shí),事務(wù)會(huì)跳過(guò)當(dāng)前的命令。 事務(wù)的定義事務(wù)是一組具備原子性操作的命令集合。在這一組命令中,要么全部執(zhí)行成功,要么全部執(zhí)行失敗。事務(wù)的特點(diǎn)原子性。原子性指...

    番茄西紅柿 評(píng)論0 收藏2637
  • #yyds干貨盤(pán)點(diǎn)# web安全day14:掃描與報(bào)破

    摘要:干貨盤(pán)點(diǎn)安全掃描與報(bào)破遠(yuǎn)程桌面可以發(fā)現(xiàn)這個(gè)設(shè)備被掃描出來(lái),它就是我們的我們還可以嘗試掃描它的操作系統(tǒng)。使用干貨盤(pán)點(diǎn)安全掃描與報(bào)破遠(yuǎn)程桌面可以看到它運(yùn)行的是或者或者,盡管不能完全一致,但是大致上為我們提供了準(zhǔn)確的內(nèi)容。 1、掃描技術(shù)掃描技術(shù)就是批量判斷局域網(wǎng)中有哪些設(shè)備在線(xiàn)、這些設(shè)備的哪些服務(wù)開(kāi)放。我們可以使用ping工具測(cè)...

    番茄西紅柿 評(píng)論0 收藏2637

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)