clipper.309rale.s,
-> #308, jolicm>> Internal error 999 ??????
IE 999 - Attempt to execute invalid code...
Mogući uzroci:
- Imaš obj-ove iz više verzija -> treba ih svesti na istu
- Greška u obj fajlu -> treba rekompajlirati kod
- Koristiš verziju biblioteke koja nije prilagođena
verziji Clipp-a
- Pozivaš u makrou ili bloku koda f-ju koja nije REQUESTED
- Sve to piše i u odgovarajućim .ng fajlovima.
r.
clipper.310bstevan,
-> #306, dvesic
==>Šta koristiš od spoljnih biblioteka ?
==>
==>Možda neka spoljna biblioteka nije usklađena sa protected mode
==>programima ...
Koristim build.bat iz FW19, koji nisam menjao i
fivewin.lnk, gde sam probao sa zadnjim redom za biblioteke,
program je tutor02.prg-odnosno primer iz FW19.
LIB FiveWin,WinApi,ExoSpace,Clipper,Extend,DbfNtx,Terminal,501_520
zatim,
LIB FiveWin,WinApi,Clipper,Extend,DbfNtx,Terminal,501_520
i
LIB FiveWin,WinApi,Clipper,Extend,DbfNtx,Terminal
ali bez rezultata.
Probao sam i iz DEFBEGIN-DEFEND, da brišem redove segment,
ali i to nije pomoglo.
Radi se o Clipper-u 5.3
---POZDRAV---
---BSTEVAN---
clipper.311bulaja,
-> #303, mradovic│Probao sam i sa Blinkerom i ExoSpaceom, ali sve jednostavno
│ostaje u text moöu :(, imaä li neku ideju éaäto?
└───
Izvinjavam se na zakasnelom odgovoru :), ali da li si naveo LLIBG.LIB
u link script-u? Blinker i ExoSpace to ne ubacuju automatski (kao što
rade sa standardnim bibliotekama - clipper.lib, extend.lib,..), a ovo
ponašanje programa baš liči na taj problem.
clipper.312mradovic,
-> #311, bulaja> Izvinjavam se na zakasnelom odgovoru :), ali da li si naveo LLIBG.LIB
> u link script-u? Blinker i Exospace to ne ubacuju automatski (kao äto
Evo konkreno primera:
#include "llibg.ch"
SET VIDEOMODE TO LLG_VIDEO_VGA_640_480_16
gline(0, 0, 20, 20, 6, LLG_MODE_SET)
SET VIDEOMODE TO LLG_VIDEO_TXT
Linkovanje:
blinker file test lib clipper, extend, llibg
Kada se program startuje, ekran se izbriäe (i dalje text mod)
i to bi bilo sve ! Jel' treba joä neäto dodati u link script?
Ako je verovati NG-u, navedeni LIB-obi su dovoljni.
Da situacija bude joä üudnija, poziv gmode() funkcije u cilju
dobijanja informacija o video modu, potpuno blokira maäinu.
Postoje li neka ograniüenja u vezi video kartice (mislim
iskljuüivo na LLIBG.LIB koji se isporuüuje uz Clipper 5.3)?
Pozdrav, Mirko.
clipper.313snemcev,
-> #312, mradovic>> Kada se program startuje, ekran se izbriše (i dalje text mod)
>> i to bi bilo sve !
Ne videh nigde pauzu u onom tvom programu. Da se program ne izvrši
toliko brzo da ti i ne primetiš da on ode u grafički mod, iscrta liniju
i vrati se u tekst mod?
clipper.314mradovic,
-> #313, snemcev> Ne videh nigde pauzu u onom tvom programu. Da se program ne izvrsi
> toliko brzo da ti i ne primetis da on ode u graficki mod, iscrta liniju
> i vrati se u tekst mod?
Ne, linije koje slede posle poziva gline() se uopste ne izvrsavaju.
Pozivi svih funkcija koje rade u grafickom modu ili blokiraju masinu,
ili dovode do pucanja programa, sto znaci da do prebacivanja u
graficki mod uopste ne dolazi!
Pozdrav, Mirko.
clipper.315nitro,
Programiram u Clipper-u 5.2c i desava mi se da u direktorijumu
u kome se nalazi neki moj program sam racunar stvori neki fajl
bez ekstenzije i sa nazivom bez ikakvog smisla SFAFGFD i td. i
slicno.Jel to Clipper nevalja ili moji programi nevaljaju
Ko zna u cemu je problem nek mi ja vi na , bolje na MAIL
unapred hvala
clipper.316sobrenovic,
-> #315, nitroNista ne brini... :)
Programi radjeni u clipper-u povremeno prave upravo pomenute fajlove
sa blesavim nazivom od 8 slova bez ekstenzije i to su u stvari temp.
fajlovi, nesto nalik virtuelnoj memoriji koju Windows pravi na hard
disku. Ti fajlovi gube vaznost (u slucaju clippera!) po izlasku iz
programa i mozes ih po kratkom postupku obrisati.
Pozdrav, Sasa.
P.S. Zna li neko po kom algoritmu clipper formira nazive upravo
pomenutih fajlova?
clipper.317zeljkoj,
-> #316, sobrenovic> P.S. Zna li neko po kom algoritmu clipper formira nazive upravo
> pomenutih fajlova?
Ne kreira ih Clipper, postoji DOS funkcija za otvaranje fajla sa takvim
rnd nazivom. :) Ako treba, mogu da pogledam koja je tačno...
clipper.318nitro,
hi svim CLIPPOVIMA
Jel zna neko kako da ubacim Zvezdano nebo u moje programe kad
nije pritisnut taster vec duze vreme .imam funkciju zvezdanog
neba ali neznam kako da namestim da se ona aktivira u meniju ili
u nekom slicnom delu programa ako nista nije pritisnuto pr.5 min.
ko zna nek mi javi na mail ili u conf
unapred zahvalan
clipper.319mmarkovic,
-> #317, zeljkoj> Ne kreira ih Clipper, postoji DOS funkcija za otvaranje fajla
> sa takvim rnd nazivom. :) Ako treba, mogu da pogledam koja je tačno...
Da. A ako je linkovano blinkerom, fajlovi se zovu $Tnnnnnn
clipper.320arazumenic,
-> #315, nitro-> Programiram u Clipper-u 5.2c i desava mi se da u direktorijumu
-> u kome se nalazi neki moj program sam racunar stvori neki fajl
-> bez ekstenzije i sa nazivom bez ikakvog smisla SFAFGFD i td. i
-> slicno.Jel to Clipper nevalja ili moji programi nevaljaju
A da mu postavis da te fajlove trpa u neki temp direktorijum? Onda, s vremena
na vreme obrises ceo temp direktorium.
clipper.321arazumenic,
-> #318, nitro-> Jel zna neko kako da ubacim Zvezdano nebo u moje programe kad
-> nije pritisnut taster vec duze vreme .imam funkciju zvezdanog
Imas opisano u nekom od starijih brojeva racunara, a pogledaj malo i po
starim konferencijama, i naci ces kako.
Ukratko, mora se menjati sam nacin kako Clipper tretira stanje cekanja. Tu
postoji jedno jedino inkey(0), i to treba prepraviti u poziv tvoje funkcije
koja ce raditi isti posao, ali koja ce ti omoguciti bas ono sto ti zelis.
clipper.322mmarkovic,
-> #318, nitro> Jel zna neko kako da ubacim Zvezdano nebo u moje programe kad
> nije pritisnut taster vec duze vreme .imam funkciju zvezdanog
Predefiniši GETSYS.PRG tako da se ne poziva inkey(), nego neka
tvoja f-ja koja poziva inkey(). U svojoj f-ji ispituj vreme od
zadnjeg pritiska na taster.
clipper.323cnenad,
-> #318, nitro=> Jel zna neko kako da ubacim Zvezdano nebo u moje programe kad
=> nije pritisnut taster vec duze vreme .imam funkciju zvezdanog
Baš zanimljivo :) jedno vreme su u modi bile baš ovakve stvari u Clipper
programima kao i satić, da bi tu ulogu preuzeli rezidentni programčići.
Sad kad imamo W95 opet su iste ove stvari u modi jer nije zgodno trpati
kao rezidentne satić i screen saver. Kako god bilo mišljenja sam da onome
kome je stalo do šminkanja svog programa, treba ovo da ubaci jer ima i
korisnika koji ne znaju da instaliraju tj. strpaju rezidentne programe u
AUTOEXEC a kamoli da podese njihove parametre.
=> neba ali neznam kako da namestim da se ona aktivira u meniju ili
=> ko zna nek mi javi na mail ili u conf
Na mail nećeš dobiti jer ima još ljudi koje ovo interesuje pa zato nemoj
više kod nekog pitanja pisati tu čuvenu opasku NA MAIL. Ovako ćeš pratiti
i konf. i učestvovati u raspravi ili barem naučiti mnogo novih stvari.
Clipper-ov sistem menija ne podržava zamenu inkey() tvojom funkcijom pa
za takve stvari moraš recimo iskoristiti BuMenu 1.4 i zato ovaj primer
ide upravo za BuMenu. Napravićeš svoju funkciju koja će zameniti INKEY()
i nju pozivati svugde gde je stavljeno INKEY() (zapravo, ovde ćeš dobiti
gotovu funkciju ;) pa je samo iskompajliraj. Dakle, primer vezivanja sa
menijem.
#include "BUMENU.CH"
...
WHILE .T.
bu_setinkey( { || NInkey( 0 ) } )
@ 22, 0 PROMPT 'Datoteke' HOTKEY 't' MESSAGE 'UNOS, BRISANJE...'
@ 22, 11 PROMPT 'Podešavanja' HOTKEY 'P' MESSAGE 'PARAMETARI ZA RAD PROGRAMA'
CLEAR TYPEAHEAD
MENU TO ln_Meni
DO CASE
CASE ln_Meni == 0 ; EXIT
CASE ln_Meni == 1 ; Datoteke()
...
END CASE
END WHILE
Evo ti i funkcije koja dalje realizuje skaniranje tastature, aktivira
screen saver i slično. Na tebi je da dalje razradiš istu prema svojim
potrebama i ugradiš željeni screen saver, satić i slično... - ovaj samo
zatamni ekran i čeka na pritisak tastera.
STATIC TimeOut := 5 // vreme u sec. nakon kojeg se aktivira screen saver
STATIC RunMode :=1
FUNC Ninkey(N)
LOCAL Ch
DO CASE
CASE N == NIL
Ch := Inkey ()
CASE N > 0
DO CASE
CASE RunMode == 1
Ch := Inkey (N)
END CASE
CASE N == 0
DO CASE
CASE RunMode == 1
WHILE (Ch := Inkey (TimeOut)) == 0
ln_Cursor := setcursor()
setcursor( 0 )
lc_Stari_ekran := savescreen( 0, 0, maxrow() maxcol() )
CLS
inkey( 0 )
restscreen( 0, 0, maxrow(), maxcol(), lc_Stari_ekran )
setcursor( ln_Cursor )
END DO
END CASE
END CASE
RETURN( Ch )
clipper.324pdeze,
Pozdrav!
Imam jedan problemcic, a glasi ovako:
U jednom dosta glomaznom programu, porebno mi je da se jedna procedura
izvrsi svaki put kada korisnik sedne za kompjuter (tj. pritisne
taster), kao jedan TSR, pa sam to izveo sa SET KEY 13 TO ... (ENTER, jer
je on najcesci), ali to naravno tako ne odgovara svrsi, posto SET KEY
ne proverava tastauru vec je cita (tj. destructive read).
Znaci proc koji se izvsava pri pritisku na recimo ENTER a ne smeta
procedurama koje se tada trebaju izvrsiti. Kako mogu ovo resiti?
clipper.325livan,
-> #324, pdeze
-> Imam jedan problemcic, a glasi ovako:
-> U jednom dosta glomaznom programu, porebno mi je da se jedna procedura
Nisam siguran da sam najbolje razumeo šta hoćeć, ali probaj ovo:
********************
#include "InKey.ch"
PROCEDURE Main()
LOCAL GetList:=šć,nBroj:=0, cString:=Space(10)
CLEAR SCREEN
DO WHILE .T.
Ž 10,5 SAY "Unesi broj ..............:" GET nBroj PICT "9999";
WHEN šđđ HotEnter() ć
Ž 11,5 SAY "Unesi string.............:" GET cString;
WHEN šđđ HotEnter() ć
READ
IF LastKey()==K_ESC
EXIT
ENDIF
nBroj:=0
cString:=Space(10)
ENDDO
RETURN
PROCEDURE Bilo_sta() /* Ovo bi bila ta tvoja procedura */
LOCAL i:=0
SET KEY K_ENTER TO
WHILE i < 3
Tone(200+10*i,1)
i++
ENDDO
KEYBOARD Chr(K_ENTER)
RETURN
FUNCTION HotEnter()
SET KEY K_ENTER TO Bilo_sta()
RETURN .T.
*******************
Samo onda moraš za svaki GET da stavljaš ovaj WHEN blok !
Šta ti radi ta procedura kad si je stavio na ENTER ?!?
clipper.326sasab,
-> #319, mmarkovic> > Ne kreira ih Clipper, postoji DOS funkcija za otvaranje fajla
> > sa takvim rnd nazivom. :) Ako treba, mogu da pogledam koja je tačno...
> Da. A ako je linkovano blinkerom, fajlovi se zovu $Tnnnnnn
++++++++++++++++++++++++++++
Novelovi temporary fajlovi imaju ovakvo ime.
Inače kreira ih DOS f-ja 5Ah (i bez novela, naravno)
Function 5Ah (90) Create Unique File ˛ DOS 3.0
Creates a unique filename, then opens that file in the specified
directory.
On entry: AH 5Ah
CX File attribute
DS:DX Pointer to path ending in Đ (ASCIIZ string)
Returns: DS:DX Pointer to filename (ASCIIZ string)
AX Error code, if CF is set
Bogi
clipper.327sasab,
-> #320, arazumenic> A da mu postavis da te fajlove trpa u neki temp direktorijum?
> Onda, s vremena na vreme obrises ceo temp direktorium.
Ako je program na mreži obavezno temp direktorijum na lokalnom
disku. Drastično smanjuje saobraćaj na mreži, što se, jelte,
drastično odrazi na brzinu (u pozitivnom smislu naravno).
set clipper=//swappath:'c:Đtemp' //temppath:'c:Đtemp' ....
Paziti pri tome da na disku ima dovoljno slobodnog prostora. U NG
kaže da za temppath (temporary fajlovi prilikom indeksiranja,
pakovanja i sortiranja baza) slobodan prostor mora da bude makar dva
puta veći od dužine najvećeg indeksa koji se kreira ili baze koja se
pakuje/sortira.
VM swap fajl u "normalnom" programu retko kad pređe par stotina KB.
E sad ako neko pretera sa nizovima... Teorijsko ograničenje je 64MB.
Uzgred rečeno, pri regularnom završetku programa ti fajlovi se
automatski brišu, pa do gomilanja ne bi trebalo da dođe.
Bogi
clipper.328pdeze,
-> #325, livan> Samo onda moras za svaki GET da stavljas ovaj WHEN blok !
> Sta ti radi ta procedura kad si je stavio na ENTER ?!?
Da, a bas to hocu da zaobidjem: modifikaciju svake procedure u kojoj bih
pozivao ovu proc koja se aktivizira na ENTER. Zapravo hteo bih da
izvrsavanje ovog modula bude nezavisno od bilo koje tekuce procedure.
To bi vec zapravo bio TSR, pa vise i nisam siguran da je problem resiv
unutar CLIPPERa. Jel' sam u pravu?
Inace to (proc) je provera pristiglog e-maila (posto je stvar na mrezi) sa
ostalih radnih stanica.
Mozda je bolji nacin onda vremenska kontrola (da proverava pristigle poruke
u vremenskim intervalima) ?
clipper.329nenadovic,
-> #318, nitroImam dosta zanimljiv algoritam za rešavanje ovog problema u READ
naredbi. Međutim on ne funkcioniše u menijima. S druge strane nemam
nikakav SCREEN SAVER poput tog zvezdanog neba. Pozivam
zainteresovane na dalju diskusiju po ovom pitanju.
clipper.330nenadovic,
Ako ima nekoga ko je radio sa clipper 5.3 i exospace-om, koji
neverovatno radi sa extended memorijom i da je uspeo da strpa bilo
kakav program da radi efektno na 2 MB nek mi se javi.
Uzgred nijedan program koji zahteva puno ext. memorije ne radi kako
valja pod windows-om (npr. grafički programi). Funkcija MEMORY() iz
programa pod windows-om uopšte ne vidi ext. memoriju, koliko god da
je ima. Zna li neko kako se ovo sređuje.
clipper.331mmarkovic,
-> #326, sasab>> Da. A ako je linkovano blinkerom, fajlovi se zovu $Tnnnnnn
> Novelovi temporary fajlovi imaju ovakvo ime.
Tačno, greška... nije zbog blinkera...
clipper.332cnenad,
-> #327, sasab=> set clipper=//swappath:'c:Đtemp' //temppath:'c:Đtemp' ....
=>
=> Paziti pri tome da na disku ima dovoljno slobodnog prostora. U NG
Da li je moguće strpati u BLINKER EXECUTABLE CLIPPER direktivu za TEMP
direktorijum koja se odnosi na deklarisanu TEMP enviroment promenljivu
u AUTOEXEC.BAT datoteci. Znači nešto poput: BLI EXE CLI //TEMPPATH:%TEMP%
Znači, ovo bi bilo slično SET CLIPPER==//temppath s time što ja ne moram
da razmišljam gde je kome TEMP dir. osim ako SET TEMP ne postoji u
AUTOEXEC-u ?
clipper.333sobrenovic,
HELP HELP HELP HELP HELP HELP
Jedan od (mojih) instaliranih programa povremeno (ne uvek na istim
mestima ali uvek u toku pisanja/izmena na disku ili azuriranja
indeksa) javi CORRUPTION DETECTED. Znam sta to znaci, ali ne znam
zasto. Svi ostali programi rade ok, windows radio ok... Ploca je
386SX, 4 Mb RAM, disk 520 Mb itd.
Clipper je, mislim, 5.2c. Da nije bag u clipper-u? Datoteke
izgledaju sasvim normalno a, uz put, ni jedna nema vise od 1500
slogova.
Bug inside? Yes.
clipper.334nitro,
HI svim CLIPOVIMA
Jel bi neko mogao da mi napise sta je sve potrebno da napravim
program za PP na veliko i kako se radi to njihovo knjigovodstvo
i kakvi izvodi se tu prave .
Ili najbolje ako neko vec ima neki program da mi da da pogledam
samo kako to izgleda sa korisnicke strane ,a ja cu po uzoru na
taj program napraviti slican program za PP na veliko
Unapred zahvalan svakom ko nesto uradi po ovom pitanju
pozdrav, Vesko
clipper.335nitro,
HI
RESIO SAM ONO SA ZVEZDANIM NEBOM
evo kako potreban vam ce CA-TOOL biblioteka
CT.lib
primer
Set Key K_F12 To Scr_Saver() // pozivanje
zvezdanog neba sa
tasterom F12
KEYSEC(K_F12,Br_Secundi,-1,.T.) // Ceka broj sekundi
i ako nije nista
pritisnuto simulira
pritisak taster F12
PROC Scr_Saver
Set Key K_F12 To
KEYSEC()
........
I DALJE SE NALAZI ZV.NEBO
........
RETURN
clipper.336whitie,
-> #328, pdeze> Inace to (proc) je provera pristiglog e-maila sa ostalih radnih stanica.
Provera? Ako u mreznom selu ne naredis drugacije, poruka ce ti uleteti
u svaki kliper program. Ako ti je poruka namenjena programu a ne korisniku
( simuliranje semafora, neki specificni trigeri po slogovima, obrada rifre-
sa ... ), onda svakako koristis neku od biblioteka za rad na mrezi. Sam
kliper je tu dosta tanak. Ja koristim ne tako populare Ca-Cliper Tools i
tu postoji NNETMSGKEY() koji u stanju cekanja imitira SET KEY. Poruku u
bekgraundu primi kliper, a dalju obradu poruke pristigle u bafer radi tvoja
proc.
> To bi vec zapravo bio TSR i nisam siguran da je problem resiv unutar CLIPPERa
Da to je TSR. Preseca se jedan interapt. Sto te to muci. Cisto programiraj
i ne brini... previse ;-) ! Dzaranje po mrezi i video memoriji graficke kar-
tice, setanje po ext memoriji i sl. uopste nisu elegantne i lake rabote. Al'
su zato slatke.
A ko voli lepe stvari mora se navici na likru u carapama. ;-)
Bljak. :-(((( ko ih izmisli ...
clipper.337livan,
-> #328, pdeze-> To bi vec zapravo bio TSR, pa vise i nisam siguran da je problem resiv
-> unutar CLIPPERa. Jel' sam u pravu?
Mislim da je bolje da to uradiš u Clipperu nego da upetljavaš nekakve
TSR-ove. Pogledaj kako je to Batoćanin rešio. Ima članak o tome u
majskom broju PC PRESS-a. Nisam analizirao njegovo rešenje, ali
verovatno ti može pomoći.
clipper.338mr.cikila,
Hi!
Molim vas da mi odgovorita na ovo pitanje.
Razvijam neku aplikaciju te su mi default
clipper boje dosadile. Uz pomoc Funky-a,
sam procitao da mogu da menjam boje u
opsegu od 200.000 i kusur.
E sada kako to uraditi da recimo kada
dam SetColor('N/RB') u mom listungu ne
dobijem crvenu na nekoj roze podlozi,
vec neku boju na nekoj boji koju sam
ja unapred definisao sa r,g i b komponentom.
Pomalo ni je hitno, pa ko zna neka nakaci.
Every best!
clipper.339nenadovic,
-> #338, mr.cikilane znam koju verziju koristiš. u 5.3 sa grafikom postoji prosta
naredba GSETPAL koja svakoj od 16 boja daje određene RGB
karakteristike. za ranije verzije mislim da se problem može
rešiti preko CLIPPER TOOLS biblioteke
clipper.340sasab,
-> #332, cnenad> Da li je moguće strpati u BLINKER EXECUTABLE CLIPPER direktivu
> za TEMP direktorijum koja se odnosi na deklarisanu TEMP
> enviroment promenljivu u AUTOEXEC.BAT datoteci. Znači nešto
> poput: BLI EXE CLI //TEMPPATH:%TEMP%
Ovo ne može, jer se %TEMP% u toku linkovanja razvija (evaluira),
tj. u exe će biti upisan tekući sadržaj environment promenljive
TEMP.
Znači ako si imao
set temp=c:Đtrtmrt
blinker fi myapp bli exe clipper //temppath:%temp%
prilikom izvršavanja aplikacije tražiće se direktorijum
c:Đtrtmrt, bez obzira na šta trenutno ukazivala prom TEMP.
> Znači, ovo bi bilo slično SET CLIPPER==//temppath s time što
> ja ne moram da razmišljam gde je kome TEMP dir. osim ako SET
> TEMP ne postoji u AUTOEXEC-u ?
A da aplikaciju startuješ batch fajlom
myapp //swappath:%temp% //temppath:%temp% ....
Samo pazi, ako direktorijum na koji ukazuje swappath ne postoji,
pozdraviće te Internal Error 5311 - VMM unable to create swap file.
Za temppath Internal Error 4424 - Temp file creation error.
To se neće javiti odmah po startovanju aplikacije nego tek (i ako)
zatreba swap ili temp fajl.
Bogi
clipper.341dvesic,
-> #333, sobrenovic> Jedan od (mojih) instaliranih programa povremeno (ne uvek na istim
> mestima ali uvek u toku pisanja/izmena na disku ili azuriranja
> indeksa) javi CORRUPTION DETECTED. Znam sta to znaci, ali ne znam
> zasto. Svi ostali programi rade ok, windows radio ok... Ploca je
Koji RDD, koji indeksi ? Da li na mestu gde radiš izmenu sloga stoji
aktivan neki indeks i da li menjaš po ključu tog indeksa ?.
Generalna je preporuka da kada se radi Replace po polju koje ulazi u
aktivni indeks, uradite jedno Set Order To 0, Replace pa vratite indeks
Dodaj još koju informaciju za detaljniji pregled.
clipper.342cnenad,
-> #340, sasab=> Ovo ne može, jer se %TEMP% u toku linkovanja razvija (evaluira),
Pretpostavio sam da je tako, ali me mrzelo O:) da proveravam.
=> A da aplikaciju startuješ batch fajlom
Izvodljivo je samo u nekim situacijama jer se ponekad programu prosleđuju
argumenti sa komandne linije.
clipper.343mmarkovic,
-> #333, sobrenovic> Jedan od (mojih) instaliranih programa povremeno (ne uvek na
> istim mestima ali uvek u toku pisanja/izmena na disku ili
> azuriranja indeksa) javi CORRUPTION DETECTED.
Ova greška obično znači da na nekom mestu nisi otvorio sve
indeksne fajlove, a dodavao si slogove. "Centralizuj" otvaranje
fajlova tako da ne možeš da zaboraviš neki...
> Clipper je, mislim, 5.2c. Da nije bag u clipper-u?
Možda, ali teško. Prelazi pod hitno na 5.2e. Ovaj bag mi ne deluje
da je do Clippera, ali ima drugih...
> Datoteke izgledaju sasvim normalno a, uz put, ni jedna nema vise od 1500
> slogova.
.dbf da, ali neki .ntx (ili šta već koristiš) nije...
A kad iz DBU-a otvoriš isti .dbf i sve pripadajuće indexe, javlja
li se greška? Ako je moja pretpostavka dobra, trebalo bi pri kretanju
kroz browse ili kod seek...
clipper.344mmarkovic,
-> #342, cnenad> Izvodljivo je samo u nekim situacijama jer se ponekad programu
> prosleđuju argumenti sa komandne linije.
Nema veze, napravi ovako APP.BAT:
@echo off
myapp %1 %2 %3 %4 %5 //swappath:%temp% //temppath:%temp%
Uopšte ne smeta ako ima manje od 5 parametara. Teraj dalje ako treba.
clipper.345cnenad,
-> #344, mmarkovic=> myapp %1 %2 %3 %4 %5 //swappath:%temp% //temppath:%temp%
Pazi, stvarno radi :) Mislio sam da će problem napraviti deo mog programa
koji kontroliše šta je uneto kao prekidač ali je izgleda Clipper bacio
negde u nebesa ono //info ili šta si ti naveo gore :)
clipper.346mr.cikila,
Hi!
Posle celih pet godina rada sa klipetom, resih da komplet
prepravim razne I/O,meni,... funkcije, pa stigoh do
generisanja izvestaja. Intresuje me kako da automatizujem
pravljenje odgovarajucih formi, tj. da ne vezujem za svaki
pregled po jednu proceduru za stampanje, a ne izgleda mi dovoljno
elegantno da izvestaj stampam u txt fajl koji cu prvo da
prikazem na ekranu(sa svim kontrolnim kodovima za bold,...),
pa zatim da stampam na stampacu.
Na pamet mi pade neka proc. koja u zavisnosti od oa se on seta.
Intresovalo bi me
kako bi se to radilo sa bazom od cirka 20000 stavki, tj.
brzina.
Znam da je naporno, ali udf se ne rade tako cesto.
Bye!
clipper.348nitro,
HI svim Clipovima
Dali neko zna kako u Clipper programima da uvacim da se izvrsava
neka od mojih funkcija a da program nastavi dalje sa radom
da se neka pozvana funkcija izvrsava sve vreme rada programa .
I kako da namestim zvuk da program odsvira dobrodoslicu a da
neceka da se zavrsi muzika vec da nastavi sa radom a muzika kad
se zavrsi zavrsi .
Nadm se da ste razumeli sta sam hteo da kazem , ako nisam
ponovicu ponovo
unapred hvala svakom ko zna nesto sto pomaze
Pozdrav , Vesko
clipper.349sasab,
-> #342, cnenad> => A da aplikaciju startuješ batch fajlom
>
> Izvodljivo je samo u nekim situacijama jer se ponekad programu
> prosleđuju argumenti sa komandne linije.
myapp %1 %2 %3 %4 %5 %6 %7 .... //swappath:%temp% //temppath:%temp% ....
ili ako postoji 4DOS/NDOS
myapp %& //swappath:%temp% //temppath:%temp% ....
Argumenti sa prefiksom // su iz programa nevidljivi.
Proc Main(cP1)
? cP1
quit
pozvan sa
myapp //trtmrt
daće NIL
Bogi
clipper.350mr.cikila,
-> #339, nenadovicHi!
Mora da mi je promakla ta naredba iz clp-a, ali posto sam
vec sve razvio, onda je sada vec kasno.
Inace imao sam jedan previd, te se izvinjavam svima koji
su izgubili vreme citajuci moju poruku, naime u ja nisam
uopste ulinkovao fajl koji sadrzi program za inicijalizaciju
boja, a nisam poziv procedure nisam izveo, te nije ni
cudo sto prg. nije radio :))
U svakom slucaju, hvala jod jednom.
Every best!
clipper.351mr.cikila,
Hi!
Da li ste primetili ovo. Clp 5.3+Blinker 3.1+Funcky
Maska karikirano izgleda ovako:
┌─────────────────────────────────────────────
│ Sifra ________ Opis _____________________ ....
I sta se desava?
Kada sam na prvom polju 'Sifra' sve je Ok. Cim stisnem Enter,
i predjem na polje 'Opis', brise mi se slovo O, te ostaje 'pis'
:))).
Intresuje me da li neko zna, zasto se ovo dogadja, i postoji li
mogucnost da se to zaobidje, jer sam ostavio 4 polja razmaka
izmedju zavrsetka get-a za sifru i Opis-a.
Every best!
P.S. Da li je slucajno menjao getsys.prg koji se dobija uz clp5.3,
tako da u vecim getovima, umesto space-a se pojave male boginje
(tako od miloste zovem one tackice, koje popunjavaju tu
prazninu, cek i u "najobicnijem" Norton Commanderu!)
clipper.352dr.grba,
Six 3 Eval za Clipper 5.2, preneto sa PRO-a po želji mog druga
Peacocka, koji se pati u kontaktu sa predmetnim sistemom.
Kolega modulatore, daj nalog da se prenese u direktorijum.
six3eval.zipclipper.354goxx,
da li bi neko mogao da okaci inkey.ch iz poslednje verizje clipper-a?
hitno mi je potreban, a ne mogu da samo zbog njega skidam arhivu sa
sezama.
Goran
clipper.355tomil,
-> #354, goxx> da li bi neko mogao da okaci inkey.ch iz poslednje verizje
> clipper-a?
Evo za verziju 5.2e.
inkey52e.zipclipper.356goxx,
-> #355, tomilpuno hvala za inkey.ch
Goran
clipper.357nenadovic,
-> #351, mr.cikilaproveri picture za polje sifra, negde ti se u ~itanju menja
du`ina
`iveo clipper, dole fox !!
clipper.358nenadovic,
Narode zna li neko gde da na|em standard ili professional
verziju LLIBG za clipper?
'o}u grafiku !
clipper.359dr.grba,
Za mog nestrpljivog prijatelja Peacocka i za sezamovsku populaciju,
Blinker 3.3 Update, via SezamPro.
bli330en.zipclipper.360tvucko,
-> #358, nenadovicEditsofT , 21000 Novi Sad, Vojvodjanskih brigada 7/XIII
Tel. (021) 29-857
clipper.361stameni,
Interesuju me "lične karte" Clippera 5.2 i starijih verzija,
odnosno koliko su veliki i kakav im je hardver potreban.
clipper.362kamioni,
Interesuje me kako u Clipperu 5.3 da napravim mogucnost da vidim slike PCX ili
nekog drugog formata, ali da ne koristim one fajlove koji se nalaze na Sezamu
jer traze registraciju LIB-a.
Unapred zahvalan.
clipper.363mmarkovic,
-> #361, stameni> Interesuju me "lične karte" Clippera 5.2 i starijih verzija,
> odnosno koliko su veliki i kakav im je hardver potreban.
Najnovija verzija je 5.2e (ima i 5.3, ali pitaš za 5.2),
sasvim se udobno radi na 386DX-40MHz sa 2-4 MB RAM-a.
Obavezno uzmi i BLINKER linker i SIX biblioteku...
Aplikacije takođe odlično rade na ovoj platformi, mada može čak i
skromnija.
Instalacija ide na 3 x 1.44 diskete.
P.S. Zanemari starije verzije (eventualno može 5.01a),
i ovo je već pregaženo...
clipper.364cnenad,
-> #363, mmarkovic=> Aplikacije takođe odlično rade na ovoj platformi, mada može čak i
=> skromnija.
Ipak je na 286 mnogo sporo pa treba izbegavati. Ako je još disk stariji, pa
makina ima samo 1 Mb, ma treba zaboraviti.
=> P.S. Zanemari starije verzije (eventualno može 5.01a),
Najbolja je varijanta koju si opisao:
5.2 + patch na 5.2e
Blinker 3.2
Six RDD 2 + patch(evi)
clipper.365arazumenic,
-> #363, mmarkovic-> Najnovija verzija je 5.2e (ima i 5.3, ali pitas za 5.2),
-> sasvim se udobno radi na 386DX-40MHz sa 2-4 MB RAM-a.
Sasvim udobno radi i na 286 sa 1Mb RAM-a.
-> Obavezno uzmi i BLINKER linker i SIX biblioteku...
Zavisi. Ako ne treba da radi u protected modu, onda je (po meni) ipak bolji
rtlink koji stize uz sam Clipper.
clipper.366mmarkovic,
-> #365, arazumenic> -> Obavezno uzmi i BLINKER linker i SIX biblioteku...
> Zavisi. Ako ne treba da radi u protected modu, onda je (po
> meni) ipak bolji rtlink koji stize uz sam Clipper.
BLINKER _ne znači_ obavezno protected mod. Preporučio sam ga
zbog inkrementalnog linkovanja, brzine!
Ako je bitna veličina EXE-a, onda je RTLINK u PLL modu bolji...
clipper.367arazumenic,
-> #366, mmarkovic-> BLINKER _ne znaci_ obavezno protected mod. Preporucio sam ga
-> zbog inkrementalnog linkovanja, brzine!
Naravno da blinker ne znaci obavezno protected mod.
Ja sam govorio o izvrsnim verzijama programa a ne razvojnim. Za razvoj je
blinker neuporedivo bolji. Takodje ako je ciljni racunar 386 sa 4 MB memorije,
ili bolji, onda je opet blinker zbog protected moda u prednosti. Ali, s
obzirom da se i dan danas koriste 286 i 386SX racunari sa 1-2MB RAM-a, onda je
tu bolji rtlink.
-> Ako je bitna velicina EXE-a, onda je RTLINK u PLL modu bolji...
PLL nisam u nikada koristio, osim kada sam ga probao da vidim kako radi.
Nesto mi se tu nije svidelo, ali sada vise ne znam sta.
clipper.368mmarkovic,
-> #367, arazumenic> Naravno da blinker ne znaci obavezno protected mod.
Učinilo mi se da si to rekao i da bi čovek tako
mogao da shvati.
>-> Ako je bitna velicina EXE-a, onda je RTLINK u PLL modu bolji...
> PLL nisam u nikada koristio, osim kada sam ga probao da vidim kako radi.
> Nesto mi se tu nije svidelo, ali sada vise ne znam sta.
Za RTLINK u PLL modu:
Mogle su da ti se ne svide sledeće stvari:
1. Kad god izvršiš update clippera, stari programi ne rade
do kompajliranja i linkovanja sa novoizgrađenom .PLL bibliotekom
2. Takav EXE traži nešto više RAM-a pošto su u PLL-u i
neke "višak" stvari za konkretan program
3. Obzirom da u RAM-u ima i nepotrebnih stvari, sigurno
je da program radi sporije nego što bi trebalo
(mada ovo nisam merio...)
Mogle su da ti se svide sledeće stvari (u PLL modu):
1. _Mnogo_ brže linkovanje...
2. _Mnogo_ manji EXE...
clipper.369arazumenic,
-> #368, mmarkovic-> 1. Kad god izvrsis update clippera, stari programi ne rade
-> do kompajliranja i linkovanja sa novoizgradenom .PLL bibliotekom
BINGO!
To je to. Upravo mi se to desilo, i zbog toga sam ga i batalio.
clipper.370bokir,
Ima li novosti o Six-u za Clipper 5.3?
clipper.371bokir,
Kako da u protected mode programu dobijem moju funkciju za obradu
grešaka, a ne "Protection Error". ErrorBlock() mi radi samo u real
modu.
Koristim Clipper 5.2e + Blinker 3.3
clipper.372arazumenic,
-> #368, mmarkovic-> 1. Kad god izvrsis update clippera, stari programi ne rade
-> do kompajliranja i linkovanja sa novoizgradenom .PLL bibliotekom
BINGO!
To je to. Upravo mi se to desilo, i zbog toga sam ga i batalio.
clipper.373dvesic,
-> #367, arazumenic> ili bolji, onda je opet blinker zbog protected moda u prednosti.
> Ali, s obzirom da se i dan danas koriste 286 i 386SX racunari sa
> 1-2MB RAM-a, onda je tu bolji rtlink.
Zašto ?
Ako može malo detaljnije ...
clipper.374bokir,
Ima li neko podršku za srpski jezik za Six 2.03?
clipper.375arazumenic,
-> #373, dvesic-> Zasto ?
->
-> Ako moze malo detaljnije ...
Onaj famozni VMIF, koji se mnogo cesce javlja sa blinkerom nego sa rtlinkom.
clipper.376tomil,
Šta znači greška:
Unrecoverable error 650: Processor stack fault ?
Nije opisano u NG.
Clipper 5.2e + Blinker 3.1, eksterna biblioteka Artful Gold.
clipper.377mvincic,
-> #376, tomil> Šta znači greška:
>
> Unrecoverable error 650: Processor stack fault ?
Ova poruka se javlja ako postoji greška u Clipper sistemu za
obradu run time grešaka ErrorHandler (u Errorsys.prg) . U
situaciji kad ti se javi prva greška, automatski se poziva
ErrorHandler, koji i sam ima grešku, pa rekurzivno poziva
samog sebe, dok ga konačno ne izbaci poruka processor stack fault.
clipper.378sasab,
--- Odgovor na baze.podataka.167, mmarkovic
>> Clipper, Fox i slične alatke šibaju kroz mrežu celu tabelu
>> (DBF i indeksne fajlove), pa se onda ista na radnoj stanici
>> pretražuje i tek onda sabiraju vrednosti polja.
>
> Samo u slučaju loše napisanih obrada-selekcija sa upotrebom
> FOR klauzule (ili SET FILTER). Ako koristiš neki optimizator
> upita (SIX RDD sa MachSIX, Comix), čak ni to. Onda FOR u
> Clipperu postaje jednako efikasan kao WHERE u SQL-u. Dakle,
> šalju se stvarno samo slogovi koji ispunjavaju uslov,
> analizirajući indekse.
Bez obzira na optimizator (MachSIX, Rushmore...) uvek kroz
novel mrežu ide cela tabela. Optimizacija, filtriranje, scope...
sve se to radi u lokalu. Za filtriranje direktno na serveru
ti treba neki NLM (verovatno onaj koga tražiš pitaj boga od
kada :).
--- Odgovor na baze.podataka.183, dvesic
> Nema tu neke magije, MachSix ili Comix koristi dostupne
> informacije o postojećim indeksima nad tabelom i pokušava da
> suzi broj slogova koe treba obraditi.
Ali se taj pokušaj vrši lokalno. Sa servera se opet dovlači cela
tabela.
Bogi
clipper.379mmarkovic,
-> #378, sasab> Bez obzira na optimizator (MachSIX, Rushmore...) uvek kroz
> novel mrežu ide cela tabela. Optimizacija, filtriranje,
> scope... sve se to radi u lokalu. Za filtriranje direktno na
> serveru ti treba neki NLM (verovatno onaj koga tražiš pitaj
> boga od kada :).
Nisi u pravu, a zbog skepticizma imam utisak da nisi ni probao. ;)
I ja sam bio skeptik, ali proba me je razuverila.
Analizom indeksa, a u indeksu samo jedno-dva-tri polja (pa je mnogo
manji) optimizator dolazi do brojeva slogova, pa dovlači samo njih.
Taj NLM može da bude strašno efikasan kada se od njega zahteva, recimo,
indeksiranje. Obavlja se na "lokalnom" disku (naravno, sa stanovišta
servera). Filteri i uslovne naredbe, takođe mogu da budu efikasnije, ali
ne verujem baš toliko. Zato se i nisam tako mnogo trudio da nabavim
NLM.
Ozbiljni Clipper programeri nikada nisu ni koristili filtere i FOR
klauzule. Scope sam realizovao custom skiperima u Tbrowse objektima.
Zato prosto linkovanje i ne daje rezultate kada su programi pisani
tako da ne računaju na ove naredbe.
Ali! Kada računaš na ove osobine, rezultati umeju da budu fenomenalni.
> Ali se taj pokušaj vrši lokalno. Sa servera se opet dovlači cela tabela.
Kao što rekoh, jok mori!
P.S. Sećaš se daaavne diskusije na niškom BBS-u Tangram? Six-MachSix kao
da su napisali po mojim željama! Ma, ko li im je javio?!? ;)))
clipper.380whitie,
-> #378, sasab>>> Clipper, Fox i slicne alatke sibaju kroz mrezu celu tabelu
>>> (DBF i indeksne fajlove), pa se onda ista na radnoj stanici
>>> pretrazuje i tek onda sabiraju vrednosti polja.
>> ...
> Bez obzira na optimizator (MachSIX, Rushmore...) uvek kroz
> novel mrezu ide cela tabela. Optimizacija, filtriranje,
> scope... sve se to radi u lokalu.
:-)
Moze biti, mada, neces mi verovati, ta ista cela tabela
kroz eternet proleti 100 puta brze kada je ukljucen indeks. :-)
Da ne dokazujemo nesto sto je jasno. Kroz mrezu ide ceo indeksni
fajl, a dbf i ostali indeksi samo ono sto ti treba.
clipper.381madamov,
-> #378, sasab> Bez obzira na optimizator (MachSIX, Rushmore...) uvek kroz
> novel mrežu ide cela tabela. Optimizacija, filtriranje, scope...
> sve se to radi u lokalu.
Uze mi reč, tj. pitanje, sa tastature. Otud i moje pitanje u temi
baze.podataka da li se nešto mora instalirati i na serveru.
clipper.382madamov,
-> #379, mmarkovic> Analizom indeksa, a u indeksu samo jedno-dva-tri polja (pa je mnogo
> manji) optimizator dolazi do brojeva slogova, pa dovlači samo njih.
Znači on interno, bez pomoći servera, pošto dovuče ceo indeksni fajl preko
mreže, vrši sam seek-ovanje po fajlu tabele kojeg normalno otvori kao i svaki
drugi fajl sa mrežnog diska? Novell, pretpostavljam, ima neku komandu s kojom
se ovo može optimizovati da razlike u brzini budu primetne i na manjim
fajlovima? Ovakva tehnika ima rezultate na velikim tabelama (mada je onda i
indeksni fajl velik, a njega mora celog da dovuče na radnu stanicu da bi
obavio pretraživanje), na malim je to priličan overhead, što bi rekli
anglosaksonci.
clipper.383madamov,
-> #380, whitie> Kroz mrezu ide ceo indeksni fajl, a dbf i ostali indeksi samo ono sto ti
treba.
Što će reći da čim upotrebiš pretraživanje po polju koje nije indeksirano, eto
tebi cele tabele preko mreže na radnu stanicu da ona izvrši pretraživanje.
clipper.384mmarkovic,
-> #380, whitie> Da ne dokazujemo nesto sto je jasno. Kroz mrezu ide ceo
> indeksni fajl, a dbf i ostali indeksi samo ono sto ti treba.
Ma čak ni on! Idu samo slogovi koji ispunjavaju uslov
ako je ključ indexa pogodan. Naravno, paziš šta ti je
ključ i kako postavljaš uslove...
clipper.385mmarkovic,
-> #382, madamov> Ovakva tehnika ima rezultate na velikim tabelama (mada je onda i
> indeksni fajl velik, a njega mora celog da dovuče na radnu
> stanicu da bi obavio pretraživanje), ...
Ma, odakle vam ideja da kopira ceo indeksni fajl na radnu stanicu?!?
Indeksni fajl je binarno stablo, pristup fajlovima je random,
nema nikakve potrebe da se dovlači ceo indeksni fajl.
Clipper mrežni disk vidi potpuno isto kao lokalni, samo u
današnjim uslovima sporiji. Lockovi su mogući i na lokalnom
disku (DOS SHARE), a Clipper i NetWare poštuju DOS pozive.
Obaviću sutra experiment sa recimo, 100.000 slogova i rezultatima.
clipper.386mmarkovic,
-> #383, madamov> Što će reći da čim upotrebiš pretraživanje po polju koje
> nije indeksirano, eto tebi cele tabele preko mreže na
> radnu stanicu da ona izvrši pretraživanje.
Ovo je tačno. A gde bi moglo drugačije?
clipper.387whitie,
-> #383, madamov>> Kroz mrezu ide ceo indeksni fajl,
>
> Sto ce reci da cim upotrebis pretrazivanje po polju koje nije
> indeksirano, eto tebi cele tabele preko mreze na radnu stanicu
Prvo,- scope komande ce u tom slucaju izazvati gresku i prekid pro-
grama, pa na stanicu ne stize nista :-) .
Drugo,- ovako se nesto radi ili kad neznas da organizujes podatke,
ili kad ti je to pretrazivanje potrebno jednom u sto godina. U svim
drugim slucajevima indeks postoji.
I trece,- u realnim uslovima ( transakcije, semafori, provera prava
prisustva, formirani pogledi, medjuserverna saradnja, miroring ... )
ovaj ce zahtev zamrznuti svaki DB server ma kako se on zvao ...
clipper.388whitie,
-> #384, mmarkovic>> Kroz mrezu ide ceo indeksni fajl,
>
> Ma cak ni on!
Ma jasno. Htedoh reci da se DBF fajl 'ubode' tacno u potreban
slog, a za indeks treba da se prosetas po 'drvcetu' da ubodes ono
sto ti treba. Ako si vec na pravom mestu nema mrdanja.
clipper.389firus,
-> #385, mmarkovic> Indeksni fajl je binarno stablo, pristup fajlovima je random,
> nema nikakve potrebe da se dovlaci ceo indeksni fajl.
BTW, ne bih smeo da se zakunem (nikada nisam koristio
doticni), al' verujem da je _i_ kod Clipper-a, kao kod 99%
ostalih DBMS-a za PC (ako ih smem tako nazvati, posto se ne
uklapaju svi bas u potpunosti u definiciju) indeksni fajl
B-stablo koje _nije_ ista stvar kao i binarno stablo (u sustini,
u vrlo specijalnim okolnostima, binarno stablo _jeste_ poseban
slucaj B-stabla).
Jes' da ovo sto sam rek'o nema direktne veze sa temom, al'
mislim da je korisno znati.
clipper.393mmarkovic,
-> #389, firus>> Indeksni fajl je binarno stablo, pristup fajlovima je random,
>> nema nikakve potrebe da se dovlaci ceo indeksni fajl.
>
> BTW, ne bih smeo da se zakunem (nikada nisam koristio
> doticni), al' verujem da je _i_ kod Clipper-a, kao kod 99%
> ostalih DBMS-a za PC (ako ih smem tako nazvati, posto se ne
> uklapaju svi bas u potpunosti u definiciju)...
Apsolutno si u pravu. Clipper je samo programski jezik,
daleko odmakao od dBase-a, posebno dobro prilagođen obradi podataka,
ali definitivno nije DBMS.
> ...indeksni fajl B-stablo koje _nije_ ista stvar kao i binarno stablo
> (u sustini, u vrlo specijalnim okolnostima, binarno stablo _jeste_
> poseban slucaj B-stabla).
Nisam se ovim nikada detaljno bavio, bilo mi je dovoljno
da stvar funkcioniše. Ali, bilo bi lepo, ako te ne mrzi, da
opširnije napišeš jednu porukicu ;) o B-stablima, binarnim stablima
> Jes' da ovo sto sam rek'o nema direktne veze sa temom, al'
> mislim da je korisno znati.
Ima, kako da nema! Nećemo valjda da samo razmenjujemo cenovnike.
clipper.395sasab,
-> #380, whitie> Da ne dokazujemo nesto sto je jasno. Kroz mrezu ide ceo
> indeksni fajl, a dbf i ostali indeksi samo ono sto ti treba.
Ne moramo da dokazujemo, ali bilo bi OK da se da razjašnjenje.
Probaću sutra. Linkovaću sa i bez optimizacije i proveriti koliko
je kila sa servera stiglo stanici.
clipper.396madamov,
-> #385, mmarkovic> Ma, odakle vam ideja da kopira ceo indeksni fajl na radnu stanicu?!?
Najlogičnije je, malo je previše da radi i SEEK po indeksima, jer je to jedini
način da, bez ičega instaliranog na serveru, sam obavi posao brže od kopiranja
cele tabele i svih indeksa preko mreže.
clipper.397madamov,
-> #386, mmarkovic> > Što će reći da čim upotrebiš pretraživanje po polju koje
> > nije indeksirano, eto tebi cele tabele preko mreže na
> > radnu stanicu da ona izvrši pretraživanje.
>
> Ovo je tačno. A gde bi moglo drugačije?
Drugačije je kod svega što ima klijent-server arhitekturu. Bez obzira kakvo je
polje, indeksirano ili ne, pretraživanje uvek obavlja server, klijent samo
šalje upit i dobija rezultat u obliku dinamičke selekcije slogova na serveru.
On posle na toj selekciji može da vrši dodatna pretraživanja da bi je suzio,
bez da išta prođe kroz mrežu, osim eventualno samo prvog sloga te selekcije.
clipper.398madamov,
-> #387, whitie> Drugo,- ovako se nesto radi ili kad neznas da organizujes podatke,
> ili kad ti je to pretrazivanje potrebno jednom u sto godina. U svim
> drugim slucajevima indeks postoji.
Nije tačno, tvoj rezon na kraju dovodi do toga da se svako polje indeksira što
je bespotrebno trošenje prostora i resursa. Moguće je da korisnik pokrene
pretraživanje po neindeksiranom polju, dakle umesto po šifri kupca krene po
punom nazivu kupca koji nije indeksiran. Naravno, ako se takva pretraživanja
često ponavljaju, onda polje svakako treba indeksirati.
> I trece,- u realnim uslovima ( transakcije, semafori, provera prava
> prisustva, formirani pogledi, medjuserverna saradnja, miroring ... )
> ovaj ce zahtev zamrznuti svaki DB server ma kako se on zvao ...
Ja znam za jednog kojeg neće, iz moje prakse na uzorku od 300.000 slogova, a
iz tuđe na nekih 4.000.000 slogova.
clipper.399sasab,
-> #379, mmarkovic> Nisi u pravu, a zbog skepticizma imam utisak da nisi ni probao.
Ma probao sam, ali dobici baš i nisu spektakularni. Doduše u
uputstvu i piše da su rezultati najbolji kada nije selektovan ni
jedan tag, ali meni u 99% posto slučajeva trebaju rezultati po nekom
redosledu. Linkujem MachSix čisto nek se nađe, ali nešto ne vidim
efekte.
> P.S. Sećaš se daaavne diskusije na niškom BBS-u Tangram?
> Six-MachSix kao da su napisali po mojim željama! Ma, ko li im
Eh, tada me Clipper nije mnogo zanimao, pa nisam pratio.
Bogi
clipper.400sasab,
-> #388, whitie>>> Kroz mrezu ide ceo indeksni fajl,
>>
>> Ma cak ni on!
>
> Ma jasno. Htedoh reci da se DBF fajl 'ubode' tacno u potreban
> slog, a za indeks treba da se prosetas po 'drvcetu' da ubodes
> ono sto ti treba. Ako si vec na pravom mestu nema mrdanja.
Hm, ima logike. Nije mi palo na pamet da razmišljam ovako.
Jednostavno sam posle par primera, primio rezultate (prilično slabe)
zdravo za gotovo.
Kao što rekoh, probaću ponovo.
Bogi
clipper.401mmarkovic,
-> #385, mmarkovic> Obaviću sutra experiment sa recimo, 100.000 slogova i rezultatima.
Pošto znam da bi vas mrzelo da probate, u prilogu je fajl za
Neverne Tome ;).
SIXOPT.ARJ = PROBA.LNK, PROBA.RMK i PROBA.PRG...
Prevedite sa RMAKE PROBA
Prvi put ga pokrenite sa
PROBA /C 100000
a kasnije samo sa
PROBA
Rezultati sa optimizacijom su 0.2-0.3 : 20 sekundi, a sa porastom
broja slogova, odnos je još i bolji.
Na mrežnom disku su rezultati oko 2.5x slabiji što je i odnos
brzina pristupa lokalni HD/mrežni HD.
Potreban vam je Clipper 5.2, Six 2, Blinker 3.1...
P.S. Ako treba, da šaljem PROBA.EXE (oko 500K) ? madamov?
P.S." Hrabriji i strpljiviji neka skinu * sa BROWSE(), i, neka
probaju da se kreću kroz tabelu... ;)
sixopt.arjclipper.402mmarkovic,
-> #396, madamov>> Ma, odakle vam ideja da kopira ceo indeksni fajl na radnu stanicu?!?
>
> Najlogičnije je, malo je previše da radi i SEEK po indeksima, jer je to
> jedini način da, bez ičega instaliranog na serveru, sam obavi posao brže
> od kopiranja cele tabele i svih indeksa preko mreže.
E, baš to radi... :) Dobra biblioteka!
clipper.403mmarkovic,
-> #399, sasab>> Nisi u pravu, a zbog skepticizma imam utisak da nisi ni probao.
>
> Ma probao sam, ali dobici baš i nisu spektakularni. Doduše u
> uputstvu i piše da su rezultati najbolji kada nije selektovan
> ni jedan tag, ali meni u 99% posto slučajeva trebaju rezultati
> po nekom redosledu. Linkujem MachSix čisto nek se nađe, ali
> nešto ne vidim efekte.
Nemaš u programima naredbe na kojima bi efekti bili drastični.
Ni u mom BIS-u efekata ne bi bilo, SIX/MACHSIX tada nisu postajali
i sve je rađeno klasično: seek <key> ; while <uslov>; ... ;end
clipper.404mmarkovic,
-> #397, madamov>> Ovo je tačno. A gde bi moglo drugačije?
>
> Drugačije je kod svega što ima klijent-server arhitekturu. Bez
> obzira kakvo je polje, indeksirano ili ne, pretraživanje uvek
> obavlja server, klijent samo šalje upit i dobija rezultat u
> obliku dinamičke selekcije slogova na serveru. On posle na toj
> selekciji može da vrši dodatna pretraživanja da bi je suzio,
> bez da išta prođe kroz mrežu, osim eventualno samo prvog sloga
> te selekcije.
Brzina pretraživanja na serveru može da bude samo nekoliko puta veća.
Ovde govorimo o dobicima od nekoliko desetina do stotina
puta (ako se koristi indeks).
Dakle, ako se ne koriste indeksi, ne pomažu ni kožne gaće, a kamo
li klijent-server arhitektura... ;)
clipper.405mmarkovic,
-> #398, madamov> Nije tačno, tvoj rezon na kraju dovodi do toga da se svako
> polje indeksira što je bespotrebno trošenje prostora i resursa.
Naravno da ovde treba biti umeren.
clipper.406firus,
-> #393, mmarkovic>> ...indeksni fajl B-stablo koje _nije_ ista stvar kao i binarno
>> stablo (u sustini, u vrlo specijalnim okolnostima, binarno
>> stablo _jeste_ poseban slucaj B-stabla).
>
> Nisam se ovim nikada detaljno bavio, bilo mi je dovoljno
> da stvar funkcionise. Ali, bilo bi lepo, ako te ne mrzi, da
> opsirnije napises jednu porukicu ;) o B-stablima, binarnim
> stablima
Ne mrzi me, al' malko sam u frci ovih dana - pokusavam
da navucem uslov za upis godine, tako da ce ovo morati da
priceka do, otprilike, 02.01. tekuce godine. Posle toga
cu pripremiti par tekstova o ovome, uz malo sorsa u
(najverovatnije) C-u, premda mi Pascal (ili Modula 2) deluje
kao razumnije resenje za predstavljanje i ilustraciju nekog
algoritma - zato na ostalima je da odluce: C ili Pascal !?
Zahvaljujem na razumevanju ... B)))
clipper.407firus,
-> #406, firus> priceka do, otprilike, 02.01. tekuce godine. Posle toga
^^
Mali lapsus tastaturas ... Ocigledno je da treba 10. ...
clipper.408mmarkovic,
-> #399, sasab> Ma probao sam, ali dobici baš i nisu spektakularni. Doduše u
> uputstvu i piše da su rezultati najbolji kada nije selektovan
> ni jedan tag, ali meni u 99% posto slučajeva trebaju rezultati
> po nekom redosledu.
Razlika nije tako velika. Ako ti u obradi nije važno kojim
redom ide, isplati se da redosled bude "natural". U svakom
slučaju, nije neka razlika. Efikasan je i ovako i onako.
> Linkujem MachSix čisto nek se nađe, ali nešto ne vidim efekte.
Samo ga ti linkuj, pogotovu ako imaš situaciju da korisnik
"sam" sastavlja filter.
clipper.409madamov,
-> #401, mmarkovic> P.S. Ako treba, da šaljem PROBA.EXE (oko 500K) ? madamov?
Hvala, ali nema potrebe. Jedino ako neko drug iizrazi želju.
clipper.410madamov,
-> #404, mmarkovic> Brzina pretraživanja na serveru može da bude samo nekoliko puta veća.
Od čega? Brzine pretraživanja na radnoj stanici? Samo pretraživanje možda, što
zavisi od toga kakvu konfiguraciju servera i radne stanice imaš, ali da bi
radna stanica dobila ono što treba da pretraži, to mora da prođe kroz mrežu.
Bilo koji server će pre da opsluži 100 zahteva za određenom selekcijom, nego
što će slogovi koje treba pretražiti proći kroz mrežu do radne stanice.
> Dakle, ako se ne koriste indeksi, ne pomažu ni kožne gaće, a kamo
> li klijent-server arhitektura... ;)
Pomaže, itekako, samim tim što sve to ne prolazi kroz mrežu da bi se posle
pretražilo na klijentu.
clipper.411madamov,
-> #405, mmarkovic> Naravno da ovde treba biti umeren.
Što ne znači da ti nekom prilikom, ma koliko ona retka bila, neće biti
potrebno pretraživanje po neindeksiranom polju.
clipper.412mmarkovic,
-> #406, firus> Posle toga cu pripremiti par tekstova o ovome, uz malo sorsa u
> (najverovatnije) C-u, premda mi Pascal (ili Modula 2) deluje
> kao razumnije resenje za predstavljanje i ilustraciju nekog
> algoritma - zato na ostalima je da odluce: C ili Pascal !?
Pošto sam te povukao za jezik ;), predlažem ipak Pascal - naj-
čitljivije je. Kompajleri su rasprostranjeniji, ako treba nešto
iskompajlirati (nego za Modulu 2).
Takođe, predlažem da pređeš sa teme PCPROG.6/clipper na PCPROG.6/razno,
biće više čitalaca.
> Zahvaljujem na razumevanju ... B)))
Ništa, ništa... ;) Čekamo ;)
clipper.413mmarkovic,
-> #410, madamov> Od čega? Brzine pretraživanja na radnoj stanici? Samo
> pretraživanje možda, što zavisi od toga kakvu konfiguraciju
> servera i radne stanice imaš, ali da bi radna stanica dobila
> ono što treba da pretraži, to mora da prođe kroz mrežu.
Da, mislio sam na to da je protok podataka 2-3 puta veći i
da je server 2-3 puta brži. To daje brzinu veću 4-9 puta, što
i nije nešto posebno. Čak i da je odnos još par puta bolji, ne
menja suštinu.
Suština je: ne mogu da poverujem da je nešto bazirano na
klijent-server arhitekturi, a da ne koristi indekse za selekciju.
Ili drugačije: čak i ne-klijent-server baza podataka (npr baza
realizovana Clipperom kao sredstvom), će potući po performansama
i klijent-server bazu, AKO ona ne koristi indekse (što ne verujem...)
> Bilo koji server će pre da opsluži 100 zahteva za određenom
> selekcijom, nego što će slogovi koje treba pretražiti proći
> kroz mrežu do radne stanice.
Ne znam sa kojom bazom i kojim DBMS-om ti radiš. Ja radim u banci
i garantujem da operateri bar 90% vremena provode u unosu podataka.
100 zahteva za nekom selekcijom? Teško... Mreža nije bila usko grlo.
clipper.414mmarkovic,
-> #409, madamov
>> P.S. Ako treba, da šaljem PROBA.EXE (oko 500K) ? madamov?
> Hvala, ali nema potrebe. Jedino ako neko drug iizrazi želju.
Šaljem ipak, pogotovu što je veličina ipak duplo manja
kad se arhivira... ;)
proba.arj