變量、作用域子程序數(shù)據(jù)庫(kù)與視圖_第1頁(yè)
變量、作用域子程序數(shù)據(jù)庫(kù)與視圖_第2頁(yè)
變量、作用域子程序數(shù)據(jù)庫(kù)與視圖_第3頁(yè)
變量、作用域子程序數(shù)據(jù)庫(kù)與視圖_第4頁(yè)
變量、作用域子程序數(shù)據(jù)庫(kù)與視圖_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

一、內(nèi)存變量?jī)?nèi)存變量是在內(nèi)存中用于存放數(shù)據(jù)的臨時(shí)工作單元,與數(shù)據(jù)庫(kù)和表獨(dú)立。1.創(chuàng)建內(nèi)存變量格式:STORE<表達(dá)式>TO<內(nèi)存變量表>功能:計(jì)算<表達(dá)式>的值并賦值給變量表的所有內(nèi)存變量。Store命令Store0tox,y,z變量格式:<內(nèi)存變量>=<表達(dá)式>功能:計(jì)算<表達(dá)式>的值并賦值給內(nèi)存變量。=命令x=0y=0z=0Input

[提示信息]

to

<內(nèi)存變量>Accept

[提示信息]

to

<內(nèi)存變量>Wait

[提示信息][to

<內(nèi)存變量>]2.顯示表達(dá)式的值格式:?/??

[<表達(dá)式1>[AT<列號(hào)1>][,<表達(dá)式2>[AT<列號(hào)2>],……]]功能:計(jì)算表達(dá)式的值,并在屏幕上指定列顯示輸出表達(dá)式的值。?/??命令?:在下一行的行首顯示表達(dá)式的值。??:在屏幕的當(dāng)前位置顯示表達(dá)式的值。3.

內(nèi)存變量的保存當(dāng)退出vfp系統(tǒng)后,用戶所建立的內(nèi)存變量將不會(huì)存在,但可以使用命令將用戶所建立的有用的內(nèi)存變量保存到內(nèi)存變量文件中。格式:SAVETO<內(nèi)存變量文件名>[ALLLIKE<通配符>/ALLEXCEPT<通配符>]功能:將當(dāng)前內(nèi)存中的內(nèi)存變量存放到內(nèi)存變量文件中。ALLLIKE<通配符>:只保存符合通配符條件的所有變量;ALLEXCEPT<通配符>:只保存不符合通配符條件的所有變量。4.內(nèi)存變量的恢復(fù)命令格式:RESTOREFROM<內(nèi)存變量文件名>[ADDITIVE]功能:重新使用已保存在內(nèi)存變量文件中的內(nèi)存變量ADDITIVE:省略此項(xiàng),清除內(nèi)存所有變量后再恢復(fù)文件中變量的信息;加選此項(xiàng),將變量文件中的變量信息追加到內(nèi)存現(xiàn)有變量信息中。5.內(nèi)存變量的刪除格式一:CLEARMEMORY格式二:RELEASE<內(nèi)存變量名表>格式三:RELEASEALL[LIKE/EXCEPT<通配符>]功能:格式1刪除內(nèi)存中所有內(nèi)存變量;格式2刪除內(nèi)存變量名表中指定的內(nèi)存變量;格式3利用通配符選擇刪除內(nèi)存變量。1.數(shù)組的定義格式:DIMENSION<數(shù)組名1>(<數(shù)值表達(dá)式1>[,<數(shù)值表達(dá)式2>])[,<數(shù)組名2>(<數(shù)值表達(dá)式3>[,<數(shù)值表達(dá)式4>])……]說(shuō)明:①數(shù)組必須先定義后使用,定義數(shù)組是向系統(tǒng)申請(qǐng)數(shù)組元素在內(nèi)存中的存儲(chǔ)空間。②下標(biāo)可以是常數(shù)、變量或表達(dá)式,下標(biāo)值的最小值為1。如:A(5),A(i+3)。③定義數(shù)組時(shí),數(shù)組中元素的初始值為.F.。二、數(shù)組(1)一維數(shù)組的建立①定義一個(gè)名字為a,具有5個(gè)數(shù)組元素的一維數(shù)組。

dimensiona(5)②一維數(shù)組a(5)的邏輯結(jié)構(gòu)圖:③一維數(shù)組a(5)的存儲(chǔ)結(jié)構(gòu)圖:a(1)a(2)a(3)a(4)a(5)a(1)a(2)a(3)a(4)a(5)2.數(shù)組的建立(2)二維數(shù)組的建立①定義一個(gè)名字為b,具有6個(gè)數(shù)組元素(2行3列)的二維數(shù)組。

