Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”

[es] :: Access :: Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”

[ Pregleda: 1932 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dejandsc
programer
Beograd

Član broj: 279320
Poruke: 7
*.dynamic.sbb.rs.

Sajt: www.dscomputers.co.rs


Profil

icon Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”21.07.2011. u 13:43 - pre 155 meseci
Pristupam udaljenoj MYSQL bazi preko ODBC i javlja mi se ova poruka, tj. ovaj problem “This record has been changed by another user...” bla, bla. Jednom recju ne dozvoljava mi izmenu sloga. Najveci problem je sto to nije ucestala greska, javlja se sporadicno, nema pravila. Naime danima radi besprekorno, a onda se desi greska. Pri tom radim kontrolu , tj. ako ni jedno polje sloga u MYSQL bazi nije promenjeno u odnosu na lokalnu bazu ne azuriram ga (posto sam primetio da tada hoce da se javi greska, pa se onda uvodi polje TIMESTAMP). Menjam samo one slogove koji su zaista za azuriranje, tj. dobice novu vrednost. Direktnim ulaskom u tabelu na to polje i pokusajem izmene je isto. Tek kada se pridje direktno MYSQL bazi , i izvrsi bilo kakva izmena tog sloga, posle toga sve radi ok.
IMa li ljudi bilo ko kakvu ideju, posto sam vise poludeo sa svim pokusajima (otkljucavanjam, zakljucavanja, svaki put novo attach-ovanje, osvezavanja). Inace celo azuriranje sam bas zbog toga radio iz koda ,a ne direktno kroz UPDATE query.
Hvala svima u napred.
dejan
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”21.07.2011. u 14:24 - pre 155 meseci
1. Ovo je Access podforum, zašto ne postaš u MySQL?

2. Moguće da je taj record zaključan, tj. netko ga koristi (trenutno editira ili štagod). Trebao bi dati malo više detalja jer baš ne kužim šta i kako aplikacija radi i šta ti npr. znači: osvježavanje sam radio iz koda a ne direktno kroz UPDATE query. Dalje, spominješ lokalnu i udaljenu bazu, šta radiš sa njima, kako, zašto?
F
 
Odgovor na temu

dejandsc
programer
Beograd

Član broj: 279320
Poruke: 7
*.dynamic.sbb.rs.

Sajt: www.dscomputers.co.rs


Profil

icon Re: Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”21.07.2011. u 14:32 - pre 155 meseci
Znam da je Access forum,pa zato i pitam ovde. Koristim ACCESS i pristupam preko ODBC-a MYSQL bazi koja je na hostu.
Posto je baza jos uvek u test fazi, nikoga sem mene nema , tako da nema ko drugi da zakljuca slog. Kada iz mysql administracije pristupim tabeli i slogu, izvrsim azuriranje, posle toga opet radi normalno , do nekog momenta kada dodje do zakljucavanja sloga. Najveci problem je sto nema pravila kada ce se to desiti. Radi danima normalno i onda greska.
dejan
 
Odgovor na temu

mish_ns
Miloš Krstin

Član broj: 159930
Poruke: 1105
212.178.241.*



+18 Profil

icon Re: Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”21.07.2011. u 15:59 - pre 155 meseci
Citat:
Pristupam udaljenoj MYSQL bazi

E mene interesuje sta si podesavao da bi ti pristup radio...Posto sam skoro tako nesto pitao ali nisam imao prilike da se pozabavim time. neko je spominjao port forwarding, firewall i ostalo, privilegije itd.
 
Odgovor na temu

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.dynamic.sbb.rs.



+13 Profil

icon Re: Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”21.07.2011. u 18:09 - pre 155 meseci
Citat:
dejandsc: Pristupam udaljenoj MYSQL bazi preko ODBC i javlja mi se ova poruka, tj. ovaj problem “This record has been changed by another user...” bla, bla.


Valjalo bi da prvo razumeš kako sarađuju ODBC i Access... Odnosno, nije to tako srećan brak kako na prvi pogled može da izgleda.

Linkovanim tabelama Access pristupa naoko kao sopstvenim objektima, ali, pojednostavljeno rečeno, vezu održava ODBC drajver, koji služi kao layer između Jet mašine, odnosno Access database engina i DB Servera sa druge strane, tj. u tvom slučaju MySQL baze.

E sad, ODBC drajver, sve u zavisnosti od kompleksnosti situacije, često lepo "ume" da prevede Access komande na interni SQL jezik DB servera, i da pritom sasvim preskoči Jet mašinu za obradu podataka, odnosno, da se direktno obraća serveru, na njegovom jeziku, i pritom se taj mehanizam ponaša skroz super - kroz žicu putuju samo filtrirani podaci, lockovanje je na strani servera, itd, tj. do izražaja dolaze sve ostale blagodeti klijent/server arhitekture...

Ali, u situacijama kada ODBC drajver ne ume da rastumači šta mu front end kaže, što uopšte nije retko, onda uposli Jet mašinu, i u takvim situacijama se Access ponaša kao klasična file baza, odnosno još gore, jer ima i jedan korak više za put podataka, tj. ODBC. Svako filtriranje, ažuriranje... podataka se tada izvršava na klijentskoj mašini.

To u praksi znači, da ako tabelama pristupaš sa MySQL hosta, preko spore (u odnosu lokalni disk ili LAN) internet veze, onda za ažuriranje podataka, front end Access aplikacija mora da na klijensku mašinu svuče sadržaj čitave tabele koja se obrađuje, interno uradi šta treba, pa obrađene podatke vrati na Server. Za to vreme, MySQL drži čitavu tabelu lockovanu i čeka, jer ne zna šta kakve će se izmene desiti, sve dok mu ODBC ne da povratnu informaciju.
Dovoljno je pri tome da internet veza samo malo štucne, i da se DB Server ili Access "zbune", odnosno protumače problem kao raskid konekcije ili nešto slično, a MySQL će držati spornu tabelu lockovanu, sve dok ne istekne time out vreme podešeno na strani Servera...





[Ovu poruku je menjao smal dana 21.07.2011. u 19:26 GMT+1]
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”22.07.2011. u 14:37 - pre 155 meseci
Ako koristis recordset-e pa ih ostavis nezatvorene, hoce da pravi probleme te vrste, ali ne uvek. Nezatvoreni rekordset hce da zakljuca tabelu. Zatim, desi se da uradis update kroz formu, Access posalje taj zahtev serveru, ti se pomeris sa rekorda ili napravis novi update na istom rekordu, a prvi zahtev se jos nije izvrsio, ili Access jos nije primio informaciju od MySQL servera o tome i dobijes to sto dobijes - "another user has changed/locked the record", a svo vreme si taj 'another user' u stvari ti.

Ovo sto si ti opisao, i sto je Small opisao i sto sam ja opisao, desava se pogotovo kad je aplikacija uradjena na nacin kao da radi sa Access MDB back endom. Kad radis sa SQL serverima raznih vrsta kroz ODBC, to ne ide tako. Ponekd moze da sve radi bez problema, neko vreme, ponekad moze i stalno, a ponekad nece pa nece. Sa ODBC bazam je potpuno druga filozofija od Access filozofije. Linkovane ODBC tabele mozes da koristis za citanje, u najboljem slucaju. INSERT i UPDATE se najbolje rade preko stored procedura koje sede na ODBC serveru i tamo se izvrsavaju. Ovo znaci da forme ne mogu biti bound (povezane) nego unbound, kao u obicnom VB. Ovo stvara posebne probleme kad koristis strukture tipa forma-subforma, gde je subforma vezana za formu - ne moze na nacin kako se to obicno radi u Accesu.

Da se razumemo, nisi nista posebno pogresno uradio, ne kritikujemo te. Samo smo nabrojali deo onoga sta moze da se desi kad imas front end Access i bak end neki ODBC SQL. Stegni zube i trazi resenje. Ima mnogo vise da se radi nego kad radis Access -Access i komplikvanije je, ali st je tu je. Zato smo profesionalci :-)
 
