Táblaobjektum referencia

Verzió: 2.1.00

2001. február 17.

1.  tabAddColumn(table,column)
2.  tabAddIndex(table,index)
3.  tabAlias(table,symbol)
4.  tabALock(table,recarr,userblock)
5.  tabAppend(table,userblock,flag)
6.  tabAppendFrom(table,fileName,fieldList)
7.  tabAppendRecord(table,tabfrom,usrblk,flag)
8.  tabAutoUpgrade(table)
9.  tabBackup(table)
10.  tabBlock(table,col,block)
11.  tabBrowse(table,top,left,bottom,right,def)
12.  tabClose(table)
13.  tabCloseAll()
14.  tabColNumber(table,colName)
15.  tabColumn(table)
16.  tabCommit(table)
17.  tabCommitAll(table)
18.  tabControl(tab,ord)
19.  tabControlIndex(table,ord)
20.  tabCopyTo(table,fileName,fieldList)
21.  tabCreate(table,userblock)
22.  tabDataExt(table)
23.  tabDelete(table)
24.  tabDeleted(table)
25.  tabDelIndex(table)
26.  tabDelTable(table)
27.  tabDestruct(table)
28.  tabDropIndex(table)
29.  tabEof(table)
30.  tabEvalColumn(table,col,exp)
31.  tabExt(table,par)
32.  tabFcount(table)
33.  tabFile(table,fname)
34.  tabFilter(table,filter)
35.  tabFound(table)
36.  tabGetColumn(table,col)
37.  tabGetIndex(table,ind)
38.  tabGoBottom(table)
39.  tabGoto(table,recno)
40.  tabGoTop(table)
41.  tabIndex(table,index)
42.  tabIndexExt()
43.  tabIndexName(table)
44.  tabInsert(table,key,userblock,flag)
45.  tabIsLocked(table)
46.  tabIsOpen(table)
47.  tabLastRec(table)
48.  tabLoadDBF(table,dbf)
49.  tabLock(table,userblock)
50.  tabLockList(table)
51.  tabMAppend(table,userblock)
52.  tabMemoExt()
53.  tabMemoName(table)
54.  tabMLock(table,recno,userblock)
55.  tabNameExt(table)
56.  tabObjectList()
57.  tabOpen(table,mode,userblock)
58.  tabPack(table)
59.  tabPath(table,path)
60.  tabPathName(table)
61.  tabPercent(table,percent)
62.  tabPicture(table,col,pict)
63.  tabPosition(table)
64.  tabRename(table,name)
65.  tabRestore(table,state)
66.  tabRLock(table,userblock)
67.  tabSave(table)
68.  tabSBrowse(table)
69.  tabSeek(table,exp)
70.  tabSeekGE(table,exp)
71.  tabSeekLE(table,exp)
72.  tabSkip(table,stp)
73.  tabSuppIndex(table,index)
74.  tabTBrowse(table)
75.  tabUnlock(table,record)
76.  tabUnlockAll(table)
77.  tabUpgrade(table,force)
78.  tabVerify(table)
79.  tabZap(table)

1.  tabAddColumn(table,column)

Csak belső használatra. A tábla definiciójához egy oszlopot ad. Column szerkezete: {name,type,width,dec,pict,block,offset}. Az első négy elem megadása kötelező. A block tag utáni elemek függnek az adatbázisformátumtól. Ezt a függvényt csakis az objektumgeneráló függvényből szabad hívni.

Visszatérés: column

2.  tabAddIndex(table,index)

Csak belső használatra. A tábla definiciójához egy állandó indexet ad. A tábla megnyitása előtt kell hívni, csakis az objektumgeneráló függvényben. A betett indexek állandóak, nem változtathatók, és meg kell egyezniük a lemezfilében nyilvántartott indexeléssel.

Visszatérés: index

3.  tabAlias(table,symbol)

A tábla objektumot azonosító név lekérdezése (symbol==NIL), vagy beállítása (symbol!=NIL).

Visszatérés: symbol

4.  tabALock(table,recarr,userblock)

Lelockolja mindazokat a rekordokat, amiknek recno-i a recarr tömbben vannak felsorolva. A tábla többi lockját elengedi. A művelet akkor sikeres, ha minden lockot meg tud szerezni, ellenkező esetben az addigi lockok is megszűnnek.

Ha userblock==NIL, és a művelet sikertelen, akkor a szokásos ,,A filé foglalt!" hibakezelésbe jutunk. Ha userblock egy kódblock, akkor a művelet sikertelensége esetén ez kiértékelődik, és ennek értékével (kötelezően .t./.f.) tér vissza a függvény.

Visszatérés: .t./.f.

5.  tabAppend(table,userblock,flag)

Berak egy üres rekordot a táblába, és a rekordot lelockolja. Ha userblock==NIL, és a művelet sikertelen, akkor a szokásos ,,A filé foglalt!" hibakezelésbe jutunk. Ha userblock egy kódblock, akkor a művelet sikertelensége esetén ez kiértékelődik, és ennek értékével (kötelezően .t./.f.) tér vissza a függvény.

Ha a flag paraméter NIL, vagy .t., akkor a táblán lévő többi lockot elengedi. Ha a flag értéke .f., akkor a táblán lévő többi lockot megtartja.

Visszatérés: .t./.f.

6.  tabAppendFrom(table,fileName,fieldList)

Az olyan típusú export filék visszaolvasására alkalmas, mint amit tabCopyTo készít. Az importfilé neve fileName. A importálandó mezőnevek felsorolását a fieldList array tartalmazza. Ha fieldList==NIL, akkor a függvény felteszi, hogy az importfilé minden mezőt tartalmaz. A struktúrákat (mezőszámot) egyezteti és ellenőrzi. Tranzakcióban nem engedélyezett.

Visszatérés: a beolvasott rekordok száma

7.  tabAppendRecord(table,tabfrom,usrblk,flag)

A tabfrom tábla aktuális rekordját átemeli table-ba. A két tábla struktúrájának azonosnak kell lenni. A usrblk és flag paramétert továbbadja tabAppend-nek

Visszatérés: .t./.f.

8.  tabAutoUpgrade(table)

Ha a táblaobjektum nem nyitható meg struktúra eltérés miatt, akkor a tabUpgrade hívással konvertálja annak struktúráját.

Visszatérés:

9.  tabBackup(table)

Belső használatra. Másolatot készít a táblaobjektumról tabPack, tabUpgrade, stb. idejére.

Visszatérés: .t./.f.

10.  tabBlock(table,col,block)

Lekérdezi (block==NIL), illetve beállítja (block!=NIL) a col paraméterben számmal vagy névvel azonosított oszlop (mező) kódblokkját. Mivel a táblaobjektum megfelelően inicializálja a blokkokat, felhasználói program ezen ritkán változtat. A lekérdezésnek lehet értelme, pl. ha a blokkot be akarjuk tenni egy browse-ba.

Visszatérés: oszlop blokk

11.  tabBrowse(table,top,left,bottom,right,def)

Létrehoz egy kiterjesztett (menüző) browse objektumot, amelynek navigáló blockjait úgy állítja be, hogy az a táblában scrollozzon. A top, left, bottom, right paraméterek a browse méretét határozzák meg a szokásos módon. Ha def==.t., akkor a browse rögtön fel is töltődik a tábla mezőit megjelenítő oszlopokkal. Ha def==NIL, akkor az új browse-nak nem lesz egy oszlopa sem.

Visszatérés: browse objektum

12.  tabClose(table)

Lezárja a tábla objektumot.

Visszatérés: NIL

13.  tabCloseAll()

Lezárja a program összes tábla objektumát.

Visszatérés: NIL

14.  tabColNumber(table,colName)

Belső használatra. Az oszlop neve alapján kikeresi az oszlopot a tábla objektumban. Ha a név ismeretlen, akkor runtime error keletkezik.

Visszatérés: az oszlop objektumbeli indexe

15.  tabColumn(table)

Belső használatra. Visszaadja a tábla oszlopainak listáját

Visszatérés: egy array, ami az oszlopok struktúráit tartalmazza

16.  tabCommit(table)

Ha az aktuális rekord valamelyik mezője korábban megváltozott, akkor tabCommit kiírja a változásokat.

Visszatérés: NIL

17.  tabCommitAll(table)

Minden tábla objektumra végrehajtja tabCommit-ot.

Visszatérés: NIL

18.  tabControl(tab,ord)