dimensionb(2,3)②二維數(shù)組b(2,3)的邏輯結(jié)構(gòu)圖:③二維數(shù)組b(2,3)的存儲(chǔ)結(jié)構(gòu)圖:b(1,1)b(1,2)b(1,3)b(2,1)b(2,2)b(2,3)b(1,1)b(1,2)b(1,3)b(2,1)b(2,2)b(2,3)在VFP中,可以用一維數(shù)組的格式來(lái)訪問(wèn)二維數(shù)組,其對(duì)應(yīng)關(guān)系如下:b(1,1)=b(1)b(1,2)=b(2)……b(2,3)=b(6)3.數(shù)組的賦值(1)定義數(shù)組時(shí)賦值

Dimensiona(5),b(2,3)數(shù)組a,b中所有元素被初始化為.F.,數(shù)組的存儲(chǔ)狀態(tài)如下所示:.F..F..F..F..F.a(1)a(2)a(3)a(4)a(5)數(shù)組ab(1,1)b(1,2)b(1,3)數(shù)組b.F..F..F..F..F..F.b(2,1)b(2,2)b(2,3)(2)用store或=命令給數(shù)組賦值。①給數(shù)組的所有元素賦值◆用store命令給數(shù)組a,b賦值store0toa,b◆用=命令給數(shù)組a,b賦值a=0b=0數(shù)組的存儲(chǔ)狀態(tài)如下所示:00000a(1)a(2)a(3)a(4)a(5)數(shù)組ab(1,1)b(1,2)b(1,3)數(shù)組b000000b(2,1)b(2,2)b(2,3)②給數(shù)組的個(gè)別元素賦值◆用store命令給數(shù)組a,b的元素賦值store0toa(2),a(3),b(1,2),b(2,1),b(2,3)◆用=命令給數(shù)組a,b的元素賦值a(2)=0a(3)=0b(1,2)=0b(2,1)=0b(2,3)=0數(shù)組的存儲(chǔ)狀態(tài)如下所示:.F.00.F..F.a(1)a(2)a(3)a(4)a(5)數(shù)組ab(1,1)b(1,2)b(1,3)數(shù)組b.F.0.F.0.F.0b(2,1)b(2,2)b(2,3)表與數(shù)組的數(shù)據(jù)交換命令說(shuō)明舉例SCATTERTO傳送當(dāng)前記錄到數(shù)組scattertoa&&將當(dāng)前記錄的值傳送到數(shù)組aGATHERFROM傳送數(shù)組到當(dāng)前記錄gatherfroma

&&將數(shù)組a的值傳送到當(dāng)前記錄COPYTOARRAY傳送多條記錄到數(shù)組copytoarraya

&&將所有記錄傳送到數(shù)組aAPPENDFROMARRAY從數(shù)組追加多條記錄appendfromarraya&&將數(shù)組a追加到當(dāng)前表1.表到數(shù)組的數(shù)據(jù)傳遞命令SCATTERTO<數(shù)組>

[FIELDS<字段表>]功能將當(dāng)前記錄的值依次傳送到數(shù)組。2.數(shù)組到表的數(shù)據(jù)傳遞命令GATHERFROM

<數(shù)組>

[FIELDS<字段表>]功能將數(shù)組的值依次傳送到當(dāng)前記錄。一、單條記錄的傳遞[e.g.1-12]從表傳遞數(shù)據(jù)到數(shù)組。use選課dimensiona(3)go3scattertoafields學(xué)號(hào),成績(jī)學(xué)號(hào)課程號(hào)成績(jī)S0201101C13090S0201101C11080S0201102C15066S0201102C12087S0201201C13094.F..F..F.選課.DBF數(shù)組Aa(1)a(2)a(3)S020110266.F.[e.g.1-13]從數(shù)組傳遞數(shù)據(jù)到表。use選課dimensiona(3)a(1)="S0201202"a(2)=100go3gatherfromafields學(xué)號(hào),成績(jī)學(xué)號(hào)課程號(hào)成績(jī)S0201101C13090S0201101C11080S0201102C15066S0201102C12087S0201201C13094S0201202100.F.選課.DBF數(shù)組Aa(1)a(2)a(3)學(xué)號(hào)課程號(hào)成績(jī)S0201101C13090S0201101C11080S0201202C150100S0201102C12087S0201201C13094二、多條記錄的傳遞1.表到數(shù)組的數(shù)據(jù)傳遞命令COPYTOARRAY

<數(shù)組>

[FIELDS

<字段表>]

