Nove funkcije #17519
Zatvoreninteraktivni xbase alat za servisera
100%
Fajlovi
Povezani tiketi 1 (0 otvoreno — 1 zatvoren)
Izmjenjeno od Ernad Husremović prije oko 16 godina
otpakovao u c:\harbour\bin
na dos konzoli rekao
set PATH=%PATH%:c:\harbour\bin
Izmjenjeno od Ernad Husremović prije oko 16 godina
napravio c:\bringout\ tu stavio exe
napravio c:\bringout\fakt i tu stavio dbf-ove
u FAKT-u ću testirati
test_1.prg
procedure main() local i use FAKT via "DBFCDX" i:=0 do while !eof() ? i, fakt->idroba, fakt->kolicina skip enddo
Izmjenjeno od Ernad Husremović prije oko 16 godina
C:\bringout\FAKT>hbrun test_1.prg
0 01 1.00000
Izmjenjeno od Ernad Husremović prije oko 16 godina
harbour je striktniji nego clipper, pa tako trazi deklaraciju varijabli (local i), te trazi eksplicitno da se kaze fakt->kolicina itd
ovo se moze iskljuciti, ali sad ne znam kako.
Izmjenjeno od Ernad Husremović prije oko 16 godina
test update-a dbf-a¶
procedure main() local i use fakt via "DBFCDX" exclusive i:=0 set order to 0 go top do while !eof() if fakt->idroba == "01" replace fakt->idroba with "05" endif skip enddo ? "zavrseno"
C:\bringout\FAKT>hbrun test_2.prg
zavrseno
Izmjenjeno od Ernad Husremović prije oko 16 godina
ovo ne radi ...
ali ovo radi:
procedure main() local i use fakt via "DBFCDX" exclusive i:=0 set order to 0 go top do while !eof() if LEFT(fakt->idroba,2) == "01" ? "replace", fakt->idroba replace fakt->idroba with "05" endif skip enddo ? "zavrseno"
C:\bringout\FAKT>hbrun test_2.prg
replace 01 zavrseno
isti bi efekat dobili i da smo rekli TRIM umjesto LEFT, ili fakt->idroba = "01" (a ne ==)
Izmjenjeno od Ernad Husremović prije oko 16 godina
je li sve ok ?
C:\bringout\FAKT>hbrun test_1.prg
0 05 1.00000
jeste ... sifra je sada "05"
Izmjenjeno od Ernad Husremović prije oko 16 godina
test_filter.prg
procedure main() local i cIdRoba:="01" use fakt via "DBFCDX" exclusive set filter to "IDROBA=&cIdRoba" set order to 0 go top ? fakt->reccount() cIdRoba:="05" set filter to "IDROBA=&cIdRoba" set order to 0 go top ? fakt->reccount()
Izmjenjeno od Ernad Husremović prije oko 16 godina
ne radi, ispravke:
procedure main() local cIdRoba cIdRoba:="01" use fakt via "DBFCDX" exclusive set filter to "IDROBA='&cIdRoba'" set order to 0 go top ? fakt->reccount() cIdRoba:="05" set filter to "IDROBA='&cIdRoba'" set order to 0 go top ? fakt->reccount()
Izmjenjeno od Ernad Husremović prije oko 16 godina
ma kakvi ja to brljam, evo ovo radi:
test_filter.prg
procedure main(cPar) public cIdRoba memvar->cIdRoba := cPar //? memvar->cIdRoba use fakt via "DBFCDX" exclusive set filter to TRIM(fakt->IDROBA) == memvar->cIdRoba //set filter to "IDROBA='&cIdRoba'" go top ? "start" ? "----------------------------------------------------" do while !eof() ? fakt->idroba skip enddo ? "----------------------------------------------------" ? "end"
C:\bringout\FAKT>hbrun test_filter.prg 01
start ---------------------------------------------------- ---------------------------------------------------- end reccount() = 1
C:\bringout\FAKT>hbrun test_filter.prg 05
start ---------------------------------------------------- 05 ---------------------------------------------------- end reccount() = 1
Izmjenjeno od Ernad Husremović prije oko 16 godina
- % završeno promijenjeno iz 0 u 90
Zaključak¶
koristeći standardnu clipper sintaksu (istina nešto striktniju), imamo interaktivni xbase alat koji podržava CDX DBF/FPT fajlove/indekse.
Napomene¶
hbrun bez parametara pokreće harbour "." konzolu, međutim to ovdje ne radi kako treba (ne prikazuje se ispravno vrh ekrana) jer sam ja nešto eksperimentisao sa visinom ekrana u ovom build-u, te sa drajverima konzolni output (radi se o mingw build-u od prvog maja).
U svakom slučaju, mislim da je pisanje prg-ova uvijek bolji način nego direktno udaranje po dot konzoli.
Istina i to nekada zatreba, pa prvom prilikm treba napraviti build koji će i ovo podržavati.
Izmjenjeno od Ernad Husremović prije oko 16 godina
Nerazjašnjena pitanja¶
Da li nakon update-a baze ovim alatom treba reindeksirati bazu (da li je index compatibilan sa cliperovim) ? Mislim da ne treba, ali nisam to testirao
Izmjenjeno od Ernad Husremović prije oko 16 godina
set order to tag¶
test_tag.prg
procedure main() use fakt via "DBFCDX" exclusive set order to tag "IDROBA" go top ? "start" ? "----------------------------------------------------" do while !eof() ? fakt->idroba skip enddo ? "----------------------------------------------------" ? "end"
C:\bringout\FAKT>hbrun test_tag.prg
start ---------------------------------------------------- 05 ---------------------------------------------------- end
radi i to izgleda. Ovo izgleda jer mi uzorak baš nije reprezentativan - imam samo jedan slog.
Izmjenjeno od Ernad Husremović prije oko 16 godina
rad pod linux-om¶
i wine-om
bringout@nmraka-2:~/fmk$ scp fmk@dosbox.sigma-com.net:~/sc/fmk_data/FAKT/KUM1/* .
Izmjenjeno od Ernad Husremović prije oko 16 godina
instalirao sam wine apt-get install wine
u ~/.wine/
napravio istu strukturu kao i na windows
c:/bringout/FAKt
c:/harbour/bin
pokrenuo
$ winecmd cmd
i dobio dos konzolu
u konzoli rekao
set PATH=%PATH%:c:\harbour\bin
hehe radi sve, čak i više nego pod windows-ima jer mi hbrun ispravno prikaže konzolu i mogu da koristim interaktivno komande na "."
hbrun . prompt
.use fakt via "dbfcdx" .list idroba, kolicina
Izmjenjeno od Ernad Husremović prije oko 16 godina
ali ima iproblem. Kada izađe iz harbour aplikacije wineconsole je nedostupna ...
sve ovo sam uradio da ispitam "set order to tag" na većem uzorku
gornji primjer ne radi, jer tag "IDROBA" izgleda i ne postoji. Interesatno je da harbour ćutke proguta nepostojeći tag i ostavi order na 0 (bez ordera).
ovo međutim radi:
procedure main(cTag) local i:=0, n_limit:=30 //set AUTOPEN ON use roba via "DBFCDX" exclusive set order to TAG &cTag //set order to TAG "NAZ" ? indexord() inkey(0) go top ? "start" ? "----------------------------------------------------" do while !eof() ? roba->id, roba->naz skip i++ if i > n_limit exit endif enddo ? "----------------------------------------------------" ? "end" inkey(0)
ovo gore prikazuje 30 prvih proizvod prikazanih po željenom tag-u
iz ubuntu konzole mogu da kažem:
prikaži prvih 30, sortirano po id
bringout@nmraka-2:~/.wine/drive_c/bringout/FAKT$ wine c:\\harbour\\bin\\hbrun test_tag.prg ID
prikaži prvih 30 sortirano po nazivu
bringout@nmraka-2:~/.wine/drive_c/bringout/FAKT$ wine c:\\harbour\\bin\\hbrun test_tag.prg NAZ
Izmjenjeno od Ernad Husremović prije oko 16 godina
- % završeno promijenjeno iz 90 u 100
rezime¶
hbrun (mingw win32 build) možemo koristiti i direktno na našem ubuntu destkop-u. Sa svim ljepotama ubuntu konzole :)
Naravno, još bolje je rješenje koristiti native harbour, ali ja ga nisam imao instaliranog, a za servisere je ipak bitniji windows desktop generalno
Takođe, ja sam samo pokupio harbour/bin, a tu zasigurno ima 70% stvari što su nepotrebne za ovo što sam demonstrirao. Sigurno u 2-3 MB sve što je potrebno može da se zapakuje.
fox pirat definitivno nije potreban u servisnom toolset-u za fmk.
Izmjenjeno od Saša Vranić prije oko 16 godina
dobro meni je fox trebao radi modifikacije polja tabele, zato što mi je u chs skript uletio neki karakter kojeg ne vidim nigdje i dobio sam polje u DBF-u koje je imalo naziv, npr:
- IDROBA+neki čudni karakter
modifikacijom nisam mogao to riješiti jer nisam mogao da ukucam taj karakter nigdje
sve je nastalo na osnovu linuxa, jer je nekakvom kombinacijom tipki poslije slova "A" uletilo to nešto čudno...
E sada treba da se promjeni naziv polja...
Izmjenjeno od Saša Vranić prije oko 16 godina
sa fox-om ili sličnim alatom sam to uradio za 3 sekunde, modifikovao polje
mislim da ne trebamo pretjerivati !
Izmjenjeno od Ernad Husremović prije oko 16 godina
Saša Vranić je napisao/la:
sa fox-om ili sličnim alatom sam to uradio za 3 sekunde, modifikovao polje
mislim da ne trebamo pretjerivati !
ne shvatam šta misliš da pretjerujem ?
Izmjenjeno od Ernad Husremović prije oko 16 godina
a shvatio sam, ima gui za pregled polja i modifikaciju struktura.
Svejedno fox ne može biti opcija, s obzirom da je piratska kopija.
Izmjenjeno od Ernad Husremović prije oko 16 godina
Advantage Data Architect Utility¶
za takve stvari sigurno je dobar freeware arc32 Advantage-ov:
Advantage Data Architect Utility: A complete data management system for Advantage developers
Advantage Data Architect assists in designing, creating and maintaining the database layer of a developer's applications. This also includes Advantage Local Server, which allows for royalty-free distribution for shared and local environments.
The following features are available with the Advantage Data Architect:
Development- Import and convert other table types (such as Paradox, dBASE, Access, Btrieve, Pervasive and MS SQL Server) to Advantage compatible tables
- Create and maintain Advantage data dictionaries and define referential integrity rules, record and field level constraints, and more
- Create tables and indexes
- Restructure existing tables
- Encrypt/decrypt tables and dictionaries
- Generate and test Advantage SQL queries using a visual query designer
- Generate code to automatically create tables and indexes using the Advantage Tables-to-Code Generator
- Check the client workstation's environment to test and diagnose connection issues with the Advantage Database Server
- Setup Access Control Lists to define user access rights for users who wish to connect to the Advantage Database Server
- Create aliases similar to those used by the Borland Database Engine
- Manage the database with functionality for rebuilding indexes and packing, restructuring and repairing tables
- Manage Advantage data dictionaries with the Advantage Data Dictionary Manager
- Observe Advantage Database Server activity with the Advantage Management utility
- Execute maintenance tasks from within a transaction
- Compare data dictionaries via the dictionary differentiation tool
Izmjenjeno od Ernad Husremović prije oko 16 godina
ovaj me je članak podsjetio na data architect-a kao "dbu replacement": http://objectmix.com/clipper/165474-need-dbu-replacement.html
Izmjenjeno od Ernad Husremović prije oko 16 godina
kod instalacije pita OEM language: odabrao sam BOSNIAN (na dnu liste(
Izmjenjeno od Ernad Husremović prije oko 16 godina
probao arc32, pravo je bugovit, interesatno da sam u pod wine-om editovao strukturu FAKT tabele (prijavljivao je bugove ali je završio posao) dok pod native windowsima iskače ko lud na sam pomen Table/Properties
Izmjenjeno od Ernad Husremović prije oko 16 godina
- Fajl ourXdbu-1.5.2.0-Setup.zip ourXdbu-1.5.2.0-Setup.zip dodano
Izmjenjeno od Ernad Husremović prije oko 16 godina
haha ovaj tek roka ko lud ne mogu ni odabrati tabelu on me izbaci
Izmjenjeno od Ernad Husremović prije oko 16 godina
756.1 What is it
nanoBase (2) is a Dos program that works essentially as:
- a dot command line xBase,
- a menu driven xBase,
- a xBase program interpreter.
nanoBase 1997 is compiled in two versions: a small one to be used with old computers (x86-16 with 640 Kibyte RAM), and a second one to be used with better computers, at least i286 (or better) with 2 Mibyte RAM.
Izmjenjeno od Ernad Husremović prije oko 16 godina
- Fajl nbase7a7.zip nbase7a7.zip dodano
Izmjenjeno od Ernad Husremović prije oko 16 godina
hbrun dbedit¶
ovo takođe radi
bringout@nmraka-2:~/.wine/drive_c/bringout/FAKT$ wine c:\\harbour\\bin\\hbrun test_4.prg
procedure main() SET DATE TO GERMAN use fakt via "DBFCDX" exclusive set order to tag "1" dbedit()
međutim samo mogu da vidim, ne mogu da ispravljam tabelu ? koja je tipka za ulazak u edit mod kod dbedit funkcije ?
Izmjenjeno od Ernad Husremović prije oko 16 godina
- Fajl harbour_doc_en-EN.zip harbour_doc_en-EN.zip dodano
bringout@nmraka-2:~/devel/git/hernad/hernads-harbour/harbour$ vi doc/en-EN/dbstrux.txt
* USE Test * __dbCopyXStruct( "TestStru" ) * USE TestStru * LIST
zakačio zip sa harbour dokumentacijom
Izmjenjeno od Ernad Husremović prije oko 16 godina
harbour, prikaz strukture tabele¶
procedure main() SET DATE TO GERMAN use fakt via "DBFCDX" exclusive __dbCopyXStruct( "fakt_stru" ) USE fakt_stru ? "FAKT structure" LIST field->field_type, field->field_name, field->field_dec, field->field_len TO FILE struct.txt inkey(0)
šta ja ustvari radim ? pravim set snippet-a sa kojima se onda može praviti beskonačna kombinatorika pri administriranju dbf-ova
Izmjenjeno od Ernad Husremović prije oko 16 godina
ovdje sam zapeo, kao da ARRAY funkcije (ASIZE itd) nisu ulinkane u HBRUN pa prijavljuje nepostojeće funkcije ? to treba još pogledati
procedure main() local i, aF SET DATE TO GERMAN use fakt via "DBFCDX" exclusive //__dbCopyXStruct( "fakt_stru" ) //USE fakt_stru aF := fakt->(AFIELDS()) ? vartype(aF) quit for i:=1 to ASIZE(aF) ? aF[0,0] next //? AFIELDS[0,0] ? fieldpos("IDROBA") //for i:=1 to LEN(fakt->AFIELDS()) // ? fieldname(i) //next inkey(0)
Izmjenjeno od Ernad Husremović prije oko 16 godina
kada dođem na teren provedem sate i sate, kao i prije terena samog i onda nakon što razvalim nešto ljudima skontamo da hbrun ipak neće dobro raditi ako je XP SP1 instalacija, dok će kod SP2 i raditi, a kod SP nikako !!! Ali je to sve kod ljudi i na uštrb naših korisnika. To je kvaka i to je žalosno ali taj procenat je veći kod opensource software-a. Ne bih da me se pogrešno shvati u smislu da ja sada bježim od koncepta OpenSource-a !!! NEEE, ne bježim, ali treba biti razuman i imati granicu kod ovakvih stvari, a mi ljudi od software-a bar to znamo, šta vrijedi a šta ne vrijedi... Ljudi inače kupe neki pristojan software-e u takve namjene, prvenstveno siguran !!! što je jako bitno. Ne mogu se igrati i misliti da li se može deklarisati ARRAY ovako ili onako i igrati sa tuđim podacima. Mislim da sam vidio nekada CDBFEdit i CDBFView software, da sam ga čak i testirao u DEMO modu i on to radi kako treba i bez pola muke. Opet, ne kažem da mi sada trebamo kupiti CDBFView, ali u kontekstu priče želim da me se shvati.
Odabir alata treba da zadovolji određene kriterije.
U našem developer/serviser toolset-u izbjegavam zatvoren software.
Druga negativna osobina ovoga i ovakvih alata je da su windows only.
alat treba biti iznimno koristan, i da ništa slično od otvorenog software-a takvog nivo, da bi prošao mimo ovih kriterija.
Izmjenjeno od Ernad Husremović prije oko 16 godina
već ranije sam ovo komentarisao na pomenutom ticketu
vsasa:
kada dođem na teren provedem sate i sate, kao i prije terena samog i onda nakon što razvalim nešto ljudima skontamo da hbrun ipak neće dobro raditi ...
e baš karikiraš.
Prije svake administrativne operacije na tabelama radiš backup pa onda čačkaš, sa fox-om ili hbrun-om je isto.
Fox 20, krekovana aplikacija iz 90 i neke, je baš pouzdana alat. Na stranu što je u našoj firmi zabranjeno korištenje nelegalnog software-a.
Izmjenjeno od Ernad Husremović prije oko 16 godina
Time sam objasnio kriterije o kojima treba voditi računa po pitanju izbora servisnih i developerskih alata.
Izmjenjeno od Ernad Husremović prije oko 16 godina
i na sašin prijedlog odgovorio
Izmjenjeno od Ernad Husremović prije oko 15 godina
- Status promijenjeno iz Dodijeljeno u Odbačeno