Lekérdezi (ord==NIL), vagy beállítja (ord!=NIL) a tábla aktuális sorrendjét. A sorrendet névvel, vagy számmal is beállíthatjuk. Ha a természtes sorrendet akarjuk beállítani, akkor ezt a 0 sorszámú index előírásával tehetjük.

Visszatérés: a korábbi sorrend sorszáma

19.  tabControlIndex(table,ord)

Azonos az előző tabControl függvénnyel. A kétféle elnevezésre azért van (volt) szükség, mert a régi Clipper 10 karakter hosszúra levágta a függvények nevét.

20.  tabCopyTo(table,fileName,fieldList)

Teljes táblák exportálásához alkalmas függvény. A fileName-ben megadott (újonnan kreált) filébe kiírja a fieldList listában felsorolt mezőket. Ha fieldList==NIL, akkor minden mezőt kiír. Az adatok konverziója a következő szabályok szerint történik:
  1. A sztring mezők trimelődnek, és dupla idézőjelek közé kerülnek. Kérdés, hogy az export filé olvasója mit fog kezdeni az olyan idézetekkel, amik a belsejükben is tartalmaznak idézőjelet.

  2. A számok sztringre konvertálódnak, a konverzióban figyelembe van véve a mezőszélesség és a decimális jegyek száma.

  3. A dátumok dtos alakban kerülnek kiírásra.

  4. A logikai értékek T/F alakban kerülnek kiírásra.

A mezőket vessző, a rekordokat CR/LF határolja. A tábla megtartja a tabSave/tabRestore-ral menthető állapotát.

Visszatérés: a kiírt rekordok száma

21.  tabCreate(table,userblock)

Létrehozza a táblaobjektumot a filérendszerben, feltéve, hogy korábban nem létezett (azaz létező filét nem töröl). Ha userblock egy kódblock, akkor a művelet sikertelensége esetén ez kiértékelődik, és ennek értékével (kötelezően .t./.f.) tér vissza a függvény. Ha userblock nincs megadva, és a filé létrehozása nem sikerül, akkor runtime error keletkezik.

Visszatérés: .t./.f.

22.  tabDataExt(table)

Belső használatra. Az adatfilék kiterjesztésének default értéke. A kiterjesztést ponttal együtt, nagybetűsen kapjuk.

Visszatérés: kiterjesztés

23.  tabDelete(table)

Törli a tábla aktuális rekordját, és az érvényes sorrend szerinti irányban egyet előre lép. Megköveteli, hogy a rekord lockolva legyen. A törléssel a rekord lockja megszűnik. Az előrelépés azért szükséges, mert egyes adatbázisformátumokban a törölt rekord teljesen megszűnik (azaz töröltként sem létezik tovább), viszont a tábla pozícionáltságát célszerű ilyenkor is fenntartani.

Visszatérés: NIL

24.  tabDeleted(table)

Megmondja, hogy a tábla aktuális rekordja törölt állapotú-e.

Visszatérés:

25.  tabDelIndex(table)

Belső használatra. Törli a tábla objektum indexeit a filérendszerből.

Visszatérés: .t./.f.

26.  tabDelTable(table)

Belső használatra. Törli a tábla objektumot a filérendszerből minden alkatrészével együtt.

Visszatérés: .t./.f.

27.  tabDestruct(table)

Megszünteti a tábla objektumot. Először lezárja a táblát, majd az objektumra mutató statikus hivatkozásokat emptyvé teszi, és a tabObjectList-ből is törli. Ezzel az objektumot a szemétgyűjtés el fogja tudni takarítani.

Visszatérés: NIL

28.  tabDropIndex(table)

Eldobja a korábbi tabSuppIndex hívásokkal létrehozott ideiglenes indexeket (mindet). Csak exkluzív nyitásnál megengedett. Tranzakció közben nem engedélyezett.

Visszatérés: NIL

29.  tabEof(table)

Az utolsó táblabeli mozgás által beállított EOF értéket adja.

Visszatérés:

30.  tabEvalColumn(table,col,exp)

A col paraméterben sorszámmal, vagy névvel azonosított mező (oszlop) blockját kiértékeli. Ha exp==NIL, akkor ez az oszlop aktuális értékének lekérdezését jelenti, ha exp!=NIL, akkor az oszlopnak új értéket adunk (az exp-et).

Visszatérés: az oszlop értéke

