Oracle數(shù)據(jù)庫的操作程序_第1頁
Oracle數(shù)據(jù)庫的操作程序_第2頁
Oracle數(shù)據(jù)庫的操作程序_第3頁
Oracle數(shù)據(jù)庫的操作程序_第4頁
Oracle數(shù)據(jù)庫的操作程序_第5頁
已閱讀5頁,還剩91頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 TOC o 1-3 h z u HYPERLINK l _Toc39229528 1Developer/2000中各鍵盤觸發(fā)子所對應(yīng)的“按鍵” PAGEREF _Toc39229528 h 2 HYPERLINK l _Toc39229529 2FORM中,當(dāng)光標(biāo)走到塊的最后一項時,如何讓按“enter回車”鍵時,光標(biāo)自動走到下一條記錄的第一項? PAGEREF _Toc39229529 h 3 HYPERLINK l _Toc39229530 3如何在啟動FORM程序時直接登錄到Oracle數(shù)據(jù)庫上? PAGEREF _Toc39229530 h 3 HYPERLINK l _Toc392

2、29531 4FORM中,如何通過 ODBC 訪問 Acress 數(shù)據(jù)? PAGEREF _Toc39229531 h 3 HYPERLINK l _Toc39229532 5從FORM中調(diào)用REPORT時,如何使打印結(jié)果直接輸出到打印機(jī)上? PAGEREF _Toc39229532 h 4 HYPERLINK l _Toc39229533 6FORM調(diào)用REPORT時,如何去掉report server? PAGEREF _Toc39229533 h 4 HYPERLINK l _Toc39229534 7FORM中,如何實現(xiàn)屏幕同步刷新? PAGEREF _Toc39229534 h 4

3、HYPERLINK l _Toc39229535 8在Developer/2000中如何讀寫文本型操作系統(tǒng)文件? PAGEREF _Toc39229535 h 4 HYPERLINK l _Toc39229536 9如何改變FORM(FMX模塊)運(yùn)行時的title? PAGEREF _Toc39229536 h 5 HYPERLINK l _Toc39229537 10FORM中,如何修改系統(tǒng)提示信息(默認(rèn)英文)為中文? PAGEREF _Toc39229537 h 5 HYPERLINK l _Toc39229538 11FORM中,如何樣創(chuàng)建動態(tài)下拉列表List? PAGEREF _Toc

4、39229538 h 6 HYPERLINK l _Toc39229539 12FORM中,如何引入圖像,制作封面? PAGEREF _Toc39229539 h 7 HYPERLINK l _Toc39229540 13運(yùn)行FORM時,如何使按鈕變灰(即無效)? PAGEREF _Toc39229540 h 7 HYPERLINK l _Toc39229541 14FORM中,設(shè)置應(yīng)用特性(光標(biāo)類型) PAGEREF _Toc39229541 h 7 HYPERLINK l _Toc39229542 15運(yùn)行FORM時,如何使窗口(runtime窗口、畫布窗口)自動變成最大化、最小化? PA

5、GEREF _Toc39229542 h 7 HYPERLINK l _Toc39229543 16FORM中,WINDOW標(biāo)題的設(shè)置 PAGEREF _Toc39229543 h 7 HYPERLINK l _Toc39229544 17FORM中,Exception(例外)都有哪些,如何書寫? PAGEREF _Toc39229544 h 8 HYPERLINK l _Toc39229545 18如何在FORM運(yùn)行中,使定制菜單中的“窗口(W)”菜單項不顯示? PAGEREF _Toc39229545 h 8 HYPERLINK l _Toc39229546 19FORM中,如何屏蔽默認(rèn)的

6、功能鍵? PAGEREF _Toc39229546 h 8 HYPERLINK l _Toc39229547 20FORM中,觸發(fā)子exit_form的兩種功能是什么? PAGEREF _Toc39229547 h 9 HYPERLINK l _Toc39229548 21FORM中如何存取圖象?如何把圖象從一個表中導(dǎo)到另一個表中? PAGEREF _Toc39229548 h 9 HYPERLINK l _Toc39229549 22FORM中如何存取聲音? PAGEREF _Toc39229549 h 10 HYPERLINK l _Toc39229550 23FORM中,當(dāng)用鼠標(biāo)點(diǎn)擊標(biāo)簽

7、畫布的某一“標(biāo)簽頁”時,如何推斷點(diǎn)擊的是哪一頁? PAGEREF _Toc39229550 h 10 HYPERLINK l _Toc39229551 24FORM中,常用快捷鍵有哪些? PAGEREF _Toc39229551 h 10 HYPERLINK l _Toc39229552 25如何公布Developer/2000應(yīng)用程序? PAGEREF _Toc39229552 h 11 HYPERLINK l _Toc39229553 26FORM中,點(diǎn)擊按鈕實現(xiàn)字段排序? PAGEREF _Toc39229553 h 11 HYPERLINK l _Toc39229554 27什么緣故在

8、觸摸屏上,我的按紐不響應(yīng)我的“按”動作? PAGEREF _Toc39229554 h 11 HYPERLINK l _Toc39229555 28什么緣故我的FMX程序里沒有Message line? PAGEREF _Toc39229555 h 11 HYPERLINK l _Toc39229556 29FORM中,如何設(shè)置水平滾動條? PAGEREF _Toc39229556 h 11 HYPERLINK l _Toc39229557 30FORM中,觸發(fā)子POST-CHANGE的作用 PAGEREF _Toc39229557 h 11 HYPERLINK l _Toc39229558

