praegune kellaaeg 19.06.2025 00:42:32
|
Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
multizync
HV kasutaja

liitunud: 23.05.2005
|
10.04.2012 10:36:23
|
|
|
Mul nagu niimoodi töötaks, kui tabelis Tuba, on sisestatud kirjed kõigile 4'le hinnaklass_id'le. Et nagu tabelis Tuba on esindatud kõik Hinnaklass tabeli välisvõtmed. Aga näiteks kui hinnaklass_id = 3 'ga ei ole tabelis Tuba ühtegi kirjet, siis funktsioon peksab segast.
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
18 |
|
tagasi üles |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
10.04.2012 11:01:56
|
|
|
Seda sulle öelda üritasingi, et seal on loogikaviga. Kui teed triggeris päringu tabelisse Tuba, siis ei saa sa sealt kätte seda rida, mida lisada üritatakse kuna triggeri käivitumise hetkel ei ole see rida veel lisatud. Ehk hetkel teed seda, et kontrollid ka tabelis Tuba on vähemalt üks reeglitele vastav kirje. Kas ka lisatav kirje korrektne on, seda su kood ei kontrolli, lisatava kirje andmed saadki kätte tabelist NEW.
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
60 |
|
tagasi üles |
|
 |
2korda2
HV kasutaja
liitunud: 19.07.2003
|
10.04.2012 12:13:10
|
|
|
struktuur:
KORRUS
HINNAKLASS
HINNAKLASS_KORRUS (seosetabel veergudega ID, KORRUS_ID, HINNAKLASS_ID)
TUBA (veeruga HINNAKLASS_KORRUS_ID)
Selliste protseduuride/triggeritega ei ole mõistlik jännata.
|
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
multizync
HV kasutaja

liitunud: 23.05.2005
|
10.04.2012 14:20:19
|
|
|
Sain korda selle triggeri funktsiooni asja. Tänud napoleon,
Tekkis nüüd järgmine küsimus, et kas kui mul on ühel primaar võtme veerule isik_id lisatud arvujada generaator, siis, kui lisada andmeid, ja andmetes on viga sees olnud, siis ta annab veateate (CHECK kitsendused, mis olen ennem lisanud) ja ridu ei lisata vastavasse tabelisse. Aga see arvujada generaatori genereeritud arv, mis peaks olema järgmise rea isik_id tabelis on millegipärast niipalju kordi suurem kui mitu korda olen eelmist rida valesti sisestanud.
Näiteks, mul on isik_id tabelis järgmised väärtused: 1, 2, 3, 4 Ja kui ma nüüd üritan ühe insert lause sisestada, ja lauses on viga sees, parandan vea ära, ja siis on järgmine isik_id 6. Tabelis on siis: 1, 2, 3, 4, 6.
nr 5 jääb vahelt ära, kas nii ei saa kuidagi teha, et ta ei jätaks vahele neid arvusi.
Tänud ette..
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
18 |
|
tagasi üles |
|
 |
serk
HV kasutaja
liitunud: 24.05.2003
|
10.04.2012 14:38:09
|
|
|
Tee endale selgeks mis asi on sequence ja kuidas neid kasutatakse.
Miks ei tohi arv vahele jääda?
Triggerist: ehe näide, miks neid mitte kasutada, teadmata kuidas trigger üldse töötab Lisaks, raisid seal exceptioni, mis siis teed, kui vaja veateade kuvada teises keeles? Oletan, et hetkel kuvad seda teadet otse applikatsioonis. Kuidas sa sellise raisimise peale applikatsioonis normaalse vigadehalduse ehitad? Hakkadki exception blokis substringima? Sellisel kujul exceptioni raisimine, well, kui seda mõnele õppejõule näitad, siis saad kena peapesu.
Võta google lahti ja loe alustuseks läbi andmebaasi tootja manualid EXCEPTION'ite ja SEQUENCE'ide kohta.
|
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
multizync
HV kasutaja

liitunud: 23.05.2005
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
18 |
|
tagasi üles |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
10.04.2012 15:03:16
|
|
|
serk kirjutas: |
Lisaks, raisid seal exceptioni, mis siis teed, kui vaja veateade kuvada teises keeles? Oletan, et hetkel kuvad seda teadet otse applikatsioonis. Kuidas sa sellise raisimise peale applikatsioonis normaalse vigadehalduse ehitad? Hakkadki exception blokis substringima? Sellisel kujul exceptioni raisimine, well, kui seda mõnele õppejõule näitad, siis saad kena peapesu.
|
Asjal võib siiski jumet olla, kui kontroll on ka äriloogika kihis olemas ehk ideaalis ei tohiks see exception kunagi tulla, aga kui keegi äriloogikast mööda hiilib(näiteks otse baasi näppides või äriloogikat häkkides), siis saab lõpuks ikka vastu näppe:)
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
60 |
|
tagasi üles |
|
 |