31.  tabExt(table,par)

Megadja az adatfilé tényleges kiterjesztését. A kiterjesztést ponttal együtt, nagybetűsen kapjuk.

Visszatérés: kiterjesztés

32.  tabFcount(table)

Megadja a táblában lévő mezők (oszlopok) számát.

Visszatérés: mezők száma

33.  tabFile(table,fname)

Lekérdezi (fname==NIL), illetve beállítja (fname!=NIL) a tábla adatfiléjének nevét.

Visszatérés: fname

34.  tabFilter(table,filter)

Lekérdezi (filter==NIL), illetve beállítja (filter!=NIL) az aktuláis szűrő blokkkot. Ha a szűrést törölni akarjuk, akkor valamilyen empty de nem NIL értékre kell beállítanunk.

Visszatérés: a korábbi szűrő blokk

35.  tabFound(table)

Visszaadja FOUND értékét, ahogy azt az utolsó tabSeek művelet beállította.

Visszatérés: .t./.f.

36.  tabGetColumn(table,col)

Belső használatra. Visszadja az col-ban sorszámmal, vagy névvel azonosított oszlop struktúráját. Ha az oszlopnév ismeretlen, vagy a sorszám a határokon kívül esik, akkor runtime error keletkezik.

Visszatérés: oszlop struktúra

37.  tabGetIndex(table,ind)

Belső használatra. Visszadja az ind-ben névvel azonosított index sorszámát. Ha ind egy sorszám, akkor csak azt ellenőrzi, hogy ind 1 és a létező indexek száma közé essen, és ind-et adja vissza. Ha az index nem létezik (ismeretlen név, vagy a határokon kívül eső index), akkor NIL ad.

Visszatérés: index sorszám, vagy NIL

38.  tabGoBottom(table)

Az aktuláis sorrend szerinti utolsó rekordra (bottomra) pozícionál. A törölt és kiszűrt rekordokat átugorja. Ha sikertelen, beállítja EOF-ot.

Visszatérés:

39.  tabGoto(table,recno)

A recno-ban megadott sorszámú rekordra pozícionál. Ha ez a rekord nem létezik, akkor recno==0-ra pozícionál, és beállítja EOF-ot. A tabGoto függvénnyel rá lehet pozícionálni a törölt és kiszűrt rekordokra is.

40.  tabGoTop(table)

Az aktuláis sorrend szerinti első rekordra (topra) pozícionál. A törölt és kiszűrt rekordokat átugorja. Ha sikertelen, beállítja EOF-ot.

41.  tabIndex(table,index)

Csak belső használatra. Lekérdezi (index==NIL), illetve beállítja (index!=NIL) az indexek struktúráját.

Visszatérés: index

42.  tabIndexExt()

Belső használatra. Az index filék kiterjesztésének értéke. A kiterjesztést ponttal együtt, nagybetűsen kapjuk.

Visszatérés: kiterjesztés

43.  tabIndexName(table)

Belső használatra. Lekérdezi a tábla indexfiléjének teljes specifikációját. Erősen adatbázis formátum függő.

Visszatérés: index filé specifikáció

44.  tabInsert(table,key,userblock,flag)

Megnézi, hogy van-e a key klucshoz illeszkedő rekord a táblában. Ha van, akkor erre pozícionál és visszatér (a rekord nem lockolódik). Ha nincs, akkor berak a táblába egy új rekordot, és egyúttal beírja az új rekordba a key-ben kapott kulcsot (a rekord lockolva marad).

A userblock és flag paramétereket szükség esetén továbbadja tabAppend-nek. A flag==.t. esetben a korábbi lockok megszűnnek, flag==.f. esetben a korábbi lockok megmaradnak,

Visszatérés:

45.  tabIsLocked(table)

Megmondja, hogy a tábla aktuális rekordja lockolva van-e. Ha a tábla exkluzívan meg van nyitva, akkor definíció szerint minden rekordja lockoltnak számít.

Visszatérés:

46.  tabIsOpen(table)

Megmondja, hogy nyitva van-e a tábla.

Visszatérés:

47.  tabLastRec(table)

Visszaadja a legnagyobb recno-t. Ez hozzávetőleges tájékozódást ad a táblában levő rekordok számáról, de nem feltétenül egyezik meg azzal.

