Avatar billede ripley Nybegynder
07. december 2000 - 15:25 Der er 12 kommentarer og
1 løsning

ODBC-fejl!

Jeg har et administrationsmodul til min website. På én af siderne kan man lægge en ny post ind i tabellen (en bog), der samtidig tilknytter nøgleord m.m. til bogen (man vælger dem ud fra en selec-box, der er genereret fra databasen og de findes i andre tabeller). Da der er tale om mange-til-mange relationer, har jeg lavet en join-tabel, der kun indeholder et et id for posten og et id for nøgleords-posten.

Hver gang jeg forsøger at gemme, får jeg følgende fejlmeddelelse:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e2f\'

[Microsoft][ODBC Microsoft Access Driver] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.

/admin/tilfoej_ny.asp, line 79


Avatar billede mape Nybegynder
07. december 2000 - 15:27 #1
Hvordan ser din sql ud?
Avatar billede geeeet Nybegynder
07. december 2000 - 15:27 #2
Det er fordi at du ikke har din id som primær nøgle.
id-feltet skal helst være autonummer, sådan at der ikke kommer dubletter, hvilket er hvad der sker her...

/Geeeet
Avatar billede ripley Nybegynder
07. december 2000 - 15:41 #3
Jeg har sat begge id´erne op til at være primærnøgler. Der må jo gerne komme dubletter - i hvert fald i bog-id´ets tilfælde, da én bog kan have flere nøgleord.
Avatar billede geeeet Nybegynder
07. december 2000 - 15:43 #4
ok, men du er nødt til at have en id som er unik til hver post i databasen !
Ellers sker ovenstående...

/Geeeet
Avatar billede mape Nybegynder
07. december 2000 - 15:43 #5
post sql!
Avatar billede ripley Nybegynder
07. december 2000 - 15:49 #6
    noegleordArray=split(GemNoegleordArray)
    For n = 0 To UBound(noegleordArray)
        Set xrs =  Server.CreateObject(\"ADODB.Recordset\")
        xrs.ActiveConnection = conn
        xrs.CursorType = adOpenKeyset
        xrs.LockType = adLockOptimistic
        xrs.Source = \"QTotal_JTBoegerNoegleord\"
        xrs.Open
        xrs.AddNew
        xrs(\"Tpf_bogID\") = cint(tempBogID)
        xrs(\"Tpf_AarsTidID\") = cint(noegleordArray(n))
        xrs.Update
        xrs.Close
        Set xrs = Nothing
    next
Avatar billede ripley Nybegynder
07. december 2000 - 15:53 #7
Ja okay - der gik vist lidt kludder i det - Tpf_AarsTidID skulle have været Tpf_NoegleordID, undskyld :-)
Avatar billede ripley Nybegynder
07. december 2000 - 15:57 #8
Jeg tænkte på, om det kunne være fordi jeg har bedt om at se flere felter i min query i access og så ikke har dem med i min \"AddNew\"-sætning?
Avatar billede ripley Nybegynder
07. december 2000 - 16:25 #9
Forstår I, hvad jeg mener?
Avatar billede ripley Nybegynder
07. december 2000 - 20:35 #10
Åbenbart ikke?
Jeg prøver lige at forklare mig lidt bedre:
Jeg har som sagt nogle join-tabeller i Access. Jeg forespørger på queries/forespørgsler, hvor jeg så har bedt om at se de to fremmednøgler i join-tabellen.
Jeg har samtidig tilføjet et par andre felter fordi jeg bruger forespørgslen i en anden sammenhæng.
I ovenstående udklip af asp-kode skriver jeg ned til forespørgslen - men tager kun fat i to felter. Kan det være et problem, at jeg også har andre felter, som jeg ikke skriver til?
Avatar billede geeeet Nybegynder
08. december 2000 - 09:27 #11
Det problem du har her er fordi at du forsøger at oprette to poster, hvor din primary key er ens...

/Geeeet
Avatar billede ripley Nybegynder
15. januar 2001 - 11:44 #12
Jeg fandt selv ud af det - problemet opstod, fordi det var bygget sådan op, at først skulle det hele slettes - og så lægges ind igen. Jeg havde bare glemt at slette først - nu har jeg lavet det om, så der i stedet opdateres på samme post i databasen - det er også pænere!
Avatar billede ripley Nybegynder
15. januar 2001 - 12:11 #13
geeet : For pokker da - jeg ville give dig lidt af pointene for hjælpen, men jeg lavede kludder i det. Svar lige igen!
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
Kurser inden for grundlæggende programmering

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