Search  
Sunday, December 5, 2021 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Cod, sintaxa si comenzi  salvare date pe...
 salvare date pe disc
 
 5/18/2019 12:26:40 AM
User is offlineSCHRECK
491 posts
2nd


salvare date pe disc
 (N/A)
LOCAL idenou
SET DELETED OFF
SELECT nume
SET ORDER TO idecnp && IDECNP este un camp cu index candidate tip integer
GO BOTTOM

IF RECCOUNT()#0
idenou=idecnp+1
ELSE
idenou=1
ENDIF

IF LOCK('0','nume')
INSERT INTO nume (idecnp) VALUES (idenou)
.........
..........

WAIT WINDOW 'ADAUGAREA S-A EFECTUAT CU SUCCES' NOWAIT
UNLOCK ALL

ELSE

WAIT WINDOW 'FISIER BLOCAT DE ALTI UTILIZATOR' NOWAIT
ENDIF

M-am gandit ca in medoda destroy sa fac o verificare daca s-a adaugat inregistrarea ceva genul

USE
SELECT idecnp FROM nume WHERE idecnp=idecnpnou INTO ARRAY m_cautare
IF _TALLY=0
WAIT WINDOW 'NU S-A FACUT ADAUGARE REPETATI OPERATIA' NOWAIT
ENDIF

Problema mea este DE UNDE CITESTE COMANDA SELECT fisierul nume.dbf

1 din BUFFERUL creat pe statia de lucru
2. de pe discul calculatorul Server unde se afla aplicatia

optiunea BUFFERING=.F. functioneaza si pentru o tabela aflata pe un alt calculator ?

Dupa parerea voastra ce cod ar trebui sa scriu pt.rezolvarea problemei ?
 5/18/2019 3:07:57 PM
User is offlinemgabi
1159 posts
1st


Re: salvare date pe disc
 (N/A)
Din pacate windowsul nu ia in seama comenzile referitoare la buffering in privinta scrierilor efective pe disc. El isi face automat buffere in memorie cand lucrezi si scrie efectiv atunci cand vrea el, chiar daca iti "spune" ca a "varsat" pe disc ... te minte :) !
Poti sa-l fortezi sa verse daca inchizi fisierul care te intereseaza sau daca dai unlock.
Din experienta mea, la o comanda de unlock iti face scrierea pe disc, cel putin pana acum a fost singura variata de a-l convinge. Asa ca dupa acel UNLOCK din codul tau, informatiile ar trebui sa fie pe disc.

Comanda FLUSH este sublima, dar nu este bagata in seama :))

PS: Magaria asta o face si local si in retea!
 5/18/2019 7:52:18 PM
User is offlineDaniel Buduru
3528 posts
1st




Re: salvare date pe disc
 (N/A)
Clauza Buffering din comanda select sql (sau set buffering) se refera la modul de tratare al cursoarelor/tabelelor implicate in select.
In mod normal, select sql deschide o noua instanta a tabelelor, spre deosebire de comenzile xbase (scan, locate, seek, replace ...) care lucreaza cu tabela deschisa in zona specificate.
Comenzile xbase actioneaza pe tabela asa cum se vede ea in browse, respectatnd filtrele si luand in considerare si inregistrarile din bufferul tabelelor deschise cu buffering optimistic sau pesimistic. Comenzile xbase pornesc implicit de la inregistrarea curenta, daca nu se specifica altfel.
Selectul sql, deschizand o alta instanta a tabelelor, nu tine cont de filtre si nici de inregistrarile din bufferul tabelei. Prin urmare, setul rezultat nu contine modificarile, stergerile, inserarile necomise.
Insa acest comportament nu permite, spre exemplu, calcularea unui total prin select - care nu muta pointerul tabelei - pe un cursor bufferat si necesita utilizarea unei comenzi xbase - calculate, spre exemplu.
Din acest motiv, in vfp 8 a fost introdusa clauza "with buffering=.T.", care face ca selectul sa ia in considerare inregistrarile din buffer.

Aceasta clauza nu are legatura cu bufferarea pe care a face windows fisierelor deschise fie local, fie pe o unitate in retea.
Pe toate sistemele care acceseaza o tabela partajata, inclusiv pe file server, unitatea pe care se afla tabela trebuie sa aiba write caching disabled.
https://www.thewindowsclub.com/enable-disable-disk-write-caching-windows-7-8

In rest, e valabil tot ce a spus mgabi.


Daniel Buduru
 5/20/2019 11:17:32 AM
User is offlineSCHRECK
491 posts
2nd


Re: salvare date pe disc
 (N/A)
Multumesc pentru raspunsuri
Problema era de la write caching.
Dupa ce l-am dezactivat lucrurile au revenit la normal
Inainte pur si simplu datele introduse direct pe calculatorul server nu se scriau pe disc in schimb cele introduse de pe celalalte calculatoare aflate in retea se scrieau fara problem, lucru ce nu-mi explic
 5/22/2019 12:15:35 PM
User is offlinemgabi
1159 posts
1st


Re: salvare date pe disc
 (N/A)
PS: Daca vrei un file-server sigur si rapid, fara intarzieri si "fitze", incearca sa folosesti un NAS (sunt pe Linux toate pe care le-am vazut pana acum). Functioneaza MULT mai bine decat unul pe Windows.
Si nu-ti face problemele clasice cu owner-ul sau de permisiuni si nici nu are ambitiile aiurite ale windows-ului.
 5/29/2019 11:05:21 AM
User is offlineSCHRECK
491 posts
2nd


ReRe: salvare date pe disc
 (N/A)
Revenind la problema am pus un disc SSD separate si de atunci nu am avut probleme.
Ruleaza foarte rapid aplicatia pe toate calculatoarele din retea datorita vitezei de acces mari acestui tip de unitate
Singurul lucru ce ma nelinisteste este ca scrie pe disc ca nu este recomandat sa se foloseasca ca server. Oare la ce se refara ?
 5/29/2019 11:05:32 AM
User is offlineSCHRECK
491 posts
2nd


ReRe: salvare date pe disc
 (N/A)
Revenind la problema am pus un disc SSD separate si de atunci nu am avut probleme.
Ruleaza foarte rapid aplicatia pe toate calculatoarele din retea datorita vitezei de acces mari acestui tip de unitate
Singurul lucru ce ma nelinisteste este ca scrie pe disc ca nu este recomandat sa se foloseasca ca server. Oare la ce se refara ?
 5/29/2019 11:06:05 AM
User is offlineSCHRECK
491 posts
2nd


ReRe: salvare date pe disc
 (N/A)
Revenind la problema am pus un disc SSD separate si de atunci nu am avut probleme.
Ruleaza foarte rapid aplicatia pe toate calculatoarele din retea datorita vitezei de acces mari acestui tip de unitate
Singurul lucru ce ma nelinisteste este ca scrie pe disc ca nu este recomandat sa se foloseasca ca server. Oare la ce se refara ?
 5/29/2019 12:02:22 PM
User is offlineDaniel Buduru
3528 posts
1st




Re: ReRe: salvare date pe disc
 (N/A)
Durata de viata a unui SSD e data de numarul de cicluri de scriere pe care le suporta.
In functie de tip, scrierea se face la nivel de sector sau de bloc de celule.
Un SSD de tip MLC suporta cca 3000 de cicluri de scriere. Cu cat e mai putin ocupat, cu atat are mai mult loc sa slaveze fara sa rescrie, chiar in cazul modificarilor.
Citirea nu uzeaza SSD.
Atentie insa, daca aplicatia face operatii frecvente de scriere nejustificate (pack, reindex, la fiecare pornire, doar asa, ca sa fim siguri) uzura va fi rapida.
La pretul actual al SSD, daca faci regulat un backup pe HDD si verifici frecvent starea SSD cu un utilitar (de obicei al producatorului), as zice ca il poti folosi fara grija ca file server.

Folosesc un SSD Intel 540 de 120GB ca disc sistem in windows, deci scriere frecventa. Dupa 2 ani, 2 reinstalari de sistem, ocupat cam 50%, durata de viata estimata este de cca 87%.

Daniel Buduru
  Visual FoxPro  Cod, sintaxa si comenzi  salvare date pe...

Search  Forum Home         

Copyright 2002-2013 Profox   Terms Of Use  Privacy Statement