Visszatérés: maximális recno

48.  tabLoadDBF(table,dbf)

Betölti a táblába a dbf-ben megadott specifikációjú, dbf formátumú adatbázist az esetleges memó filékkel együtt. A dbf törölt rekordjait kihagyja. Csak exkluzív nyitási módban lehetséges. Tranzakcióban nem megengedett. Csak azok a dbf-beli mezők töltődnek át, amiknek van a tábla objektumban megfelelő párjuk. Hibát okoz, ha a dbf-ben és a táblaobjektumban azonos nevű mezők típusa eltérő.

Visszatérés: a dbf rekordjainak száma

49.  tabLock(table,userblock)

Lockolja a táblát (egyes adatbázis formátumokban áttér exkluzív nyitásra). Ha userblock==NIL, és a művelet sikertelen, akkor a szokásos ,,A filé foglalt!" hibakezelésbe jutunk. Ha userblock egy kódblock, akkor a művelet sikertelensége esetén ez kiértékelődik, és ennek értékével (kötelezően .t./.f.) tér vissza a függvény.

Visszatérés: .t./.f.

50.  tabLockList(table)

Visszaadja a tábla lockolt rekordjainak listáját.

Visszatérés: array a lockolt rekordok recno-ival

51.  tabMAppend(table,userblock)

Berak egy üres rekordot a táblába, és azt lockolja, a tábla többi lockját nem engedi el. A tábla aktuális rekordja az új rekord lesz. Ha userblock==NIL, és az append sikertelen, akkor a szokásos ,,A filé foglalt!" hibakezelésbe jutunk. Ha userblock egy kódblock, akkor az append sikertelensége esetén ez kiértékelődik, és ennek értékével (kötelezően .t./.f.) tér vissza a függvény.

Visszatérés: .t./.f.

52.  tabMemoExt()

Belső használatra. A memó filék kiterjesztésének default értéke. A kiterjesztést ponttal együtt, nagybetűsen kapjuk.

Visszatérés: kiterjesztés

53.  tabMemoName(table)

Belső használatra. Lekérdezi a tábla memó filéjének teljes specifikációját.

Visszatérés: memó filé specifikáció

54.  tabMLock(table,recno,userblock)

Lockolja a tábla recno-val azonosított rekordját, a többi lockot nem engedi el. Ha userblock==NIL, és a lock sikertelen, akkor a szokásos ,,A rekord foglalt!" hibakezelésbe jutunk. Ha userblock egy kódblock, akkor a lock sikertelensége esetén ez kiértékelődik, és ennek értékével (kötelezően .t./.f.) tér vissza a függvény.

Visszatérés: .t./.f.

55.  tabNameExt(table)

Belső használatra. Az adatfilé specifikációja path nélkül.

Visszatérés: path nélküli filéspecifikáció

56.  tabObjectList()

Belső használatra. Nyilvántartás a program táblaobjektumairól.

Visszatérés: egy array, ami statikusan tárolja a program tábla objektumait

57.  tabOpen(table,mode,userblock)

Megnyitja a táblát a mode paraméterben megadott nyitási móddal. A nyitási mód értéke lehet:
  1. OPEN_READONLY

  2. OPEN_SHARED (default)

  3. OPEN_EXCLUSIVE

  4. OPEN_APPEND

Ha a filé fizikailag nem létezik, akkor felajánlja, hogy létrehozza üresen az adatszótárral megegyező struktúrával. Ha a filé létezik, akkor a tabVerify meghívásával ellenőrzi, hogy a struktúrája (és az indexei) megfelelőek-e.

Ha a tábla már eleve nyitva volt, akkor először lezárja, majd megnyitja az új nyitási móddal. Ez tranzakcióban résztvevő tábla esetén nem megengedett.

Ha userblock nincs megadva (userblock==NIL) és a filé foglalt, akkor a szokásos ,,A filé foglalt!" hibakezelésbe kerülünk. Ha userblock egy kódblokk, és a filé foglalt, akkor kiértékelődik userblock és ennek az értékével (kötelezően .t./.f.) tér vissza a függvény.

A frissen nyitott táblában a természetes sorrend lesz beállítva, és az e sorrend szerinti top lesz az aktuális rekord.

Visszatérés: .t./.f.

58.  tabPack(table)