serk
HV kasutaja
liitunud: 24.05.2003
|
|
Kommentaarid: 8 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
2korda2
HV kasutaja
liitunud: 19.07.2003
|
10.04.2012 16:57:40
|
|
|
napoleon kirjutas: |
serk kirjutas: |
Lisaks, raisid seal exceptioni, mis siis teed, kui vaja veateade kuvada teises keeles? Oletan, et hetkel kuvad seda teadet otse applikatsioonis. Kuidas sa sellise raisimise peale applikatsioonis normaalse vigadehalduse ehitad? Hakkadki exception blokis substringima? Sellisel kujul exceptioni raisimine, well, kui seda mõnele õppejõule näitad, siis saad kena peapesu.
|
Asjal võib siiski jumet olla, kui kontroll on ka äriloogika kihis olemas ehk ideaalis ei tohiks see exception kunagi tulla, aga kui keegi äriloogikast mööda hiilib(näiteks otse baasi näppides või äriloogikat häkkides), siis saab lõpuks ikka vastu näppe:) |
Kaka, sest vähegi suurema projekti korral ei suuda never-ever keegi tagada, et mõlemas kihis olevad kontrollid 100% alati täpselt analoogselt töötaksid. Tarbetu overhead, mida saab vältida lihtsa töökorraldusliku võttega: LIVE andmebaasi kallal ilma äriloogika kihi kontrollideta ei käida. Kui on vaja käia, siis alustuseks "9 korda mõõdetakse" [käivitatakse tehtav muudatus testkeskkonnas (keskkond ja data on võimalikult LIVE sarnane) ja kontrollitakse tulemust] ja alles seejärel "lõigatakse" (tehakse muudatus LIVE keskkonnas). Loomulikult ei tee üldse paha eelnevalt LIVE baasist backup teha. Viimane sõltub muudatuse iseloomust ja baasi struktuurist - kui baasis on rakendatud korralik ajalootabelite lahendus (vat see on koht, kus saab/tohib triggereid kasutada) ja tegemist on vaid data muutmisega, siis võib sealt taastamine olla lihtsam/mõistlikum.
|
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
multizync
HV kasutaja

liitunud: 23.05.2005
|
18.04.2012 01:17:13
|
|
|
Üks küsimus tekkis, kui veerule on kehtestatud DEFAULT value, kas siis on mõtet määrata ka NOT NULL
Ise küll ei mõtle välja mingit olukorda, kus seda NOT NULL'i oleks siis vaja..
Kinnitab keegi äkki seda..
Või lükkab ümber..
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
18 |
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
18.04.2012 07:03:10
|
|
|
Ka DEFAULT määranguga väljale saad sa ju käsitsi anda NULL väärtuse. Kui see on sisuliselt vale, siis tuleb ka NOT NULL panna. DEFAULT väärtus rakendub minu meelest ainult siis, kui teed INSERT päringu, kus kõnealust välja üldse mainitud pole.
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
multizync
HV kasutaja

liitunud: 23.05.2005
|
18.04.2012 13:16:55
|
|
|
Fukiku kirjutas: |
Ka DEFAULT määranguga väljale saad sa ju käsitsi anda NULL väärtuse. Kui see on sisuliselt vale, siis tuleb ka NOT NULL panna. DEFAULT väärtus rakendub minu meelest ainult siis, kui teed INSERT päringu, kus kõnealust välja üldse mainitud pole. |
Just, sul on õigus, eemaldasin ühelt veerult NOT NULL ära ja lisasin sinna veergu NULL väärtuse, ja jäigi tühjaks.
Nii, et ikka DEFAULT NOT NULL
Tänud..
E: Aga primaarvõtme veerule vast ei ole vaja NOT NULL kehtestada, sest primaarvõtme kitsendus automaatselt määrab ära, et tegemist on kohustusliku veeruga..?
|
|
Kommentaarid: 20 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
0 :: |
18 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
sa ei või postitada uusi teemasid siia foorumisse sa ei või vastata selle foorumi teemadele sa ei või muuta oma postitusi selles foorumis sa ei või kustutada oma postitusi selles foorumis sa ei või vastata küsitlustele selles foorumis sa ei saa lisada manuseid selles foorumis sa võid manuseid alla laadida selles foorumis
|
|
Hinnavaatlus ei vastuta foorumis tehtud postituste eest.
|