Avatar billede djeclemen Nybegynder
27. januar 2004 - 16:06 Der er 25 kommentarer og
1 løsning

Skrive i database

Dette er mit script

<%
' Databaseforbindelse - husk at angive sti til din database
Dim Conn1, DSN1, strSQ, rs1
Set Conn1 = Server.CreateObject("ADODB.Connection")
DSN1 = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN1 = DSN1 & "DBQ=" & Server.MapPath("../usersystem/usermgr/usr.mdb")
Conn1.Open DSN1

' SQL forespørgsel
strSQ = "Select * from users WHERE user = '" & Session("uName") & "'"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs1 = Conn1.Execute(strSQ)

Response.Write rs1("forename") & "<br>"

strSQ = "Insert into users (id) values (41)"

' SQL sætning eksekveres
Conn1.Execute(strSQ)

' Luk databaseforbindelse
Conn1.Close
Set Conn1 = Nothing
%>

Jeg bruger en lege værdig 41, men menigen er at værdien skal komme fra en session.

Jeg får denne fejl

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Index or primary key cannot contain a Null value.

/usersystem/oprettet.asp, line 129
Avatar billede djeclemen Nybegynder
27. januar 2004 - 16:07 #1
før dette har jeg en database forbindelse til en anden database derfor er dim navnene ændret
Avatar billede kovalt Nybegynder
27. januar 2004 - 16:13 #2
det er fordi du prøver at indsætte et NULL i din primær nøgle....
Avatar billede djeclemen Nybegynder
27. januar 2004 - 16:17 #3
Ja Engelsk kan jeg altså godt, hvad skal det sige?
Avatar billede kovalt Nybegynder
27. januar 2004 - 16:19 #4
hvilken linie er 129
Avatar billede kovalt Nybegynder
27. januar 2004 - 16:20 #5
prøv evt. lige at udsrkive SQL-sætningen
Avatar billede djeclemen Nybegynder
27. januar 2004 - 16:22 #6
dette er 129 Conn1.Execute(strSQ)
Avatar billede djeclemen Nybegynder
27. januar 2004 - 16:22 #7
og det er dette jeg pøver på
strSQ = "Insert into users (id) values (41)"
Avatar billede kovalt Nybegynder
27. januar 2004 - 16:24 #8
hvad skriver du den hvis de skriver

response.write SQ
Avatar billede kovalt Nybegynder
27. januar 2004 - 16:25 #9
den linie burde jo ikke komme med nogen fejl. Du har en ikke anden streng som du også kalder strSQ og som du måske pøver at eksekvere
Avatar billede djeclemen Nybegynder
27. januar 2004 - 16:27 #10
nope mine andre linjer heder strSQL
Avatar billede kovalt Nybegynder
27. januar 2004 - 16:30 #11
og den udskriver "INSERT INTO Users (id) VALUES (41)"

det er ikke fordi nøglen i din users-tabel er sammensat?
Avatar billede djeclemen Nybegynder
27. januar 2004 - 16:34 #12
ja det udskriver den ved response.write strSQ

Hvad mener du med: det er ikke fordi nøglen i din users-tabel er sammensat?
Avatar billede kovalt Nybegynder
27. januar 2004 - 16:40 #13
hvis du har en sammensat primærnøgle i din tabel vil den komme med sådan en fejl....

altså hvis der indgår mere en et felt i din nøgle
Avatar billede djeclemen Nybegynder
27. januar 2004 - 17:26 #14
Altså hvis jeg har flere tabeller i den kolonne jeg vil skrive i??

Men tvinger jeg den ikke til at bruge det felt i kolonnen id hvor der i samme række står værdien af Sessionen i kolonnen user=

strSQ = "Select * from users WHERE user = '" & Session("uName") & "'"
Avatar billede thesurfer Nybegynder
28. januar 2004 - 00:51 #15
'id' er reserveret til autonummerering.. bruge et andet navn til dig kolonne..
Det kan være at den tillader dig at bruger [id] eller ([id])

Det er bedst at omdøbe din kolonne.
Avatar billede thesurfer Nybegynder
28. januar 2004 - 00:56 #16
mht fejl i "Conn1.Execute(strSQ)" og "den linie burde jo ikke komme med nogen fejl":
det er fordi den afvikler (Execute) "strSQ", som indeholder fejlen..

fejlen er altså i: strSQ = "Insert into users (id) values (41)"
Avatar billede djeclemen Nybegynder
28. januar 2004 - 14:03 #17
nu har jeg kaldt kolonnen nummer, men fejlen er den samme?
INSERT into USERS (nummer) VALUES (41)

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Index or primary key cannot contain a Null value.

/usersystem/oprettet.asp, line 131
Avatar billede thesurfer Nybegynder
28. januar 2004 - 14:19 #18
Check lige om din primære nøgle er sat til "autonummerering"/"autonumber"..
Avatar billede nellersteph Nybegynder
28. januar 2004 - 14:23 #19
har du ændret "tillad nullængde" til ja i din tabel ?
Avatar billede djeclemen Nybegynder
28. januar 2004 - 14:29 #20
jeg har prøvet både med kolonnen som "tal" men også som "tekst" autonumering er ikke slået til og jeg har prøvet både med tillad nullængde som ja og nej
Avatar billede nellersteph Nybegynder
28. januar 2004 - 14:32 #21
Tillad nullængde skal være i alle felter i tabellen undtagen id feltet !
Avatar billede nellersteph Nybegynder
28. januar 2004 - 14:33 #22
tillad nullængde skal være sat til ja i alle felter, det vardet jeg mente, sorry!
Avatar billede thesurfer Nybegynder
28. januar 2004 - 14:36 #23
'Normalt' vælger man primær key med autonummerering..
Avatar billede djeclemen Nybegynder
28. januar 2004 - 14:41 #24
kan det være fordi den er i tvivl om hvilken tabel den skal ændre det i?
Avatar billede djeclemen Nybegynder
28. januar 2004 - 15:11 #25
mente hvilken række
Avatar billede djeclemen Nybegynder
28. januar 2004 - 21:52 #26
ingen der kan løse dette?
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