A tábla összes törölt rekordját purgálja. A packolás a tábla törölt rekordok nélküli átmásolásával történik. Exkluzív megnyitás szükséges, tranzakcióban nem megengedett. A packolás után a tábla megtartja a tabSave/tabRestore-ben menthető állapotát.

Visszatérés: .t./.f.

59.  tabPath(table,path)

Belső használatra. Lekérdezi (path==NIL), illetve beállítja (path!=NIL) a tábla adatfiléjéhez vezető path-t. A path mindig automatikusan kiegészül a dirsep karakterrel.

Visszatérés: path

60.  tabPathName(table)

Belső használatra. Lekérdezi a tábla adatfiléjének teljes specifikációját.

Visszatérés: filé specifikáció

61.  tabPercent(table,percent)

Lekérdezi (ha percent==NIL), illetve beállítja (precent!=NIL) a tábla pozícióját százalékban. Csak belsőleg használjuk a scrollbarok kezelésekor.

Visszatérés: percent

62.  tabPicture(table,col,pict)

A tábla col-ban megadott oszlopához tartozó default picture beállítása (ha pict!=NIL), illetve lekérdezése (ha pict==NIL). Az oszlopot sorszámmal, vagy névvel is azonosíthatjuk. Mivel a táblaobjektum megfelelően inicializálja az oszlop picture-t, utólagos beállítására általában nincs szükség.

Visszatérés: picture

63.  tabPosition(table)

Lekérdezi a tábla aktuális rekord pozícióját (recno). A visszakapott szám csak arra használható, hogy az aktuális pozíciót mentsük, majd visszaállítsuk. Nem szabad pl. olyasmit feltételezni, hogy a rekordszámok egyesével növekednének.

Visszatérés:

64.  tabRename(table,name)

A tábla filé alkatrészeinek átnevezése, kizárólag belső használatra.

Visszatérés: .t./.f.

65.  tabRestore(table,state)

Visszaállítja a tábla tabSave-ben elmentett állapotát, ami tartalmazza a tábla
  1. aktuális sorrendjét,

  2. aktuális szűrő blokkját,

  3. aktuális pozícióját.

Visszatérés: state

66.  tabRLock(table,userblock)

Lockolja a tábla aktuális rekordját, előzőleg a többi lockot feloldja. Ha userblock==NIL, és a lock sikertelen, akkor a szokásos ,,A rekord foglalt!" hibakezelésbe jutunk. Ha userblock egy kódblock, akkor a lock sikertelensége esetén ez kiértékelődik, és ennek értékével (kötelezően .t./.f.) tér vissza a függvény.

Visszatérés: .t./.f.

67.  tabSave(table)

Elmenti a tábla
  1. aktuális sorrendjét,

  2. aktuális szűrő blokkját,

  3. aktuális pozícióját.

Később a tabRestore függvénnyel az elmentett állapot visszaállítható.

Visszatérés: a fenti három értékből képzett array

68.  tabSBrowse(table)

Teszteléshez való függvény, ami megjeleníti a tábla aktuális állapotát. A visszatérés után a tábla állapota változatlan marad, így a program futására nincs hatással.

Visszatérés: NIL

69.  tabSeek(table,exp)

A táblában megkeresi azt a rekordot, ami az aktuális control szerinti lexikografikus rendezettségben a legelső azok közül, amik nem kisebbek, mint az exp-ben megadott minta (vagyis exp-nél nagyobbegyenlőt keres). A törölt és kiszűrt rekordokat átugorja. Követelmény, hogy be legyen állítva egy természetes sorrendtől különböző sorrend (control).

Az exp kifejezés általános esetben egy array, amely az aktuális sorrendet meghatározó oszlopokra vonatkozó részkulcsokat tartalmaz. Az array lehet rövidebb is, mint a sorrendet alkotó oszlopok száma. Ha a megadott részkulcsok száma egy, akkor az array helyettesíthető a részkulcsot tartalmazó egyszerű adattal.

A keresés előtt minden (megadott) részkulcs konvertálódik a hozzá tartozó oszlopnak megfelelő formátumra (pl. a stringek padolódnak a megfelelő hosszúságra), majd a részkulcsok konkatenálódnak, így előáll a kereső kulcs. Ha az így előkészített kulcshoz illeszkedő rekordot sikerül találni, akkor a FOUND be lesz állítva .t.-re.

