Avatar billede mannik Nybegynder
18. juni 2003 - 20:20 Der er 9 kommentarer og
2 løsninger

Skrive til database

Hej

Da jeg forsøger at få et bestillings system til at virke og forgæves forsøgte at få noget med sessions til at virke har jeg prøvet med en tutorial fra html.dk. Jeg er dog lidt lam til dette, hvad er der forkert her ?  <%
Dim objConndrejebase
Set objConndrejebase = Server.CreateObject ("ADODB.Connection")
objConndrejebase.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\manniken.dk\www\config\datasources\drejebase.mdb"
objConndrejebase.Open () 

Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "SELECT id, d_min,l,e, insert,price,drawing,image, best FROM dreje_indv",objConndrejebase, adCmdTable
%>
<table>
<%   
strSQL = "Insert into dreje_indv ("

strSQL = strSQL & "best, "


strSQL = "Insert into dreje_indv (best) values('" & Request.Form("order") & " ' )"
objConndrejebase.Execute(strSQL)

Response.Write"<tr><td>" & objRS("id") &"</td>"
Response.Write"<td>" & objRS("best") &"</td>"

%>
</tr></table>       
           
             
<%
Set objRS=objConndrejebase.Execute("SELECT id, d_min, l, e, insert, price, drawing, image, best FROM dreje_indv")
Do while Not objRS.EOF

objRS.Movenext
Loop

objRS.Close
Set objRS = Nothing

objConndrejebase.Close
Set objConndrejebase = Nothing
%>
       
        </p>
       
    </body>

</html>

drejebase er min database og dreje_indv er min tabel. "id" er bestillingsnr og "best" er feltet der bestilles i.

Jeg får denne fejl :

Microsoft JET Database Engine error '80004005'
Index or primary key cannot contain a Null value.

/shoppingbasket.asp, line 32

linie 32 er her
objConndrejebase.Execute(strSQL)

Hvisjeg nu får dette til at virke, hvordan kan jeg så evt. styre kunderne med sessions ?

På forhånd tak
Avatar billede netro Nybegynder
18. juni 2003 - 20:54 #1
Du indsætter en tom værdi i et felt med index.
Avatar billede netro Nybegynder
18. juni 2003 - 20:55 #2
Hvilke felter har du index på (udover ID)?
Avatar billede mannik Nybegynder
18. juni 2003 - 21:05 #3
Ingen . I "id" har jeg "indekseret-ingen dubletter" Ellers står der nej i alle felter i databasen. Jeg kan ikke huske hvorfor jeg var nødt til at vælge ja men der var en grund. Hvad er det jeg har misforstået ?
Avatar billede mannik Nybegynder
18. juni 2003 - 21:26 #4
Jeg skulle måske tilføje at ovennævnte side er den side man kommer til ved klik på "submit" på denne side : http://manniken.dk/dreje.asp . Det jeg prøver på er at skrive det bestilte antal til databasen og herefter vise det bestillingsnr der er bestilt på samt antal.
Avatar billede netro Nybegynder
18. juni 2003 - 21:34 #5
Og hvilken datatype er ID?
Avatar billede netro Nybegynder
18. juni 2003 - 21:40 #6
Umiddelbart gætter jeg på, det er integer. Derfor får du fejl, når du indsætter et ikke-eksisterende tal i feltet, der har indeks.

Prøv at sæt datatypen til autonummerering i stedet, så skulle det gerne være, som du vil have det.
Avatar billede mannik Nybegynder
19. juni 2003 - 08:06 #7
Alle felter er tekst. Jeg vil heller ikke indsætte en værdi i feltet "id". Jeg prøver at indsætte den i feltet "best" med denne sætning:  strSQL = "Insert into dreje_indv (best) values('" & Request.Form("order") & " ' )"
Avatar billede the_bma_man Nybegynder
19. juni 2003 - 10:13 #8
Det er nok det, der er fejlen.
Hvis du IKKE sætter noget i ID - men det er et index - så vil den give den fejl.
Prøv at lave ID-feltet til autonummer som også netro skrev.
Avatar billede mannik Nybegynder
19. juni 2003 - 12:48 #9
Tak for svaret . Men mit id er et felt med et varenummer, f.eks 'S08H SCLCR' vil jeg løbe ind i problemer hvis jeg laver feltet til autonummer? Jeg kunne forestille mig at jeg hat angrebet det hele forkert ra start af ?
Avatar billede mannik Nybegynder
19. juni 2003 - 17:52 #10
Jeg fik det til at virke, jeg tillader mig at dele pointene mellem jer, ok ?
Avatar billede netro Nybegynder
19. juni 2003 - 19:14 #11
Ja, brug autonummeret til varenumre.
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