webForumDet fria alternativet

Exist check on Update

5 svar · 231 visningar · startad av SteveP

StevePMedlem sedan mars 2003772 inlägg
#1

Jag har 2 tabeller

*tblLCPFiles
LCPBoxID <fk5><Null>
<Andra ointressanta kollumner>

*tblLCPFileBox
LCPBoxID<PK><Not Null>
Description

tblLCPFiles har en left join till tblLCPFileBox för att få ut "Description" ur den matchande posten.

Om jag gör en update på fältet som sätts in i tblLCPFiles.LCPBoxID och det matchar nåt värde i tblLCPFileBox.LCPBoxID så går det utmärkt. Eller om jag sätter värdet till Null.

Men om jag skriver in ett värde i tblLCPFiles.LCPBoxID som inte existerar i tblLCPFileBox.LCPBoxID så får jag felet

UPDATE statement conflicted with COLUMN FOREIGN KEY constraint 'refLCPFileBox_LCPFiles'.

Hur gör jag en check så att det värdet man skriver in i tblLCPFiles.LCPBoxID måste matcha ett värde som finns i tblLCPFileBox.LCPBoxID annars ska den inte göra nån update?

I vanliga fall använder man dropdown listor där dom har ett restrictat val, men tblLPCFileBox innehåller ca 5.000 olika värden så det blir inte speciellt snyggt.

LarsGMedlem sedan dec. 200012 464 inlägg
#2

Alternativ:

Kontrollera med en select-fråga innan du gör update

Fånga felmeddelandet och returnera en egen feltext.

StevePMedlem sedan mars 2003772 inlägg
#3

Ja, det låter som ett bättre alternativ. Ibland har man förmågan att göra saker krångligare än vad dom är.

Tack!

LarsGMedlem sedan dec. 200012 464 inlägg
#4

Den andra meningen var ett eget alternativ. Dvs, att du gör update och tar hand om felkoden. Så skulle jag göra eftersom den typen av kontroller behövs i alla fall.

StevePMedlem sedan mars 2003772 inlägg
#5

Det första alternativet med en kontroll fråga fungerar bra.

Men hur skulle jag göra för att ta hand om felkoden som du nämner i den andra meningen?

@ndersMedlem sedan juni 200032 969 inlägg
#6

Om du använder asp:

on error resume next
' kör koden som kan generera fel

' kontrollera om det blev fel
if err.number <> 0 then
   ' weee, det blev fel
end if

' återställ
on error goto 0

Mvh

126 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)