新聞中心
必學(xué)技能:PB中查詢數(shù)據(jù)庫(kù)主鍵函數(shù)

創(chuàng)新互聯(lián)建站提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、網(wǎng)頁(yè)設(shè)計(jì),品牌網(wǎng)站設(shè)計(jì),一元廣告等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,十年的網(wǎng)站開(kāi)發(fā)和建站經(jīng)驗(yàn),助力企業(yè)信息化建設(shè),成功案例突破千余家,是您實(shí)現(xiàn)網(wǎng)站建設(shè)的好選擇.
在軟件開(kāi)發(fā)領(lǐng)域,數(shù)據(jù)庫(kù)是一個(gè)不可或缺的部分。對(duì)于PowerBuilder(PB)開(kāi)發(fā)人員,要有效管理數(shù)據(jù)庫(kù)數(shù)據(jù),必須掌握PB中查詢數(shù)據(jù)庫(kù)主鍵函數(shù)的使用方法。本文將向您介紹PB中的“GetIdentity”和“LastIdentity”兩個(gè)函數(shù),并演示它們是如何工作的。
基礎(chǔ)知識(shí)
在了解如何使用“GetIdentity”和“LastIdentity”函數(shù)之前,我們需要了解一下什么是數(shù)據(jù)庫(kù)主鍵。主鍵是一個(gè)唯一的標(biāo)識(shí)符,用于區(qū)分?jǐn)?shù)據(jù)庫(kù)表中的每一行。使用主鍵可以確保每條數(shù)據(jù)的唯一性,并簡(jiǎn)化數(shù)據(jù)訪問(wèn)和操作。在PB中,您可以使用數(shù)據(jù)窗口來(lái)管理數(shù)據(jù)庫(kù)表。
如何查詢數(shù)據(jù)庫(kù)主鍵
當(dāng)要在PB中查詢數(shù)據(jù)庫(kù)主鍵時(shí),可以使用以下兩個(gè)函數(shù):
1. GetIdentity:該函數(shù)用于獲取最后插入的主鍵,無(wú)論是手動(dòng)還是通過(guò)數(shù)據(jù)窗口插入的數(shù)據(jù)。
2. LastIdentity:該函數(shù)用于獲取最后插入的主鍵,前提是您已經(jīng)插入了一個(gè)數(shù)據(jù)行,并且該行的主鍵是由數(shù)據(jù)庫(kù)自動(dòng)生成的。
讓我們看一下這兩個(gè)函數(shù)的使用方法:
使用GetIdentity函數(shù)
當(dāng)您想要從數(shù)據(jù)庫(kù)中獲取最后插入的主鍵時(shí),可以使用以下PB代碼:
long ll_insertID
ll_insertID = dw_1.GetIdentity()
在這個(gè)例子中,我們將通過(guò)數(shù)據(jù)窗口dw_1中的GetIdentity函數(shù)來(lái)獲取數(shù)據(jù)庫(kù)表中的最后一行主鍵,該主鍵是由上一次插入調(diào)用自動(dòng)生成的。
使用LastIdentity函數(shù)
如果您已經(jīng)插入了一行數(shù)據(jù),并且該行的主鍵是由數(shù)據(jù)庫(kù)自動(dòng)生成的,則可以使用LastIdentity函數(shù)來(lái)獲取該行的主鍵。以下是一個(gè)示例:
long ll_insertID
ll_insertID = dw_1.LastIdentity()
在這個(gè)例子中,我們通過(guò)數(shù)據(jù)窗口dw_1的LastIdentity函數(shù)獲取了最后一個(gè)插入的主鍵,這個(gè)主鍵是由數(shù)據(jù)庫(kù)自動(dòng)生成的。
數(shù)據(jù)庫(kù)主鍵是一個(gè)用于確保每行數(shù)據(jù)的唯一性的關(guān)鍵元素。在PB中,使用GetIdentity和LastIdentity函數(shù)可以輕松查找最后一個(gè)插入的主鍵。掌握這些技能可以使PB開(kāi)發(fā)人員更加高效地操作數(shù)據(jù)庫(kù),并確保數(shù)據(jù)的正確性。
當(dāng)然,除了查詢數(shù)據(jù)庫(kù)主鍵,還有很多關(guān)于數(shù)據(jù)庫(kù)的知識(shí)和技能需要掌握。因此,PB開(kāi)發(fā)人員應(yīng)該不斷學(xué)習(xí)和提高自己的技能,以在各種任務(wù)中做到更好的執(zhí)行。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù)!
PB內(nèi)置Oracle數(shù)據(jù)庫(kù)接口的使用方法[1]
PowerBuilder(PB)和Oracle分別是前端開(kāi)發(fā)工具和RDBMS的主流產(chǎn)品 PB提供了兩種與Oracle連接的接口 PowerSoft內(nèi)置的數(shù)據(jù)庫(kù)接口(Native Database Interface)和ODBC接口
PowerBuilder與Oracle的連接
假定已安裝Oracle客戶端應(yīng)用程序 可用Sqlplus或Tnsping等是否能連接到Oracle數(shù)據(jù)庫(kù) 確定在SQL*NET配置文件中使用的數(shù)據(jù)庫(kù)別名(Database Alias 又稱服務(wù)器名 Server Name) 如有疑問(wèn) 可在Oracle客戶端程序目錄下tnsname ora文件中找到 另外保證搜索路徑已包括SQL*NET應(yīng)用程序的安裝目錄(如C:\ORAWIN \BIN)
進(jìn)入PB的Database Profiles畫(huà)筆 可看到所有已安裝的數(shù)據(jù)庫(kù)接口(PB 缺省安裝的是Oracle 版的接口 如使用低版本的Oracle 需在安裝時(shí)指定) 選擇 O Oracle 點(diǎn)擊 New 按鈕 進(jìn)入Database Profile Setup對(duì)話框 在 Connection 頁(yè)輸入下列信息 Profile Name:為該Database Profile起一個(gè)有意義的名稱 Server:@TNS:ServerName 其中ServerName為上述數(shù)據(jù)庫(kù)別名(服務(wù)器名) 如@TNS:ORA ;注意 PB 則沒(méi)有前面那個(gè)@TNS:!!!
Login ID:Oracle數(shù)據(jù)庫(kù)中實(shí)際的用戶名 由于PB初次連接到數(shù)穗冊(cè)據(jù)庫(kù)時(shí)要自動(dòng)建立五個(gè)系統(tǒng)表(PowerBuilder Catalog Table:PBCATTBL PBCATCOL PBCATEDT PBCATFMT PBCATVLD 存儲(chǔ)表的擴(kuò)展屬性) 因此之一個(gè)連接到Oracle的用戶必須具有建表 給PUBLIC角色授權(quán)等權(quán)限 例如可用SYSTEM用戶進(jìn)行之一次連接 此后的連接對(duì)用握族滾戶則無(wú)特殊要求
Password:該用戶的口令
設(shè)置上述內(nèi)容后 即可連上Oracle 為優(yōu)化數(shù)據(jù)庫(kù)連接 還可設(shè)置下列選項(xiàng)
Prompt for Database Information:連接時(shí)是否提示用戶輸入用戶名和口令
Generate Trace:啟動(dòng)DB跟蹤工具 跟蹤連接
Thread Safe:開(kāi)發(fā)需要多線程環(huán)境支持的分布式應(yīng)用時(shí) 選擇該項(xiàng) 缺省為未選 適用于非分布應(yīng)用
PBDBMS:與存儲(chǔ)過(guò)程調(diào)用方式有關(guān)的參數(shù) Oracle為 或更高版本時(shí) 清除該選項(xiàng) 此時(shí)帶IN OUT參數(shù)的存儲(chǔ)過(guò)程可作為數(shù)據(jù)窗口數(shù)據(jù)源 版本以下 選擇該項(xiàng) 調(diào)用PBDBMS Put Line建立存儲(chǔ)過(guò)程的SQL語(yǔ)句 缺省是選中
Commit on Disconnect:斷開(kāi)連接時(shí) 指定提交或回退未提交的事務(wù)
Case Sensitive:連接的Oracle服務(wù)器是否區(qū)分大小寫(xiě) 注意該項(xiàng)選中時(shí)段余 所有主鍵 包含主鍵的表名 外鍵須全為大寫(xiě)字符
PowerBuilder Catalog Tables Owner:指定擁有PB系統(tǒng)表的用戶 缺省為 SYSTEM 如果要使用多種顯示格式或有效性規(guī)則 可以在不同的用戶下建立幾套系統(tǒng)表
Table Criteria:指定滿足哪些條件的表 視圖和同義詞可在 Select Tables 對(duì)話框中顯示出來(lái) 例如DEV用戶下銷(xiāo)售子系統(tǒng)的表都以SALE開(kāi)頭 則可以用SALE% DEV TABLE VIEW 指定只顯示DEV用戶以SALE開(kāi)頭的表和視圖
Asynchronous:選擇該項(xiàng) 可在一個(gè)復(fù)雜的SQL語(yǔ)句執(zhí)行過(guò)程中 返回之一行結(jié)果前 切換到其他操作
Number of Seconds to Wait:若上一項(xiàng)選中 還可進(jìn)一步通過(guò)該項(xiàng)指定檢索數(shù)據(jù)時(shí) 等待數(shù)據(jù)庫(kù)響應(yīng)的時(shí)間
Retrieve Blocking Factor:決定數(shù)據(jù)窗口對(duì)象一次可從數(shù)據(jù)庫(kù)取出的記錄數(shù)
Number of SQL Staments Cached:PB可將數(shù)據(jù)窗口對(duì)象產(chǎn)生的SQL語(yǔ)句和嵌入式SQL語(yǔ)句保存在SQL語(yǔ)句緩沖區(qū) 該參數(shù)指定緩沖區(qū)為PB保留的SQL語(yǔ)句數(shù)目 該數(shù)值可由下式計(jì)算 SQLCache=服務(wù)器OPEN CURSORS數(shù) (保留的游標(biāo)數(shù)) 本連接預(yù)期使用的更大游標(biāo)數(shù)
Disable Bind:指定是否將輸入變量與SQL語(yǔ)句綁定 此參數(shù)影響PB為數(shù)據(jù)窗口對(duì)象生成INSERT語(yǔ)句的方式
Static Bind:數(shù)據(jù)窗口對(duì)象檢索數(shù)據(jù)前是否檢測(cè)SELECT語(yǔ)句的合法性
在Syntax頁(yè) 還可指定日期 時(shí)間的格式等 在Preview頁(yè)可查看Database Profile設(shè)置對(duì)應(yīng)的PowerScript寫(xiě)法
Oracle存儲(chǔ)過(guò)程的使用
歸納起來(lái)PB 中調(diào)用Oracle存儲(chǔ)過(guò)程有以下四種方法
方法一 以關(guān)鍵字RPCFUNC聲明存儲(chǔ)過(guò)程
方法二 以DECLARE PROCEDURE語(yǔ)句聲明存儲(chǔ)過(guò)程
方法三 以動(dòng)態(tài)SQL語(yǔ)句實(shí)現(xiàn)
方法四 調(diào)用函數(shù)PBDBMS Put Line
一般情況下 方法一能得到較好的運(yùn)行效率和更完善的功能 因此推薦使用方法一 但是某些類型的存儲(chǔ)過(guò)程只能使用其他方法 以下重點(diǎn)介紹方法一和方法二
兩種方法比較起來(lái) 有以下幾點(diǎn)主要區(qū)別
)方法一適用于具有IN OUT和IN OUT參數(shù)的存儲(chǔ)過(guò)程 而方法二僅支持IN和OUT參數(shù) 不支持IN OUT參數(shù)
)方法一對(duì)參數(shù)的數(shù)目無(wú)限制 方法二最多支持 個(gè)參數(shù)
)方法一不支持記錄(Recorder)的傳遞 方法二可傳遞和接收記錄
方法一操作步驟
)在用戶對(duì)象畫(huà)筆中創(chuàng)建一個(gè)Class Standard類型的 從Transaction繼承的用戶對(duì)象
)在此用戶對(duì)象中 聲明Local External Functions 將存儲(chǔ)過(guò)程以RPCFUNC關(guān)鍵字聲明為外部函數(shù) 在Declare Local External Functions對(duì)話框中按Procedures按鈕選擇要調(diào)用的后臺(tái)存儲(chǔ)過(guò)程 或直接輸入類似subroutine TEST(long id ref string name)RPCFUNC ALIAS FOR DEVTEST 的語(yǔ)句 例如DEVTEST的參數(shù)為(id IN NUMBER name IN OUT VARCHAR )
)保存該用戶對(duì)象
)在Application畫(huà)筆中 進(jìn)入應(yīng)用屬性對(duì)話框 在Variable Types頁(yè) 將上Transaction用戶對(duì)象設(shè)置為缺省的全局變量SQLCA
)腳本中 編碼調(diào)用相應(yīng)的外部函數(shù) 形式 SQLCA函數(shù)名(參數(shù)) 如可用 SQLCATEST(ln id ls name) 調(diào)用例子中定義的DEVTEST存儲(chǔ)過(guò)程 其中l(wèi)n id ls name為調(diào)用參數(shù)
方法一注意事項(xiàng)
)由于PB中String類型的數(shù)據(jù)長(zhǎng)度是動(dòng)態(tài)分配的 因此對(duì)Ref String類型的參數(shù) 每次調(diào)用前需要申請(qǐng)足夠的空間 例如上例從輸入的id值檢索name 后臺(tái)聲明的NAME數(shù)據(jù)類型為VARCHAR ( ) 每次調(diào)用SQLCATEST前需要用ls name=SPACE( )置ls name為足夠長(zhǎng)度的空串
lishixinzhi/Article/program/PB/202311/24641
關(guān)于pb中查詢數(shù)據(jù)庫(kù)主鍵的函數(shù)的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
四川成都云服務(wù)器租用托管【創(chuàng)新互聯(lián)】提供各地服務(wù)器租用,電信服務(wù)器托管、移動(dòng)服務(wù)器托管、聯(lián)通服務(wù)器托管,云服務(wù)器虛擬主機(jī)租用。成都機(jī)房托管咨詢:13518219792
創(chuàng)新互聯(lián)(www.cdcxhl.com)擁有10多年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)、開(kāi)啟建站+互聯(lián)網(wǎng)銷(xiāo)售服務(wù),與企業(yè)客戶共同成長(zhǎng),共創(chuàng)價(jià)值。
標(biāo)題名稱:必學(xué)技能:pb中查詢數(shù)據(jù)庫(kù)主鍵函數(shù)(pb中查詢數(shù)據(jù)庫(kù)主鍵的函數(shù))
本文網(wǎng)址:http://www.5511xx.com/article/ccoogeh.html


咨詢
建站咨詢
