Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Presbiopia - la 43 ani ?

Termen transcriere autovehicul

Cazare Timisoara pe 4-5 zile

Primele zile ale internetului per...
 Ditra 25

Casti USB-C ptr A-54

Aplicatie medicala / asistent med...

De ce vor atația politicieni...
 ERR_ADDRESS_UNREACHABLE

Legea 18/1968 Se mai aplica?

Digi conectare 2 routere prin fir

Succesiune notar versus instanta ...
 Montaj aer conditionat in balcon ...

Cont curent mulți valuta far...

Sugestii plan casa

Experiente cu firme care cumpara ...
 

despre ADO

- - - - -
  • Please log in to reply
14 replies to this topic

#1
nexusm

nexusm

    Senior Member

  • Grup: Senior Members
  • Posts: 2,793
  • Înscris: 07.07.2011
Domnilor cine nu are "rabdare si tutun" la indemana sa treaca mai departe

Am o fractura logica.
Folosesc ADO de mult timp dar pana acum nu a trebuit sa impart "capra si varza" in aceasi timp.
Adica o baza de date msaccess pe un server unde se pot conecta useri si via VPN.
Aduc in discutie si conexiunea vpn pentru ca de regula este o conexiune cu trensfer greoi, care implica niste timpi de asteptare destul de lungi.
Am cautat pe net teme care sunt legate de ... hai sa-i spunem combinatiile posibile dintre:
(Set RS = New ADODB.Recordset)
(Set newRS = New ADODB.Recordset)
RS.Open SQL, cnn, (???),(???)
newRS.Open SQL, cnn, (???),(???)

ca urmare, are cineva rabdarea sa enumere combinatiile posibile si sa explice ce  si  dece?
contextul ar fi urmatorul:
(nu luam in calcul ReadOnly pentru afisare de date)
1. cum trebuie deschis RS(?) daca citesc dintr-un tabel si cum deschid un newRS(?) de pe un server unde trebuie sa salvez datele provenite din RS?(AddNew+Update)
2. stiu ca normal ar fi ca inainte de interogare sa creezi o noua conexiune (cnn) dar avand in vedere cazul in care te conectezi prin VPN este ceva mancator de timp, cum ar trebui procedat corect?
1. cu riscurile de rigoare(timp consumat) sa inchizi preventiv conexiunea cnn si sa o recreezi?
2. mergi pe ideea ca acesta conexiune(cnn) nu are probleme(cadere net, logare la server, decuplare de la baza de date) si functie de eroarea primita mergi mai departe sau tratezi eroarea prin: verificare conexiune internet(cu reconectare sau iesire program=functie), apoi verificare logare server(cu reconectare sau iesire program-functie) si in cele din urma reconectarea la baza de date(cu succes sau nu)?

La urma urmei poate ca nu are importanta daca legatura se face via VPN sau nu, problema de combinatii corecte posibile si corecte in contextul dat ramane.

Multumesc anticipat celor ce vor avea rabdarea de a da raspunsuri, ce exista pe undeva(sunt sigur) dar eu nu le-am gasit, sau cel putin nu le-am gasit intr-o forma concisa si contextuala.
(evident link-urile sunt binevenite si ele)

Edited by nexusm, 30 September 2015 - 21:23.


#2
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,233
  • Înscris: 24.02.2007
Ce intelegi prin combinatii posibile? Combinatii de ce anume?
Vrei sa ai defapt doua conexiuni si sa transferi date dintr-una in alta? Iti pui problema ca asteapta userul prea mult pentru fiecare operatiune?

Edited by dani.user, 30 September 2015 - 22:09.


#3
nexusm

nexusm

    Senior Member

  • Grup: Senior Members
  • Posts: 2,793
  • Înscris: 07.07.2011
