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:
- .t., ha OK
- .f., ha a szabályok nem engedik a konverziót
- NIL, ha a filé foglalt.
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:
- 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.
- 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.
- A dátumok dtos alakban kerülnek kiírásra.
- 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:
- .t., ha a rekord törölt
- .f., ha a rekord nem törölt
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:
- .f., ha az utolsó pozícionálás sikeres volt
- .t., ha az utolsó pozícionálás sikertelen volt
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:
- .t., ha a pozícionálás sikeres
- .f., ha sikertelen (ha egy rekord sincs a táblában)
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.
- .t., ha a pozícionálás sikeres
- .f., ha sikertelen (ha nem létezik a megadott rekord)
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.
- .t., ha a pozícionálás sikeres
- .f., ha sikertelen (ha egy rekord sincs a táblában)
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:
- NIL, ha már volt a táblában megfelelő kulcsú rekord
- .t., ha sikeresen berakta az új rekordot
- .f., ha az új rekord létrehozása sikertelen volt
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:
- .t., ha az aktuális rekord lockolva van
- .f., ha az aktuális rekord nincs lockolva
46. tabIsOpen(table)
Megmondja, hogy nyitva van-e a tábla.
Visszatérés:
- 0, ha a tábla nincs nyitva
- nyitási mód (pozitív szám), ha a tábla nyitva van
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:
- OPEN_READONLY
- OPEN_SHARED (default)
- OPEN_EXCLUSIVE
- 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:
- 0, ha a tábla nincs pozícionálva, pl. nincs benne rekord,
vagy előzőleg tabGoto egy nemlétező rekordra akart pozícionálni
- pozitív szám (recno), ha a tábla pozícionálva van
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
- aktuális sorrendjét,
- aktuális szűrő blokkját,
- 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
- aktuális sorrendjét,
- aktuális szűrő blokkját,
- 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:
- .t., ha sikerült illeszkedő rekordot találni (FOUND true)
- .f., ha nem sikerült illeszkedő rekordot találni (FOUND false)
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:
- .t., ha sikerült illeszkedő rekordot találni (FOUND true)
- .f., ha nem sikerült illeszkedő rekordot találni (FOUND false)
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:
- .t., ha sikerült illeszkedő rekordot találni (FOUND true)
- .f., ha nem sikerült illeszkedő rekordot találni (FOUND false)
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:
- .t., ha sikerült stp számú lépést végrehajtani
- .f., ha nem lehetett stp lépést végrehajtani (EOF beállítva)
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:
- sorrend név,
- index filé neve,
- 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:
- nem enged mezőt kihagyni,
- mező típusa nem lehet eltérő,
- mezőhosszt hajlandó megváltoztatni (csökkent/növel)
Ha force==.t., akkor mindenképpen elvégzi a konverziót.
Visszatérés:
- .t., ha OK
- .f., ha a szabályok nem engedik a konverziót
- NIL, ha a filé foglalt.
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:
- .t., ha OK
- .f., ha a filé és a program inkonzisztens
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.