[<范圍>][FOR<條件1>][WHILE

<條件2>]功能將選定的記錄依次傳送到數(shù)組。默認(rèn)范圍ALL2.數(shù)組到表的數(shù)據(jù)傳遞命令A(yù)PPENDFROMARRAY<數(shù)組> [FIELDS<字段表>][FOR<條件>]功能將數(shù)組的每行作為一條記錄依次追加到當(dāng)前表。[e.g.1-14]從表傳遞數(shù)據(jù)到數(shù)組。use選課dimensiona(2,3)copytoarraya學(xué)號(hào)課程號(hào)成績(jī)S0201101C13090S0201101C11080S0201102C15066S0201102C12087S0201201C13094選課.DBF數(shù)組A.F..F..F..F..F..F.S0201101C13090S0201101C11080[e.g.1-15]從數(shù)組傳遞數(shù)據(jù)到表。use選課dimensiona(2,3)a(1,1)="S0201202"a(1,2)="C140"a(1,3)=50a(2,1)="S0201202"a(2,2)="C150"a(2,3)=100appendfromarraya學(xué)號(hào)課程號(hào)成績(jī)S0201101C13090S0201101C11080S0201102C15066S0201102C12087S0201201C13094選課.DBF數(shù)組AS0201202C14050S0201202C150100學(xué)號(hào)課程號(hào)成績(jī)S0201101C13090S0201101C11080S0201102C15066S0201102C12087S0201201C13094S0201202C14050S0201202C150100?1.閱讀下面程序

USECJS=0DOWHILENOTEOF()SCATTERTOXCJFIELDS大學(xué)語(yǔ)文,大學(xué)英語(yǔ),法律基礎(chǔ),計(jì)算機(jī)基礎(chǔ)

NG=0

FORI=1TO4

IFXCJ(I)<60NG=NG+1

ENDIF

ENDFOR

IFNG>=2S=S+1DELETE

ENDIFSKIPENDDO?SUSE(1)本程序中記錄被邏輯刪除的條件是(C)[A]有兩門(mén)課程成績(jī)低于60的記錄[B]1-4號(hào)記錄[C]有兩門(mén)及以上課程成績(jī)低于60的記錄[D]記錄號(hào)大于2的記錄(2)程序最后輸出的S的值是(B)[A]2 [B]3 [C]4 [D]7(3)退出DO-WHILE循環(huán)后,NG的值是(A)[A]0 [B]1 [C]2 [D]31、基本概念(1)主程序:被直接執(zhí)行的程序(也是最早被執(zhí)行的程序)。(2)子程序:被別的程序調(diào)用的程序,每個(gè)子程序都保存在一個(gè)獨(dú)立的程序文件中。(3)過(guò)程:與子程序相似,但多個(gè)過(guò)程可保存在同一個(gè)過(guò)程文件(PRG)中?!熳映绦?、過(guò)程、自定義函數(shù)及過(guò)程文件(PRG)在程序設(shè)計(jì)過(guò)程中,經(jīng)常把能夠完成一個(gè)特定功能的程序編寫(xiě)成一個(gè)過(guò)程,作為一個(gè)模塊。以便在其它程序中使用該功能時(shí)調(diào)用該程序。這種可以完成一個(gè)特定功能的程序稱為子程序、過(guò)程或自定義函數(shù)。2、程序調(diào)用Do<子程序>|<過(guò)程>*Main.prg

……

dos1……*S1.prg

……

dos2……Return*S2.prg

……

……Return子程序調(diào)用演示圖:*Main.prg

……

dos1……*S1.prg

……

dos2……Return*S2.prg

……

……Returntomaster子程序調(diào)用演示圖:6、過(guò)程文件(1)定義由多個(gè)過(guò)程組成的文件稱為過(guò)程文件。(2)基本格式Procedure<過(guò)程名1><語(yǔ)句序列1>Return[tomaster|<過(guò)程名>]

:::Procedure<過(guò)程名n><語(yǔ)句序列1>Return[tomaster|<過(guò)程名>](3)使用①打開(kāi)過(guò)程文件命令格式:Setprocedureto<過(guò)程文件名>②調(diào)用過(guò)程命令格式:Do<過(guò)程名>

Do<過(guò)程名>with<實(shí)參表>③關(guān)閉過(guò)程文件格式一:Setprocedureto格式二:Closeprocedure說(shuō)明:系統(tǒng)在任何時(shí)候只能打開(kāi)一個(gè)過(guò)程文件,當(dāng)打開(kāi)新的過(guò)程文件時(shí)將關(guān)閉原來(lái)的打開(kāi)過(guò)程文件。?總結(jié):(子程序與過(guò)程的使用)子程序:Sub.prg

::Return過(guò)程文件:Proc.prgProcedurep1

:ReturnProcedurep2

:Return主程序:Main.prg

:Dosub

:Setproceduretoproc

:Dop1

:Dop2

:Setprocedureto★變量的作用域、參數(shù)的傳遞變量的作用域(黑板)1、主從性2、全局變量:PUBLIC3、私有變量(變量屏蔽)局部變量:PRIVATE4、本地變量:LOCALMainA=“人民”B=1Dosub1?A,B,CSub1?A,BA=date()B=B+BC=.t.?A,B,CRETUMainA=“人民”B=1Dosub1?A,BSub1?A,BA=date()B=B+B?A,BRETUSub2?A,BA=“QQ”B=.F.?A,BRETUMainA=“人民”B=1Dosub1?A,BSub1?A,BA=date()B=B+B?A,BRETUSub2?A,BA=“QQ”B=.F.Dosub3?A,BRETUSub3?A,BA=6B=.F..and.B?A,BRETU參數(shù)的傳遞性

*主程序main.prg*子程序sub.prgclearallparan,facs=0/i=1forj=1tondowhilei<=5fac=fac*jtemp=1nextdosubwithi,temps=s+temp/i=i+2enddoenddo/?s子程序sub.prg被主程序main.prg調(diào)用的次數(shù)為(34)34(A)5(B)4(C)3(D)2執(zhí)行主程序main.prg輸出的結(jié)果S為(35)35(A)120(B)127(C)9(D)3

⒊閱讀下面的程序:*主程序ABC.PRG*過(guò)程文件SUB1.PRGCLEARPARAMETERSE,F,GA=”P(pán)ARA”E=E+”METERS”B=CTOD(“08/20/09”)F=YEAR(F)C=.T.G=GAND.T./RETUDOSUB1WITHA,B,C*過(guò)程SUB2.PRGDOSUB2PRIVATEA?A,B,C/RETUA=”CALL”/C=.NOT.C?A,B,C/RETU過(guò)程SUB2的輸出“?A,B,C”為(31)31(A)CALL2009.F.(B)CALL2009.T.(C)PARA2009.F.(D)PARA2009.T.主程序ABC的輸出“?A,B,C”為(32)32(A)PARA2009.F.(B)PARA2009.T.(C)PARAMETERS2009.F.(D)PARAMETERS2009.T.

數(shù)據(jù)庫(kù)與視圖§數(shù)據(jù)庫(kù)一、數(shù)據(jù)庫(kù)在VisualFoxPro中,數(shù)據(jù)庫(kù)主要用于管理:表、視圖、存儲(chǔ)過(guò)程和連接。除表外,其他對(duì)象必須存儲(chǔ)于數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)表存放在數(shù)據(jù)庫(kù)中的表稱為數(shù)據(jù)庫(kù)表,數(shù)據(jù)庫(kù)表可以設(shè)置字段屬性、記錄規(guī)則、永久關(guān)系以及參照完整性。視圖視圖是一種虛擬表,利用視圖可以把分散在相關(guān)表中的數(shù)據(jù)收集到一起。存儲(chǔ)過(guò)程存儲(chǔ)過(guò)程用于創(chuàng)建用戶自定義函數(shù),在數(shù)據(jù)庫(kù)表的字段級(jí)有效性規(guī)則和記錄級(jí)有效性規(guī)則可以引用這些函數(shù)。連接使用連接對(duì)象可以通過(guò)ODBC(開(kāi)放式數(shù)據(jù)庫(kù)互連)與遠(yuǎn)程數(shù)據(jù)庫(kù)相連,創(chuàng)建遠(yuǎn)程視圖,使用后臺(tái)數(shù)據(jù)庫(kù)。二、數(shù)據(jù)庫(kù)的基本操作創(chuàng)建數(shù)據(jù)庫(kù)CREATEDATABASE

<數(shù)據(jù)庫(kù)文件名>打開(kāi)數(shù)據(jù)庫(kù)OPENDATABASE

<數(shù)據(jù)庫(kù)文件名>修改數(shù)據(jù)庫(kù)MODIFYDATABASE

<數(shù)據(jù)庫(kù)文件名>關(guān)閉數(shù)據(jù)庫(kù)CLOSEDATABASES[ALL]添加數(shù)據(jù)庫(kù)表ADDTABLE<表文件名>移除數(shù)據(jù)庫(kù)表REMOVETABLE

<表文件名>

[DELETE]§數(shù)據(jù)庫(kù)表的關(guān)聯(lián)一、永久關(guān)系永久關(guān)系是保存在數(shù)據(jù)庫(kù)中的、數(shù)據(jù)庫(kù)表之間的一種關(guān)系,只有在數(shù)據(jù)庫(kù)表中創(chuàng)建了索引,才能建立永久關(guān)系。一對(duì)一關(guān)系父表與子表都使用主索引或侯選索引。一對(duì)多關(guān)系父表使用主索

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論