Odgovor na temu

dejandsc
programer
Beograd

Član broj: 279320
Poruke: 7
*.dynamic.sbb.rs.

Sajt: www.dscomputers.co.rs


Profil

icon Re: Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”25.07.2011. u 08:34 - pre 155 meseci
Ljudi hvala Vam na odgovorima, izvinjavam se sto nisam odmah odgovorio, ali sam bio na putu poslednja 3-4 dana. Prihvatam sve predloge, sugestije , a i kritike sto rece @Zidar. NIsta nije sporno. Godinama radim sa Accessom i SQL bazom, koja je u lokalnoj mrezi. Znam da moze biti problem ako stucne internet konekcija i urpavo zbog takvih stvari ne drzim tabele stalno linkovane , vec ih linkujem i otvaram u trenutku obrade. Posebnu paznju sam obratio na zatvaranje tabela i jos dodatno ukoliko dodje do greske u samoj obradi greske radim CancelUpdate i ponovno zatvaranje tabele. Sta se desava iza toga: Slog koji je bio zakljucan, je slobodan, izvrsi se UPDATE i nakon toga prelaskom na novi slog i pokusajem azuriranja, javlja se opet greska. Ista ta prica u sledecem momentu radi normalno , tj...danima. Sve ovo sto mi je receno, mi je jasno, da ne kazem znam od ranije, ali nevidim konkretno resenje.
dejan
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”25.07.2011. u 14:09 - pre 155 meseci
Citat:
Sve ovo sto mi je receno, mi je jasno, da ne kazem znam od ranije, ali nevidim konkretno resenje.

Pa, konkretnog generalnog resenja nema. Cak ne mora sve da bude do Accessa, moze da bude do ODBC baze, do mreze, milion stvari moze da bude. Pokusavaj ovo ili ono dok uz malo srece ne resis problem.
 
Odgovor na temu

smal
Slobodan Maljković
Kragujevac, Srbija

Član broj: 228672
Poruke: 286
*.dynamic.sbb.rs.



+13 Profil

icon Re: Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”25.07.2011. u 22:24 - pre 155 meseci
Citat:
dejandsc: Sve ovo sto mi je receno, mi je jasno, da ne kazem znam od ranije, ali nevidim konkretno resenje.


Iz mog (ne baš previše bogatog) iskustva sa ADS i MS SQL bazama, ako se koristi OLE DB API, ADO za data pristup, i nezaobilazne Stored Procedure umesto linkovanih ODBC tabela, performanse su neuporedivo bolje, a o problemima o kojima pričamo se ni ne razmišlja, samo, sve je mnogo teže i komplikovanije za programiranje. Jednostavno, Access nije nimalo komforan za takav način rada, a njegovi interni mehanizmi, fore i cake koje inače volimo, tu ič ne pomažu, čak naprotiv
 
Odgovor na temu

[es] :: Access :: Pomoc, pristup MYSQL bazi - Greska sporadicno “This record has been changed by another user”

[ Pregleda: 1932 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.