9、31FORM中,觸發(fā)子WHEN-VALIDATE-ITEM的作用 PAGEREF _Toc39229558 h 11 HYPERLINK l _Toc39229559 32FORM中,觸發(fā)子POST-QUERY的作用 PAGEREF _Toc39229559 h 11 HYPERLINK l _Toc39229560 33如何樣在form中使用宏? PAGEREF _Toc39229560 h 11 HYPERLINK l _Toc39229561 34如何調(diào)用外部操作系統(tǒng)命令? PAGEREF _Toc39229561 h 13 HYPERLINK l _Toc39229562 35臨時表的

10、作用 PAGEREF _Toc39229562 h 13 HYPERLINK l _Toc39229563 36FORM中,如何樣使用KEY-Fn(n=0.9)觸發(fā)子? PAGEREF _Toc39229563 h 13 HYPERLINK l _Toc39229564 37用戶出口函數(shù)USER_EXIT如何編寫? PAGEREF _Toc39229564 h 13 HYPERLINK l _Toc39229565 38如何從REPORT中調(diào)用FORM、GRAPHICS程序? PAGEREF _Toc39229565 h 13 HYPERLINK l _Toc39229566 39如何從GRA

11、PHICS中調(diào)用FORM、REPORT程序? PAGEREF _Toc39229566 h 13 HYPERLINK l _Toc39229567 40Oracle中Forms與Reports的集成 PAGEREF _Toc39229567 h 13 HYPERLINK l _Toc39229568 41在DEVELOPER2000中利用DDE將數(shù)據(jù)倒入到EXCEL文件中的方法 PAGEREF _Toc39229568 h 16 HYPERLINK l _Toc39229569 42使用設(shè)置菜單項屬性及form 數(shù)據(jù)項屬性限制不同用戶的訪問范圍 PAGEREF _Toc39229569 h 2

12、0 HYPERLINK l _Toc39229570 43提高表連接的查詢速度 PAGEREF _Toc39229570 h 20 HYPERLINK l _Toc39229571 44利用用庫模塊實現(xiàn)模塊資源共享 PAGEREF _Toc39229571 h 20 HYPERLINK l _Toc39229572 45易導(dǎo)致查詢數(shù)據(jù)錯誤的緣故 PAGEREF _Toc39229572 h 20 HYPERLINK l _Toc39229573 46使用視圖組織報表數(shù)據(jù)簡單且易于維護(hù) PAGEREF _Toc39229573 h 20 HYPERLINK l _Toc39229574 47給報

13、表加序號的簡單方法 PAGEREF _Toc39229574 h 21 HYPERLINK l _Toc39229575 48用FORMS 實 現(xiàn)ORACLE 數(shù) 據(jù) 庫 與 其 它 數(shù) 據(jù) 源 數(shù) 據(jù) 的 交 換 PAGEREF _Toc39229575 h 21 HYPERLINK l _Toc39229576 49FORMS 4.5 實 現(xiàn) 的 列 表 查 詢、 多 行 錄 入 中 的 實 現(xiàn) 行 累 計 PAGEREF _Toc39229576 h 22 HYPERLINK l _Toc39229577 50REPORT 2.5 中 實 現(xiàn) 的 動 態(tài) 報 表( 一 張 表 利 用 多

14、 個QUERY 語 句, 生 成 一 樣 格 式 的 多 張 報 表 PAGEREF _Toc39229577 h 22 HYPERLINK l _Toc39229578 51如何屏蔽系統(tǒng)提示信息? PAGEREF _Toc39229578 h 23 HYPERLINK l _Toc39229579 52在編寫PL/SQL代碼中使用SELECT語句時如何幸免例外發(fā)生? PAGEREF _Toc39229579 h 23 HYPERLINK l _Toc39229580 53當(dāng)使用主從塊時,如何使從塊自動提交? PAGEREF _Toc39229580 h 23 HYPERLINK l _Toc

15、39229581 54如何減少FORM所占磁盤空間? PAGEREF _Toc39229581 h 23 HYPERLINK l _Toc39229582 55如何使定制菜單的主菜單中WINDOWS項不顯示? PAGEREF _Toc39229582 h 23 HYPERLINK l _Toc39229583 56如何使不同布局的報表顯示在同一頁上? PAGEREF _Toc39229583 h 23 HYPERLINK l _Toc39229584 57如何樣較快的生成FMX文件? PAGEREF _Toc39229584 h 24 HYPERLINK l _Toc39229585 58如何

16、在FORM中同時加入水平與垂直滾動條? PAGEREF _Toc39229585 h 24 HYPERLINK l _Toc39229586 59如何在告警框內(nèi)顯示message信息? PAGEREF _Toc39229586 h 24 HYPERLINK l _Toc39229587 60如何一次退出所有FORM? PAGEREF _Toc39229587 h 25 HYPERLINK l _Toc39229588 61如何在FORM與REPORT之間傳遞參數(shù)? PAGEREF _Toc39229588 h 25 HYPERLINK l _Toc39229589 62從FORM調(diào)用REPOR

17、T時,如何使REPORT以滿屏方式顯示? PAGEREF _Toc39229589 h 26 HYPERLINK l _Toc39229590 63如何關(guān)閉REPORT運(yùn)行時的參數(shù)窗口? PAGEREF _Toc39229590 h 26 HYPERLINK l _Toc39229591 64在Oracle中實現(xiàn)報表的定長輸出 PAGEREF _Toc39229591 h 27 HYPERLINK l _Toc39229592 65Developer/2000 FROMS 4.5 中 的 宏 代 換 PAGEREF _Toc39229592 h 28 HYPERLINK l _Toc39229

18、593 66用FORMS 實 現(xiàn)ORACLE 數(shù) 據(jù) 庫 與 其 它 數(shù) 據(jù) 源 數(shù) 據(jù) 的 交 換 PAGEREF _Toc39229593 h 29 HYPERLINK l _Toc39229594 67FORMS 4.5 實 現(xiàn) 的 列 表 查 詢、 多 行 錄 入 中 的 實 現(xiàn) 行 累 計 PAGEREF _Toc39229594 h 30 HYPERLINK l _Toc39229595 68REPORT 2.5 中 實 現(xiàn) 的 動 態(tài) 報 表( 一 張 表 利 用 多 個QUERY 語 句, 生 成 一 樣 格 式 的 多 張 報 表 PAGEREF _Toc39229595 h

19、 31 HYPERLINK l _Toc39229596 69用ORACLE*Forms 和ORACLE*Graphics實現(xiàn)數(shù)據(jù)與圖形動態(tài)顯示 PAGEREF _Toc39229596 h 31 HYPERLINK l _Toc39229597 70數(shù)字分金額轉(zhuǎn)成大寫漢字元金額程序! PAGEREF _Toc39229597 h 33Developer/2000中各鍵盤觸發(fā)子所對應(yīng)的“按鍵”封裝過程鍵觸發(fā)子含義對應(yīng)按鍵ABORT_QUERY Key-EXIT退出/取消BLOCK_MENUKey-MENU塊菜單F5CLEAR_BLOCK Key-CLRBLK清空塊Shift+F5CLEAR_F

20、ORMKey-CLRFRM清空FORMShift+F7CLEAR_RECORDKey-CLRREC清空記錄Shift+F4COMMIT_FORM Key-COMMIT提交/存盤 F10COUNT_QUERY Key-CQUERY計算查詢記錄總數(shù)Shift+F2CREATE_RECORD Key-CREREC插入新記錄F6DELETE_RECORD Key-DELREC刪除記錄Shift+F6DOWNKey-DOWN下滾記錄Ctrl+l、下箭頭DUPLICATE_ITEMKey-DUP-ITEM復(fù)制域/項 F3DUPLICATE_RECORDKey-DUPREC復(fù)制記錄F4EDIT_TEXTIT

21、EM Key-EDIT打開編輯器Ctrl+EENTER Key-ENTEREnterENTER_QUERY Key-ENTQRY輸入查詢條件F7EXECUTE_QUERY Key-EXEQRY執(zhí)行查詢F8EXIT_FORM Key-EXIT退出/取消查詢 Ctrl+QHELPKey-HELP關(guān)心F1LIST_VALUES Key-LISTVAL顯示值列表LOV F9LOCK_RECORD Key-UPDRECLock RecordNEXT_BLOCKKey-NXTBLK下一塊Ctrl+Page DownNEXT_ITEM Key-NEXT-ITEM下一域/項 Ctrl+Tab、Tab、Ente

22、rNEXT_KEYKey-NXTKEY定位到下一個主鍵項Shift+F3NEXT_RECORD Key-NXTREC下一條記錄Shift+DownNEXT_SETKey-NXTSET下一個記錄集Ctrl+PREVIOUS_BLOCKKey-PRVBLK前一塊Ctrl+Page UpPREVIOUS_ITEM Key-PREV-ITEM前一域/項 Shift+Tab、Shift+Ctrl+TabPREVIOUS_RECORD Key-PRVREC前一條記錄Shift+UpPRINT Key-PRINT打印當(dāng)前屏幕Shift+F8SCROLL_DOWN Key-SCRDOWN下翻屏Page Dow

23、nSCROLL_UP Key-SCRUP上翻屏Page UpUPKey-UP上滾記錄Ctrl+p、上箭頭Esc 取消Backspace 向后刪除Ctrl+U清除域/項Ctrl+F1 顯示有效的功能鍵列表Shift+F1發(fā)生錯誤時,顯示錯誤窗口FORM中,當(dāng)光標(biāo)走到塊的最后一項時,如何讓按“enter回車”鍵時,光標(biāo)自動走到下一條記錄的第一項?設(shè)置塊屬性導(dǎo)航器風(fēng)格:改變記錄 如何在啟動FORM程序時直接登錄到Oracle數(shù)據(jù)庫上?調(diào)入Form Builder,打開一個新的FORM在表格級新建一個ON_LOGON觸發(fā)器在ON_LOGON里輸入以下代碼:DECLAREPASS1 VARCHAR2(8

24、0); -PASS1為密碼參數(shù)BEGINLOGON(USER1,USER1|TNS1);SELECT LOGOUT;LOGON(USER2,PASS1|TNS1);END;FORM中,如何通過 ODBC 訪問 Acress 數(shù)據(jù)?在操縱面板中選取 ODBC 操縱源系統(tǒng) DSN添加(D).選定您需要的驅(qū)動程序來安裝數(shù)據(jù)源(S):Microsoft Acress Driver (*.mdb)完成(F)Date Source Name:aaa(aaa確實是數(shù)據(jù)源名稱,也確實是在應(yīng)用程序中所要使用的)選擇一個mdb數(shù)據(jù)庫文件(select)高級屬性:設(shè)置用戶名、口令OK打開一個FORM文件(F)連接(

25、E) HYPERLINK mailto:用戶名/口令odbc:aaa 用戶名/口令odbc:aaa連接(O)從FORM中調(diào)用REPORT時,如何使打印結(jié)果直接輸出到打印機(jī)上?在parameter list中加入parameter_form=NoAdd_parameter(list_id,PSRAMETER_FORM,TEXT_PARAMETER,NO);FORM調(diào)用REPORT時,如何去掉report server?Add_parameter(list_id,ORACLE_SHUTDOWN,TEXT_PARAMETER,YES);FORM中,如何實現(xiàn)屏幕同步刷新?現(xiàn)象講明: FORM中,在做一

26、連串大的操作時,有時希望用message來顯示提示信息,但屏幕卻不刷新,解決方法: message(信息1);synchronize;(同步屏幕顯示)message(信息2);synchronize; 在Developer/2000中如何讀寫文本型操作系統(tǒng)文件?PL/SQL 3.3以上的版本中,UTL_FILE包同意用戶通過PL/SQL讀寫操作系統(tǒng)文件。如下: declarefile_handle utl_file.file_type;beginfile_handle:=utl_file.fopen(C:,TEST.TXT,A);-TEST.TXT是文件名utl_file.put_line(f

27、ile_handle,寫入的信息);utl_file.fclose(file_handle);end;Developer/2000中,能夠用Text_IO讀寫操作系統(tǒng)文件。如下: DECALREin_fileText_IO.File_Type;out_fileText_IO.File_Type;BEGINin_file:=Text_IO.Fopen(文件名, R);Text_IO.Get_Line(in_file,linebuf);Text_IO.Fclose(in_file);out_file:=Text_IO.Fopen(文件名, W);Text_IO.Put_Line(out_file,

28、寫入信息);Text_IO.Fclose(out_file);END;-常用TEXT_IODeclare out_file text_io.file_type;-定義Begin out_file:=text_io.fopen(prn,w);-打開文件prn text_io.new_line(out_file, );-新建一行 text_io.put_line(out_file, )-寫入一行 text_io.fclose(out_file);-關(guān)閉文件End;文本輸入輸出 TEXT_IO TEXT_IO.PACKAGE TEXT_IO.FCLOSE TEXT_IO.FILE_TYPE TEXT

29、_IO.FOPEN TEXT_IO.IS_OPEN TEXT_IO.GET_LINE TEXT_IO.NEW_LINE TEXT_IO.PUT TEXT_IO.PUTF TEXT_IO.PUT_LINEDeclare Out_file Text_io.file_type; L Varchar2(100); L1 Varchar2(100); L2 Varchar2(100);Begin Out_file :=text_io.fopen(c:lllogin.txt,r); If text_io.is_open(Out_file) thentext_io.get_line(Out_file,L);

30、text_io.get_line(Out_file,L1);text_io.get_line(Out_file,L2); Else Null; End if;End;如何改變FORM(FMX模塊)運(yùn)行時的title?Developer/2000中FMX默認(rèn)title為:Developer/2000 Forms Runtime for Windows 95 / NT在Form級觸發(fā)器中添加觸發(fā)WHEN-NEW-FORM-INSTANCE在此觸發(fā)器中寫如下代碼:SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW,TITLE,您的提示);FORM中,如何修改系統(tǒng)提示信息(默認(rèn)英

31、文)為中文?調(diào)入Form Builder,打開一個新的FORM在表格級新建一個ON_ERROR觸發(fā)器在ON_ERROR里輸入以下代碼:beginif error_code=40100 then message(已在第一 條記錄!);elsif error_code=40102 then message(您已在最后一條記錄,請先輸入處理此記錄,然后再輸入下一條記錄!);elsif error_code=40200 then message(此項僅用于查詢參考,您無法更改此項!);elsif error_code=40202 then message(此項必須輸入! 產(chǎn)生錯誤緣故:您未輸入值,或您

32、刪去了原有值!);elsif error_code=40203 then message(值必須輸入完全! 產(chǎn)生錯誤緣故:該項有定長要求!);elsif error_code=40207 then message(您輸入的值不在有效范圍之內(nèi),請輸入有效范圍之內(nèi)的值!);elsif error_code=40401 then message(您沒有修改或輸入任何新的記錄,無須保存!);elsif error_code=40508 then message(編碼不能相同,不能有相同編碼的記錄,編碼必須唯一!);elsif error_code=40509 then message(嚴(yán)峻操作錯誤!,

33、您可能輸入了一個空的記錄,無法保存記錄!);elsif error_code=41802 then message(您只能在輸入新的記錄時使用復(fù)制記錄鍵,來復(fù)制上一條記錄!);else message(error_type|_|to_char(error_code)|:|error_text);end if;raise form_trigger_failure;end;FORM中,如何樣創(chuàng)建動態(tài)下拉列表List?1、打開Form Builder2、文件(F)新建(N)表格(F)3、新建一個非數(shù)據(jù)塊,取名為tool4、鼠標(biāo)右鍵布局編輯器(E)5、建一個列表項,名為xl(屬于tool塊)6、新建一

34、過程,內(nèi)寫如下的代碼PROCEDURE create_xl IS-動態(tài)顯示學(xué)歷過程CURSOR A IS SELECT DISTINCT(xl) FROM t_xl;-建立a游標(biāo),從學(xué)歷檔案表取原始數(shù)據(jù)(有可能動態(tài)變化)CNT NUMBER;-記錄總數(shù)變量,用于生成列表的總項數(shù)i NUMBER;-循環(huán)變量TNAME t_%TYPE;-TNAME變量和t_xl表中name項具有相同的結(jié)構(gòu)BEGINCLEAR_LIST(tool.xl);-清空列表tool.xl(tool塊上的xl項)SELECT COUNT(DISTINCT(name) INTO CNT FROM t_xl;-計算

35、列表總數(shù)OPEN A; -打開游標(biāo)FOR i IN 1.CNT LOOP-開始循環(huán)FETCH A INTO TNAME; -取數(shù)EXIT WHEN A%NOTFOUND; -退出條件ADD_LIST_ELEMENT(tool.xl,i,TNAME,TNAME);-把查詢出的值加入列表中(序號,實際值,顯示值)END LOOP; -結(jié)束循環(huán)CLOSE A;-關(guān)閉游標(biāo)END;7、在Form級觸發(fā)器中添加觸發(fā)WHEN-NEW-FORM-INSTANCE 在此觸發(fā)器中寫如下代碼:create_xl; 使FORM程序一啟動,就調(diào)用此過程,達(dá)到動態(tài)生成下拉列表List的效果。附:-學(xué)歷檔案表create

36、table t_xl(name varchar2(6);insert into t_xl values(小學(xué));insert into t_xl values(初中);insert into t_xl values(職高);insert into t_xl values(技校);insert into t_xl values(高中);insert into t_xl values(中專);insert into t_xl values(大專);insert into t_xl values(本科);insert into t_xl values(研究生);commit;FORM中,如何引入圖像

37、,制作封面?打開Form Builder文件(F)新建(N)表格(F)鼠標(biāo)右鍵布局編輯器(E)文件(F)導(dǎo)入(I)圖象(I)可調(diào)入作好的圖像,以制作封面。所支持的圖像格式有:TIF、JPG、BMP、TGA、PCX、PCT、GIF、CAL、RAS、OIF、PCD等運(yùn)行FORM時,如何使按鈕變灰(即無效)?set_item_property(按鈕名稱,ENABLED,PROPERTY_FALSE);FORM中,設(shè)置應(yīng)用特性(光標(biāo)類型)在Form級觸發(fā)器中添加觸發(fā)WHEN-NEW-FORM-INSTANCESET_APPLICATION_PROPERTY(CURSOR_STYLE,CROSSHAIR

38、|BUSY|HELP|DEFAULT|INSERTION);運(yùn)行FORM時,如何使窗口(runtime窗口、畫布窗口)自動變成最大化、最小化?在Form級觸發(fā)器中添加觸發(fā)WHEN-NEW-FORM-INSTANCE在此觸發(fā)器中寫如下代碼:SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW,WINDOW_STATE,MAXIMIZE);-最大化SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW,WINDOW_STATE,MINIMIZE);-最小化FORM中,WINDOW標(biāo)題的設(shè)置在Form級觸發(fā)器中添加觸發(fā)WHEN-NEW-FORM-INSTANCE

39、SET_WINDOW_PROPERTY(FORMS_MDI_WINDOW, title,你要寫的標(biāo)題);或用以下方法2. 對象導(dǎo)航器窗口WINDOW0(窗口的名字)屬性標(biāo)題修改其屬性FORM中,Exception(例外)都有哪些,如何書寫?BEGINPL/SQL塊;Exceptionwhen no_data_found then-沒有找到數(shù)據(jù)響應(yīng)命令;when too_many_rows then-返回多行,隱式光標(biāo)每次只能檢索一行數(shù)據(jù)響應(yīng)命令;when invalid_number then-字符向數(shù)字轉(zhuǎn)換失敗響應(yīng)命令;when zero_divide then-被零除響應(yīng)命令;when d

40、up_val_on_index then-向唯一索引中插入重復(fù)數(shù)據(jù)響應(yīng)命令;when invalid_cursor then-非法游標(biāo)操作響應(yīng)命令;when value_error then-數(shù)字的,數(shù)據(jù)轉(zhuǎn)換,截字符串或強(qiáng)制性的錯誤響應(yīng)命令;when others then-發(fā)生其它任何錯誤null;-選擇一:什么也不做,就當(dāng)錯誤沒發(fā)生raise form_trigger_failure;-選擇二:掛起當(dāng)前程序END;如何在FORM運(yùn)行中,使定制菜單中的“窗口(W)”菜單項不顯示?對象導(dǎo)航器窗口WINDOW0(窗口的名字)屬性模式修改其屬性 設(shè)置窗口屬性:模式=是FORM中,如何屏蔽默認(rèn)的功能

41、鍵?1. 在Form級觸發(fā)器中添加觸發(fā)KEY-OTHERS2. 在此觸發(fā)器中寫如下代碼: null;3. 如此FORM程序運(yùn)行后,大部分的功能鍵都被屏蔽(包括一些必需鍵,如:上箭頭、下箭頭、退出.), 要想讓這些鍵再恢復(fù)功能,就為這些鍵各自編程: 按鍵觸發(fā)器代碼 講明 上箭頭KEY-DOWNDOWN; 上滾記錄 下箭頭KEY-UPUP; 下滾記錄 Page Up KEY-SCRUP SCROLL_UP;上翻屏 Page Down KEY-SCRDOWN SCROLL_DOWN;下翻屏 F1KEY-HELPHELP; 顯示關(guān)心 F3KEY-DUP-ITEMDUPLICATE_ITEM; 復(fù)制項

42、F4KEY-DUPRECDUPLICATE_RECORD; 復(fù)制記錄 F5KEY-MENUBLOCK_MENU; 塊導(dǎo)航菜單 F6KEY-CRERECCREATE_RECORD;插入記錄 F7KEY-ENTQRYENTER_QUERY;輸入查詢條件 F8KEY-EXEQRYEXECUTE_QUERY;運(yùn)行查詢 F9KEY-LISTVAL LIST_VALUES;顯示LOV F10 KEY-COMMITCOMMIT; 存盤 Enter、TabKEY-NEXT-ITEM NEXT_ITEM;下一項 SHIFT+TAB KEY-PREV-ITEM PREVIOUS_ITEM;前一項 Ctrl+QKE

43、Y-EXITEXIT_FORM;退出/取消查詢FORM中,觸發(fā)子exit_form的兩種功能是什么?1、退出FORM exit_form;2、取消查詢 if :System.Mode = ENTER-QUERY then exit_form; end if;FORM中如何存取圖象?如何把圖象從一個表中導(dǎo)到另一個表中?1、SQL*Plus中SQL create table t_photo1(photo1 long raw);SQL create table t_photo2(photo2 long raw);2、硬盤上c:下有一個圖象文件tmp.bmp3、打開FORM新建兩個塊:t_photo1

44、、t_photo2t_photo1塊是數(shù)據(jù)庫塊,連接的表是數(shù)據(jù)庫中的一個表t_photo1t_photo2塊也是數(shù)據(jù)庫塊,連接的表是數(shù)據(jù)庫中的另一個表t_photo2(備份表)t_photo1塊上新建一個圖象項,名為photo1,對應(yīng)的是即表t_photo1中的photo1列t_photo2塊上也新建一個圖象項,名為photo2,對應(yīng)的是即表t_photo2中的photo2列新建一按鈕1,輸入以下程序,那個按鈕實現(xiàn)讀入圖象到表里,即錄入圖象到表里BEGINGO_BLOCK(t_photo1);-到塊1READ_IMAGE_FILE(c:tmp.bmp,bmp,t_photo1.photo1);

45、-讀入外部圖象文件tmp.bmp(圖象類型為BMP)到t_photo1塊的photo1項,也確實是到了t_photo1表里COMMIT;-存盤END;新建一按鈕2,輸入以下程序,那個按鈕實現(xiàn)圖象的倒表(t_photo1到t_photo2)BEGINGO_BLOCK(t_photo1);-到塊1execute_query;-查詢出表中的圖象,這時,表中的圖象到了FORM中的圖象項上WRITE_IMAGE_FILE(c:tmp.bmp,bmp,t_photo1.photo1);-把圖象項中圖象寫入外部圖象文件tmp.bmpGO_BLOCK(t_photo2);-到塊2READ_IMAGE_FILE

46、(c:tmp.bmp,bmp,t_photo2.photo2);-把外部圖象文件tmp.bmp讀入到t_photo2塊的photo2項,也確實是到了t_photo2表里COMMIT;-存盤END;運(yùn)行此程序,點(diǎn)擊此按鈕觀看效果。注釋:t_photo1.photo1是正式圖片表中的圖象項(數(shù)據(jù)庫項)(t_photo1塊photo項1) t_photo2.photo2是備份圖片表中的圖象項(數(shù)據(jù)庫項)(t_photo2塊photo項2)FORM中如何存取聲音?硬盤上c:下有一個聲音文件tmp.wav打開FORM新建一個塊:t_soundt_sound塊上新建一個聲音項,名為sound1新建一按鈕1

47、,輸入以下程序BEGINGO_ITEM(sound1);READ_SOUND_FILE(c:tmp.wav,wave,sound1);PLAY_SOUND(sound1);END;運(yùn)行此程序,點(diǎn)擊此按鈕觀看效果。FORM中,當(dāng)用鼠標(biāo)點(diǎn)擊標(biāo)簽畫布的某一“標(biāo)簽頁”時,如何推斷點(diǎn)擊的是哪一頁?1. 在Form級觸發(fā)器中添加觸發(fā)WHEN-TABCHANGED2. 在此觸發(fā)器中寫如下代碼:DECLAREcanvas_id VARCHAR2(30);-標(biāo)簽頁IDBEGINcanvas_id := GET_CANVAS_PROPERTY(標(biāo)簽畫布名, topmost_tab_page);IF canvas_

48、id=標(biāo)簽頁1 then go_block(塊1);end if;IF canvas_id=標(biāo)簽頁2 then go_block(塊2);end if;IF canvas_id=標(biāo)簽頁3 then go_block(塊3);end if;execute_query;END;FORM中,常用快捷鍵有哪些?CTRL+S保存CTRL+T編譯文件CTRL+R運(yùn)行FORMCTRL+J連接F1調(diào)用關(guān)心F2布局編輯器F4屬性選項板如何公布Developer/2000應(yīng)用程序?FORM中,點(diǎn)擊按鈕實現(xiàn)字段排序?什么緣故在觸摸屏上,我的按紐不響應(yīng)我的“按”動作? 什么緣故我的FMX程序里沒有Message li

49、ne? FORM中,如何設(shè)置水平滾動條? FORM中,觸發(fā)子POST-CHANGE的作用 FORM中,觸發(fā)子WHEN-VALIDATE-ITEM的作用 FORM中,觸發(fā)子POST-QUERY的作用 如何樣在form中使用宏? 在 早 期FOXPRO 數(shù) 據(jù) 庫 編 程 中, 經(jīng) 常 用 到 宏 代 換 功 能, 但 在FORMS 中 卻 沒 有 此 功 能, 象&,* 等 在 編 程 中 經(jīng) 常 用 到 的, 在FORMS 中 只 得 一 行 一 行 代 碼 的 寫, 但 后 來 發(fā) 現(xiàn)FORMS 中 也 有 類 似 功 能, 用NAME_IN()、COPY() 可 以 實 現(xiàn) 類 似 的 功

50、 能。Name_in() 用 于 取 出 參 數(shù) 名 代 表 的 對 象 了 數(shù) 值, 而COPY() 把 一 個 參 數(shù) 值 傳 遞 給 另 一 參 數(shù) 值 表 示 的 對 象。 的 如 下 例: FORM 結(jié) 構(gòu): 塊B 項 L1,L2,L3,L4,L5,L6 在 作 錄 入 程 序 時 要 對L1。L6 項 清 零 DELCATE strItemName varchar2(20);BEGIN for I in 1 6 loop strItemName:=:b.l|to_char(i); copy(null,strItemNmae); end loop; END; 對 于NAME_IN 的

51、 應(yīng) 用 可 能 更 多 一 些, 筆 者 在 做 社 保 軟 件 時, 作 保 險 繳 費(fèi) 錄 入 時 曾 用 它 少 寫 了 許 多 代 碼。 當(dāng) 然 代 碼 的 減 少 就 義 意 味 維 護(hù) 工 作 量 的 減 少 FORM結(jié)構(gòu):養(yǎng)老: 塊:YLYJ(養(yǎng)老應(yīng)繳) 項:DWJTC(單位繳統(tǒng)籌),DWJZH(單位繳帳戶),GRJF(個人繳費(fèi)) 塊:YLSJ (養(yǎng)老實繳) 項:DWJTC(單位繳統(tǒng)籌),DWJZH(單位繳帳戶),GRJF(個人繳費(fèi))工傷: 塊:GSYJ(工傷應(yīng)繳) 項:DWJTC(單位繳統(tǒng)籌),DWJZH(單位繳帳戶),GRJF(個人繳費(fèi)) 塊:GSSJ (工傷實繳) 項:D

52、WJTC(單位繳統(tǒng)籌),DWJZH(單位繳帳戶),GRJF(個人繳費(fèi))醫(yī)療: 塊:YILYJ(醫(yī)療應(yīng)繳) 項:DWJTC(單位繳統(tǒng)籌),DWJZH(單位繳帳戶),GRJF(個人繳費(fèi)) 塊:YILSJ (醫(yī)療實繳) 項:DWJTC(單位繳統(tǒng)籌),DWJZH(單位繳帳戶),GRJF(個人繳費(fèi)) 三 個 塊 的 結(jié) 構(gòu) 相 同, 只 是 塊 名 稱 不 同, 繳 費(fèi) 時 時 行 的 操 作 也 一 樣, 實 繳 名 項 不 能 大 于 應(yīng) 繳, 不 用NAME_IN 時, 只 能 寫 三 段 程 序, 但 用 了NAME_IN 后 只 用 一 段 寫 一 個 函 數(shù) 就 能 達(dá) 到 目 的。 如 下

53、: FUNCTION FUN_JF (PRE_BLOCK_NAME IN VARCHAR) RETURN BOOLEAN IS BEGINif name_in(pre_block_name|sj.dwjtc) name_in(pre_block_name|yj.dwjtc) or name_in(pre_block_name|sj.dwjzh) name_in(pre_block_name|yj.dwjzh) or name_in(pre_block_name|sj.grjf) name_in(pre_block_name|yj.grjf) then message( 實 繳 大 于 應(yīng) 繳)

54、; return false;end if;return true; END; 從 上 面 的 兩 個 例 子 來 看NAME_IN 和COPY 的 應(yīng) 用 能 起 到 其 它 編 程 語 言 的 宏 代 換 功 能, 代 碼 的 優(yōu) 化 方 面 確 實 能 起 不 少 的 作 用, 減 少 了 程 序 源 代 碼 的 維 護(hù) 工 作。 Oracle中Forms與Reports的集成Oracle產(chǎn)品Developer 2000中包括多種開發(fā)工具,其中在具體工作時用得最多的是Forms和Reports。Forms是一個設(shè)計表單的工具,利用它能夠靈活方便地定義各種表單對象,以簡化用戶在運(yùn)行期對相關(guān)

55、數(shù)據(jù)庫的操作(查詢、插入、刪除和更新等);Reports則是一個設(shè)計報表的工具,利用它能夠按照用戶的要求方便地生成報表。在Oracle應(yīng)用系統(tǒng)中,大量的具有交互性的功能是由Forms實現(xiàn)的。利用Forms所生成的表單模塊能夠彼此調(diào)用,實現(xiàn)業(yè)務(wù)流程的操縱并完成與數(shù)據(jù)庫有關(guān)的復(fù)雜操作;而由Reports所設(shè)計的報表模塊往往當(dāng)做最底層的功能被表單模塊所調(diào)用。關(guān)于一些Oracle用戶來講,獨(dú)立地用好Forms或Reports是沒有問題的,但他們卻專門少考慮如何使二者有機(jī)地結(jié)合起來,利用Forms對數(shù)據(jù)操縱的靈活性,由Forms模塊向Reports模塊傳送大量結(jié)構(gòu)化或非結(jié)構(gòu)化的實時數(shù)據(jù),減少(或幸免)R

56、eports對數(shù)據(jù)庫的訪問,從而高速地生成報表并保證報表數(shù)據(jù)與表單數(shù)據(jù)的一致性。本文通過實例介紹一種利用Forms的封裝例程RUN_PRODUCT( )在Forms模塊中集成Reports模塊的方法,利用該方法能夠把Forms和Reports有機(jī)地結(jié)合起來,減少不必要的操作,提高工作效率。RUN_PRODUCT例程 在Forms模塊中調(diào)用Reports模塊,最有效的方法是利用Forms的封裝例程RUN_PRODUCT()。目前,專門多程序開發(fā)人員在Forms模塊中調(diào)用Reports模塊時,或者沒有采納這一例程,或者盡管采納這一例程但并沒有充分利用參數(shù)表來傳遞表單中現(xiàn)成的數(shù)據(jù),或者只是利用參數(shù)表

57、來傳遞少量的文本參數(shù)(非結(jié)構(gòu)化數(shù)據(jù))作為Reports中的查詢條件,報表的數(shù)據(jù)仍然要從數(shù)據(jù)庫中查詢得到,如此既增加了數(shù)據(jù)庫服務(wù)器的負(fù)載,又增加了網(wǎng)絡(luò)的流量,而且報表生成的速度慢,喪失了數(shù)據(jù)的實時性與一致性。因此,深入了解并熟練掌握參數(shù)表的使用方法便顯得特不重要。在使用RUN_PRODUCT( )之前要先建立參數(shù)表,并向參數(shù)表中添加參數(shù)。RUN_PRODUCT( )的使用格式如下: RUN_PROCDUT(REPORTS, report_name, SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, NULL); 其中各參數(shù)含義如下: REPORTS:講明被調(diào)模塊是

58、報表模塊; report_name:被調(diào)模塊的完整路徑名; SYNCHRONOUS: 講明被調(diào)模塊以同步的通信方式運(yùn)行(被調(diào)模塊退出之后主調(diào)模塊才能接著執(zhí)行,否則為ASYNCHRONOUS,即異步方式); RUNTIME:講明被調(diào)模塊的執(zhí)行方式為前臺方式(否則為BATCH,即后臺方式); FILESYSTEM:講明被調(diào)模塊的存儲位置是文件系統(tǒng)(否則為DATABASE,即數(shù)據(jù)庫系統(tǒng)); pl_id:用戶定義的參數(shù)表標(biāo)識符。 使用參數(shù)表的要領(lǐng) 由Forms模塊向Reports模塊傳遞的數(shù)據(jù)可分為兩類:一類是非結(jié)構(gòu)化數(shù)據(jù),即報表表頭(表尾)的數(shù)據(jù);另一類是結(jié)構(gòu)化數(shù)據(jù),即報表表目的二維數(shù)據(jù)。在如圖1所

59、示的報表中,學(xué)年、學(xué)期、班級編號、班級名稱、專業(yè)名稱、課程編號、課程名稱、學(xué)分、班級人數(shù)等,屬于表頭數(shù)據(jù);而學(xué)號、姓名、性不、修讀性質(zhì)、平常成績、考試成績、總評成績、任課教師等屬于表目數(shù)據(jù)。 圖1 Reports模塊執(zhí)行情況參數(shù)表中的參數(shù)有兩種,文本參數(shù)(TEXT_PARAMETER)和數(shù)據(jù)參數(shù)(DATA_PARAMETER)。文本參數(shù)是對字符型數(shù)據(jù)的引用,數(shù)據(jù)參數(shù)是對記錄組的引用。關(guān)于非結(jié)構(gòu)化數(shù)據(jù),可借文本參數(shù)將數(shù)據(jù)加入?yún)?shù)表(注意:文本參數(shù)只同意字符型數(shù)據(jù),關(guān)于其他類型的數(shù)據(jù)要通過TO_CHAR( )函數(shù)先轉(zhuǎn)化為字符型數(shù)據(jù));而關(guān)于結(jié)構(gòu)化數(shù)據(jù),則先要將數(shù)據(jù)存入記錄組(RECORD_GROU

60、P),然后借數(shù)據(jù)參數(shù)才能將數(shù)據(jù)加入到參數(shù)表中。注意:Forms模塊的記錄組中的各列和Reports模塊中的查詢(QUERY)對象的各列在名稱、類型和順序上要完全一致。那個地點(diǎn)文本參數(shù)是字符串指針,數(shù)據(jù)參數(shù)是記錄組(結(jié)構(gòu)數(shù)組)的指針,而參數(shù)表則是存儲上述指針的指針數(shù)組。假如RUN_PRODUCT( )的參數(shù)表中未加入與Reports模塊中的查詢對象同名的數(shù)據(jù)參數(shù),則Reports 從數(shù)據(jù)庫中查找與其模塊中的查詢對象相匹配的數(shù)據(jù);假如RUN_PRODUCT( ) 的參數(shù)表中加入了與Reports模塊中的查詢對象同名的數(shù)據(jù)參數(shù),則Reports 并不從數(shù)據(jù)庫中查找數(shù)據(jù),而是以參數(shù)表中的同名數(shù)據(jù)參數(shù)所

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論