ideea ar fi urmatoarea:
citesc niste date dintr-un tabel aflat in db1, le completez sau modific si le trimit intrun alt tabel din db2 ce este pe server.
chestia asta o fac mai multi insi.
pentru asta creez 2 conexiuni cnn1(catre db-ul local), cnn2(catre db-ul server si mai mult recodseturi rs1,rs2...rsn
cnn2 poate fi facuta si prin vpn
seturile de inregistrari trebuie updatate in ambele tabele din ambele baze de date
codul ar fi:
rs1.Open SQL, cnn1, (?),(?)
rs2 Open SQL, cnn2, (?),(?)
rs2.AddNew
rs2!nume = rs1!nume
rs2!ceva = Text1.Text
rs1!ceva = Text1.Text
rs1.Update
rs2.Update
ceva de genul asta doar ca fiind multe filed-uri codul este scris cu o bucla
For Each tbl In rs1...
iar acolo unde sunt preluate date din variabile se face distinctie dupa nume campului
If rs1(Field).Name = "ceva" ...

cum trebuie deschise cele 2 recordseturi (rs1, rs2), astfel incat sa nu creez probleme altor useri dar datele salvate sa fie vizibile si pentru altii dupa comanda Update.
acesta ar fi o intrebare si am rugat ca cineva sa explice toate acele combinatii de parametri
- adOpenDynamic, adLockOptimistic
- adOpenKeyset, adLockPessimistic
etc

si o a doua intrebare se refera la faptul daca este sanatos sau nu sa tin conexiunea cnn2(catre server) deschisa tot timpul sau so o creez doar in momentul la care trebuie sa facceva cu ea.
specificand ca acesta poate fi si prin vpn

mentionez ca userii au drepturi egale si conectarea la db-uri nu se face pe baza de nume user ci doar de parola, parola ce este un singura si apartine bazei de date, userii nici macar nu o cunosc

Edited by nexusm, 01 October 2015 - 09:10.


#4
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003

View Postnexusm, on 30 septembrie 2015 - 21:19, said:

ca urmare, are cineva rabdarea sa enumere combinatiile posibile si sa explice ce  si  dece?
Pai sunt lamurite in help: https://msdn.microso...4(v=vs.85).aspx

In rest n-as merge pe tipul asta de trafic (plimba tot de ici-colo) ci pe varianta prelucrarii pe "server" si transferul rezultatului prin retea (ori faci un serviciu pe acel server, ori te folosesti de unul existent sau chiar treci pe un server SQL). De verificat conexiunea oricum trebuie sa o faci ca nu se stie daca mai e activa. Si las-o deschisa in cazul tau.

#5
nexusm

nexusm

    Senior Member

  • Grup: Senior Members
  • Posts: 2,793
  • Înscris: 07.07.2011
referitor la link-ul dat de tine este la fel ca multe altele unde nu am reusit sa gasesc exemple explicate referitoare la:
folosesti adOpenKeyset cand trebuie sa faci cutare lucru si in contextul X trebuie sa folosesti LockType de tipul ...
si explicate toate variantele cursorului adOpenKeyset in diverse contexte si diverse tipuri de Lock.
la fel explicate si in situatii de gen read, addnew sau doar update

cam asta mi-as fi dorit sa gasesc, pentru ca din experimentari am primit destul de multe erori diferite dar ale caror descrieri nu ma prea lamuresc, asta lasand deoparte faptul ca exista situatii in care coduri diferite primesc acelasi mesaj de eroare.
de aici si confuziile mele si lipsa de a gasi modalitati de tratare a lor.

Edited by nexusm, 01 October 2015 - 09:30.


#6
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003
Tu nu prea stii cum functioneaza multe de asta nu intelegi ce spune aici: https://msdn.microso...1(v=vs.85).aspx
Iar carti intregi despre baze de date, ADO si siteme de operare nu pot fi rezumate pe forum. Ti-am spus mai sus ce trebuie sa faci sa nu tragi dupa tine degeaba toata baza de date (ca asta faci in arhitectura ta).

Edited by neagu_laurentiu, 01 October 2015 - 09:46.


#7
nexusm

nexusm

    Senior Member

  • Grup: Senior Members
  • Posts: 2,793
  • Înscris: 07.07.2011
corect, dar ca sa modific arhitectura(ca asta urmaresc de fapt) trebuie sa inteleg ce am de facut si cum trebuie facut.
din cauza asta pun intrebari si cer ajutor.
speram ca cineva sa stie de vreun tutorial pe undeva si evident ca nu am pretentia ca pe un forum sa fie prezentate solutii cap coada, dar indrumari da, asta ma astept sa gasesc si nu picioare in cur degenul "tu nu stii multe".
daca stiam nu intrebam.

#8
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003
Ce nu intelegi din ultimul link ?
Tu ai adus local baza de date. E o prostie din punct de vedere tehnic dar nu tu esti de vina ca asa se programa acum mai bine de 10 ani cu tehnologia aferenta. Acel dinamic ori static nu-i mare lucru, gunoiul e sub pres doar.
Mergi pe static, fa bors local si la final salvezi, tine tu lucrurile in frau si nu te baza pe altcineva/automatisme (acea deschidere la distanta de fisierere poate altera datele la caderi bruste de conexiune - INSERT SQL, UPDATE SQL ori DELETE SQL si nu ale cursorului nu-s degeaba in sistem).

View Postnexusm, on 01 octombrie 2015 - 10:19, said:

speram ca cineva sa stie de vreun tutorial pe undeva si evident ca nu am pretentia ca pe un forum sa fie prezentate solutii cap coada, dar indrumari da, asta ma astept sa gasesc si nu picioare in cur degenul "tu nu stii multe".
Daca ar exista Cartea Cartilor toti am fi meseriasi. Tu citesti din N locuri si structurezi, toti asa am invatat, cu multa munca, doar o pagina undeva nu-ti lumineaza calea pana la final !

Edited by neagu_laurentiu, 01 October 2015 - 10:50.


#9
nexusm

nexusm

    Senior Member

  • Grup: Senior Members
  • Posts: 2,793
  • Înscris: 07.07.2011

View Postneagu_laurentiu, on 01 octombrie 2015 - 10:39, said:

[...]
Tu ai adus local baza de date. [...]

Daca ar exista Cartea Cartilor toti am fi meseriasi. Tu citesti din N locuri si structurezi, toti asa am invatat, cu multa munca, doar o pagina undeva nu-ti lumineaza calea pana la final ! CORECT

nu-ti imagina ca descarc de pe server o baza de date
vorbim de 2 baze distincte si care isi au rolul bine definit, nu sunt dubluri.
daca pe server tin date de interes comun si pe care le citesc sau le updatez functie de nevoi,pe baza de date locala tin informatii personalizate userului, tocmai pentru a nu trebui sa incarc db-ul de pe server cu date ce nu-i intereseaza pe altii sinici sa trebuiasca sa interoghez aiurea acesta baza de date daca totul poate fi tinut pe una locala.
exemplu:
daca s-a vandut ceva imi trebuie un nr de bon de descarcare a gestiunii
asta trebuie luat de pe server dar si incrementat cu 1 pentru ca urmatorul user sa ia unul valid
in gestiunea mea de mere scad un kg descarcat cu bonul x
dar pe un alt user a carei gestiune sunt perele asta nu-l intereseaza.
avand in vedere ca mare parte din activitatea userului proceseaza informatii dedicate lui am preferat ca fiecare sa aiba propria baza de date pe local.
cam asta este scenariul
si daca mai pui la socoteala si faptul ca toti acesti useri se deplaseaza prin tara conectandu-se prin vpn, lucrurile devin clare in ceea ce priveste necesitatea de a nu interoga serverul pentru orice.
(nu-i vb de mere si pere si nici nu se plimba cu masina, ci doar sunt puncte de lucru din afara si din interiorul retelei unde se afla serverul)

#10
shiva

shiva

    Nameless hero. Professional bug slayer mom.

  • Grup: Senior Members
  • Posts: 14,857
  • Înscris: 06.10.2003
Mie mi se pare ca e scenariul ala 1 masina server (de backup si rapoarte mai mult) + n masini client si se doreste un sync intre ele. Pentru server ar trebui SQL Server Express (daca licenta e prea scumpa) sau MariaDB sau MySQL. In orice caz, ceva dedicat. Access nu-i pentru asa ceva; merge insa pt. masinile client, ca DB local.
In functie de context, poate ar fi mai bine sa implementezi un mecanism de sync periodic sau real-time, folosind conexiuni la cele 2 db-uri sau fisiere cu date (xml, cvs, json) ce sunt prelucrate de un serviciu pe server.

#11
nexusm

nexusm

    Senior Member

  • Grup: Senior Members
  • Posts: 2,793
  • Înscris: 07.07.2011
vreau sa trec serverul pe mysql dar nu-l cunosc, citesc si invat ce trebuie si cum se configureaza dar constant trebuie sa mai surubaresc la aplicatie ca tot timpul apar noi cerinte, asa ca asta va mai dura.

#12
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003

View Postnexusm, on 01 octombrie 2015 - 11:32, said:

nu-ti imagina ca descarc de pe server o baza de date
Tu nu stii ce vorbesti, n-am ce sa-ti spun altceva cand asta-i realitatea.
Access are un fisier undeva pus de tine. Cand tu faci SELECT indiferent de clauze descarci TOT FISIERUL .mdb/.accdb pe statia locala si componenta ADO (tot locala) via un .dll executa acel SELECT. Asa-i sistemul asta cu partajare prin retea.
De asta ti-am zis sa faci acel ADO ca un serviciu la distanta, pe "server" ca sa nu plimbi degeaba datele cand tu vrei cateva inregistrari (asa cum face orice server SQL).

View Postnexusm, on 01 octombrie 2015 - 11:32, said:

pe baza de date locala
Nu baza asta-i subiectul discutiei, aici orice optiuni ai aplica nu afecteaza pe nimeni ca nu-i partajata (inteleg).

Edited by neagu_laurentiu, 01 October 2015 - 11:57.


#13
nexusm

nexusm

    Senior Member

  • Grup: Senior Members
  • Posts: 2,793
  • Înscris: 07.07.2011

View Postneagu_laurentiu, on 01 octombrie 2015 - 11:44, said:

[...]
De asta ti-am zis sa faci acel ADO ca un serviciu la distanta, pe "server" ca sa nu plimbi degeaba datele cand tu vrei cateva inregistrari (asa cum face orice server SQL).
[...]
da, cred ca aici este esenta problemei.
multumesc, am sa caut sa vad cum se creaza astfel de servicii si daca am nelamuriri, revin.

#14
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,600
  • Înscris: 30.07.2003
Exista DCOM numai bun pentru ce vrei tu. Sau RDO de la MS desi zic ei ca l-au abandonat. Sau asta: http://odbcsock.sourceforge.net/ Ori chiar tu scrii o componenta sa primesti cererea si sa furnizezi rezultatul prin orice mijloc de comunicare doresti. Asta daca nu vrei sa treci la un server SQL (MS SQL Express de exemplu) si nu schimbi mare lucru in obiectele tale (doar pe ici pe colo cate o clauza la sintaxa SQL si stringul de conectare).

Edited by neagu_laurentiu, 01 October 2015 - 12:16.


#15
nexusm

nexusm

    Senior Member

  • Grup: Senior Members
  • Posts: 2,793
  • Înscris: 07.07.2011

View Postneagu_laurentiu, on 01 octombrie 2015 - 12:13, said:

[...] Asta daca nu vrei sa treci la un server SQL [...]
stii bine ca am vrut, chiar amandoi am vrut Posted Image  dar nu am reusit si din lipsa de timp am renuntat celputin pentru o vreme.
oricum urmatoarea incercare va fi mysql

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate