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

procedura se izvrsi bez greske, ali ne uradi ono sto treba...

[es] :: Firebird/Interbase :: procedura se izvrsi bez greske, ali ne uradi ono sto treba...

[ Pregleda: 4068 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.adsl.static.sezampro.yu.



+1 Profil

icon procedura se izvrsi bez greske, ali ne uradi ono sto treba...28.01.2007. u 14:39 - pre 178 meseci
stored procedure:

Code:

begin

  ...

  INSERT INTO A...

  INSERT INTO CALL_DURATION_LOGS (UID,LOGTIME,CALL_DURATION) VALUES ('1234','NOW',11.22);

  INSERT INTO C...

  ...

end


(kod je pojednostavljen)

procedura se izvrsi, nema gresaka, podaci su ubaceni u tabelu A, ubaceni i u tabelu C, ali ne i u tabelu CALL_DURATION_LOGS !

... zbunjen sam...
 
Odgovor na temu

Mr. Rejn
Deki Karamatijević
Sremčica

Član broj: 2514
Poruke: 515
212.200.223.*



+4 Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...28.01.2007. u 17:10 - pre 178 meseci
Šta ti generiše taj UID, možda neka UDF biblioteka? Ako je tako, testiraj posebno tu f-ju i vidi
da li vraća taj UID kako treba..
Pozdrav.
Ag + Na -> Xe
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
*.teol.net.



Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...28.01.2007. u 19:36 - pre 178 meseci
Citat:
Milos D: stored procedure:
Code:

  ...
  INSERT INTO CALL_DURATION_LOGS (UID,LOGTIME,CALL_DURATION) VALUES ('1234','NOW',11.22);
  ...

Kojeg ti je tipa kolona LOGTIME?
Ako koristiš DIALECT3, i ako je kolona tipa TIMESTAMP onda probaj ovako:
Code:
INSERT INTO CALL_DURATION_LOGS (UID,LOGTIME,CALL_DURATION) VALUES ('1234',CURRENT_TIMESTAMP,11.22);

a ako je kolona tipa TIME onda:
Code:
INSERT INTO CALL_DURATION_LOGS (UID,LOGTIME,CALL_DURATION) VALUES ('1234',CURRENT_TIME,11.22);
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
212.200.220.*



+1 Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...31.01.2007. u 15:43 - pre 178 meseci
Hvala na odgovorima. Firebird je zaista stabilan i pouzdan, vec dugo ga koristim, ali ovog puta je nesto uspeo da zezne. Nakon sto je odradjen backup/restore procedura je proradila... Pre toga sam svasta probao, ukljucujuci i pravljenje kopije iste te tabele u koju sam hteo da ubacujem podatke, pod drugim imenom, i tada je procedura radila. Pa drop kopije/re-create originala, ali nije vredelo.
 
Odgovor na temu

delalt

Član broj: 68360
Poruke: 198
*.teol.net.



Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...31.01.2007. u 20:33 - pre 178 meseci
Da nisi možda sam to prouzrokovao? Možda si mijenjao proceduru
dok su i drugi bili zakačeni na bazu i radili, ili nešto slično?
Nije loše utvrditi uzrok, da se ne bi ponavljalo.
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.adsl-1.sezampro.yu.



+1 Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...02.02.2007. u 12:47 - pre 178 meseci
Pa, mozda gresim, ali mislim da je dozvoljeno menjati stored procedure dok su korisnici aktivni? Bar do sada iz mog iskustva to nije dovodilo do problema.
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2667



+73 Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...02.02.2007. u 15:50 - pre 178 meseci
> Pa, mozda gresim, ali mislim da je dozvoljeno menjati stored procedure dok su korisnici aktivni? Bar do sada iz mog iskustva to nije dovodilo do problema.:;

Dozvoljeno jeste, ali korisnici će nastaviti da rade keširanom (starom) verzijom procedure sve dok se ne zatvori i poslednja konekcija. Metadate izmene je preporučljivo raditi kao ekskluzivan korisnik.
 
Odgovor na temu

Milos D
Beograd

Član broj: 5621
Poruke: 280
*.adsl.sezampro.yu.



+1 Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...02.02.2007. u 17:16 - pre 178 meseci
Znam da korisnici nece videti promene sve dok se ne uloguju sledeci put, to je ok.
 
Odgovor na temu

mbabuskov
Milan Babuškov
Subotica

Član broj: 4718
Poruke: 217
82.131.178.*

Sajt: www.comp.rs/izradasajta


+6 Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...04.02.2007. u 17:40 - pre 178 meseci
Citat:
savkic: > Pa, mozda gresim, ali mislim da je dozvoljeno menjati stored procedure dok su korisnici aktivni? Bar do sada iz mog iskustva to nije dovodilo do problema.:;

Dozvoljeno jeste, ali korisnici će nastaviti da rade keširanom (starom) verzijom procedure sve dok se ne zatvori i poslednja konekcija. Metadate izmene je preporučljivo raditi kao ekskluzivan korisnik.


U stvari zavisi sa kojom arhitekturom radis. Ako je Classic, svako vidi staru verziju dok se ne konektuje. Ako je SuperServer, onda je dovoljno zatvoriti sve transakcije bez diskonektovanja. Naravno, ako radis u Delphiju ili necem slicnom gde ti stalno neke komponente drze otvorene transakcije onda ti to i ne vredi puno, ali ako imas npr. web aplikaciju onda nema problema.
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2667



+73 Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...05.02.2007. u 08:05 - pre 178 meseci
> U stvari zavisi sa kojom arhitekturom radis. Ako je Classic, svako vidi staru verziju dok se ne konektuje. Ako
> je SuperServer, onda je dovoljno zatvoriti sve transakcije bez diskonektovanja. Naravno, ako radis u

Da li si siguran, meni je u glavi da se keširanje vrši na nivou konekcije.

> Delphiju ili necem slicnom gde ti stalno neke komponente drze otvorene transakcije onda ti to i ne vredi puno,

Nema komponenti koje će same od sebe to raditi, to zavisi od programera.
 
Odgovor na temu

mbabuskov
Milan Babuškov
Subotica

Član broj: 4718
Poruke: 217
82.131.178.*

Sajt: www.comp.rs/izradasajta


+6 Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...05.02.2007. u 21:13 - pre 178 meseci
Citat:
savkic: > U stvari zavisi sa kojom arhitekturom radis. Ako je Classic, svako vidi staru verziju dok se ne konektuje. Ako
> je SuperServer, onda je dovoljno zatvoriti sve transakcije bez diskonektovanja. Naravno, ako radis u

Da li si siguran, meni je u glavi da se keširanje vrši na nivou konekcije.


Classic na nivou konekcije, SuperServer ima shared cache, tj. sve konekcije vide isti metadata. Prakticno kada u jednoj transakciji promenis proceduru, svaka novootvorena transakija ce je videti - cak i ako imas neke druge otvorene transakcije. Uzmi slobodno neki admin. alat pa probaj.

Citat:
savkic: > Delphiju ili necem slicnom gde ti stalno neke komponente drze otvorene transakcije onda ti to i ne vredi puno,

Nema komponenti koje će same od sebe to raditi, to zavisi od programera.


Moguce da sam nesto pobrkao u vezi toga, nisam koristio Delphi vec 4 godine ili tako nesto. Koliko se secam dok je bio BDE i IBO imaju neki svoj cache koji ostaje dok se konekcija ne ugasi. Ali mozda i gresim u vezi toga... Neki Delphi expert ce znati bolje.

 
Odgovor na temu

schild
Dejan Šild
TopCode Software
Subotica

Član broj: 59888
Poruke: 137
*.legendww.com.

Sajt: www.topcode.rs


+2 Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...12.02.2007. u 06:50 - pre 178 meseci
Negde sam pročitao da ne možeš raditi bezbroj izmena na FB bazi, a da ne uradiš backup/restore. Onda ti se dese ovakve stvari - znači prilikom razvoja, ako puno menjaš strukturu baze, odradi backup/restore s vremena na vreme.

Sad ću možda da lupim, ali mislim da ima neki brojač izmena (verzija), pa kada on dođe do nekog maximuma onda počinju problemi. Prilikom restore se ti brojači resetuju.
 
Odgovor na temu

mbabuskov
Milan Babuškov
Subotica

Član broj: 4718
Poruke: 217
*.subotica.net.

Sajt: www.comp.rs/izradasajta


+6 Profil

icon Re: procedura se izvrsi bez greske, ali ne uradi ono sto treba...12.02.2007. u 12:20 - pre 178 meseci
Citat:
schild: Negde sam pročitao da ne možeš raditi bezbroj izmena na FB bazi, a da ne uradiš backup/restore. Onda ti se dese ovakve stvari - znači prilikom razvoja, ako puno menjaš strukturu baze, odradi backup/restore s vremena na vreme.

Sad ću možda da lupim, ali mislim da ima neki brojač izmena (verzija), pa kada on dođe do nekog maximuma onda počinju problemi. Prilikom restore se ti brojači resetuju.


Ovo vazi samo za tabele, gde postoji tzv. format i gde baza pamti prethodne formate kolona. Mozda malo da objasnim kako ovo funkcionise: recimo imas kolonu tipa decimal(8,4) i onda je sa ALTER TABLE .. ALTER COLUMN ... promenis da bude decimal(18,4). Posto tabela ima vec neke podatke u sebi koji su do sada cuvani kao 8,4 kada radis sa njima baza radi prevodjenje iz 8.4 u 18.4. Novouneti podaci se cuvaju u formatu 18.4 pa nema konverzije. Dakle, binarna reprezentacija podataka na disku nije ista. Da bi ovo bilo moguce, cuva se tzv. format tj. opis formata kolone u sistemskoj tabeli RDB$FORMATS. Takodje u RDB$RELATIONS postoji polje RDB$FORMAT koje pokazuje trenutni broj izmena te tabele.

E sad, problem je sto je polje koje cuva redni broj formata smallint, a nekad ovo bilo 8 bita kada se pravio prvi Interbase i zato ima ogranicenje od 256 razlicitih formata. Dakle, mozes napraviti maksimalno 255 izmena nad jednom tabelom (svaka ima svoj format) pre nego sto moras uraditi backup/restore. Backup zapisuje sve podatke u tekucem formatu (u primeru koji sam gore naveo decimal(18,4)) tako da nema vise potrebe pamtiti stari format.

 
Odgovor na temu

[es] :: Firebird/Interbase :: procedura se izvrsi bez greske, ali ne uradi ono sto treba...

[ Pregleda: 4068 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

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