Megjegyzendő, hogy a keresés és a találat jelzése mindig a ténylegesen megadott részkulcsokból képzett kereső kulcsra történik.

Visszatérés:

70.  tabSeekGE(table,exp)

Keresés nagyobbegyenlőre, vagy utolsóra. Végrehajt egy tabSeek-et a megadott exp mintával. Ha a tabSeek recno==0-ra vinne, akkor átpozícionál bottomra.

Visszatérés:

71.  tabSeekLE(table,exp)

Keresés kisebbegyenlőre, vagy utolsóra. Végrehajt egy tabSeek-et a megadott exp mintával, majd egyet hátralép. Ha a tabSeek recno==0-ra vinne, akkor átpozícionál bottomra.

Visszatérés:

72.  tabSkip(table,stp)

Lép a beállított sorrend (control) szerinti irányban. A törölt vagy kiszűrt rekordokat átugorja. A stp paraméter a lépések száma. Pozitív, nulla, és negatív is lehet, stp==0 esetén újra olvassa az aktuális rekordot, stp==NIL esetén egyet lép előre.

Ha előrelépés közben nekimegy a filé végének, akkor recno==0-ra pozícionál, és beállítja EOF-ot. A recno==0-ról előrefelé nem ehet elmozdulni, ilyenkor recno==0-án marad, és újra beállítja EOF-ot.

Ha hátralépés közben nekimegy a filé elejének, akkor a top-ra pozícionál, és beállítja EOF-ot. Ha recno==0-ról hátrafelé lép, akkor az első lépésben bottom-ra pozicionál.

Visszatérés:

73.  tabSuppIndex(table,index)

Ideiglenes indexet ad az objektumhoz (azaz leindexeli a filét egy új sorrend szerint). Csak exkluzív módban használható. Az ideiglenes indexet a filé lezárása előtt el kell dobni (tabDropIndex). Az index paraméter egy array, ami az új index struktúráját tartalmazza, ennek elemei:
  1. sorrend név,

  2. index filé neve,

  3. array az oszlopok nevének listájával

Tranzakcióban nem engedélyezett.

Visszatérés: index

74.  tabTBrowse(table)

Ad egy browset, amiben a program összes tábla objektuma látszik. Teszteléshez való. A table paramétert nem használja.

Visszatérés: NIL

75.  tabUnlock(table,record)

Elengedi a filé lockot és a filé összes rekord lockját. Ha record meg van adva (egy recno), akkor csak ennek a rekordnak a lockját engedi el.

Visszatérés: NIL

76.  tabUnlockAll(table)

Minden tábla minden lockját elengedi. A táblákat a tabObjectList függvénnyel szedi össze. A table paramétert nem használja.

Visszatérés: NIL

77.  tabUpgrade(table,force)

Konvertálja a tényleges filét az objektumnak megfelelően (a konverzió után a filé struktúrája meg fog egyezni az adatszótárbeli struktúrával). Ha a híváskor a filé nyitva van, akkor nem csinál semmit, hiszen megnyitható filénél nincs szükség konverzióra. A konverzió után a filé lezárva marad, azaz :isopen nem változik.

Konverziós szabályok:

  1. nem enged mezőt kihagyni,

  2. mező típusa nem lehet eltérő,

  3. mezőhosszt hajlandó megváltoztatni (csökkent/növel)

Ha force==.t., akkor mindenképpen elvégzi a konverziót.

Visszatérés:

78.  tabVerify(table)

Ellenőrzi, hogy a tábla tényleges struktúrája megfelel-e az adatszótárbeli struktúrának. A tényleges struktúrának tartalmaznia kell minden adatszótárbeli mezőt, és ezeknek a típusa sem térhet el, ellenkező esetben ,,DBSTRUCT eltérés" hiba keletkezik. Megengedett, hogy a tényleges struktúra bővebb legyen.

Ha információ kapható az indexekről, akkor azokat is ellenőrzi, de ez adatformátum függő.

Visszatérés:

79.  tabZap(table)

Törli a tábla összes rekordját. Exkluzív open mód szükséges. Tranzakcióban nem megengedett.

Visszatérés: .t./.f.


Learn Hungarian in Budapest in Ulysses language school. Group and private courses on affordable prices.