Avatar billede oasen Nybegynder
19. december 2002 - 21:10 Der er 11 kommentarer og
1 løsning

Referentiel integritet

Jeg har et par tabeller med tvungen referentiel integritet i mellem. Det lyder muligvis underligt, men jeg kunne godt tænke mig, at fremmednøglen kunne indeholde 0-taller uden at skulle droppe integriteten.
Kan man opstille en eller anden betingelse i.f.b. med relationen?

Noget alá:

Gennemtving referentiel integritet på alle fremmednøgler, der ikke har værdien "0".

På forhånd tak...
Avatar billede mugs Novice
19. december 2002 - 21:19 #1
Flg. er hentet fra Access hjælpefil:

Du kan ikke indtaste en værdi i det fremmed nøgle-felt i den relaterede tabel, der ikke findes i den primære tabels primære nøgle. Du kan dog indtaste en Null-værdi i den fremmede nøgle, der angiver, at posterne ikke er relaterede. Du kan f.eks. ikke arbejde med en ordre, der er tildelt en kunde, som ikke findes, men du kan arbejde med en ordre, der ikke er tildelt nogen, ved at indtaste en Null-værdi i feltet Kunde-ID.

Jeg vil så mene, at du kan arbejde med poster, der ikke har nogen værdi i feltet, og så bruge en kode som f.feks. IsNull i forespørgsler, samt:

If IsNull(Me.Feltnavn) Then
bla bla
End If

i VBA
Avatar billede oasen Nybegynder
19. december 2002 - 21:23 #2
Nu er fremmednøglen af typen "langt heltal" - så tildeles felterne automatisk en null-værdi, hvis jeg undlader at angive en default-værdi for dem, ikk'?
Avatar billede mugs Novice
19. december 2002 - 21:27 #3
Nej - Talfelter får værdien 0. Du må ikke forveksle Null (tomt felt) med tallet 0.
Avatar billede oasen Nybegynder
19. december 2002 - 21:28 #4
Hvis jeg angiver default-værdien til "" i stedet for "0", er alle talfelterne tomme. Er det ikke, fordi de er lig null?
Avatar billede oasen Nybegynder
19. december 2002 - 21:35 #5
I hvertfald får jeg returneret de tomme talfelter, hvis jeg via ASP, beder om dem, der er null...
Avatar billede mugs Novice
19. december 2002 - 21:37 #6
Jo - jeg tog fejl.
Jeg kan ikke angive en defaultvalue til "" (Access97), så får jeg fejlen, at typerne ikke passer sammen. Men jeg kan undlade at angive en default. Men det ændrer vel ikke noget i mit svar?
Avatar billede oasen Nybegynder
19. december 2002 - 21:39 #7
Så kan man åbenbart fra version 2000+...

Det bliver løsningen. Tak for tippet :)
Avatar billede mugs Novice
19. december 2002 - 21:41 #8
Har iøvrigt intet kendskab til ASP. Mit svar bygger udelukkende på Access.
Avatar billede oasen Nybegynder
19. december 2002 - 21:41 #9
Lige en ting - jeg mente nu heller ikke at angive værdien til "". Jeg sætter ingen apostroffer i feltet. Jeg skriver bare slet ingenting overhovedet.
Avatar billede oasen Nybegynder
19. december 2002 - 21:42 #10
Ok - men hvis Access siger, at feltet er null, så siger ASP det i hvertfald også...
Avatar billede mugs Novice
19. december 2002 - 21:43 #11
Velbekomme - og tak for point.
Avatar billede mugs Novice
19. december 2002 - 21:44 #12
Enig i di kommentar vedr. ""
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester