Är user_name primärnyckel, eller har du en annan räknare. Du försöker sätta in ett nullvärde i den kolumn som troligtvis är din pk. Är det user_name så är strängen tom, testa å skriva ut din sql-sträng innan du exekverar.
Response.Write(SQL)
21 svar · 937 visningar · startad av jimbo
Hej!
Får ett plötsligt konstigt felmeddelande i min fiskedagbok nu när man ska skapa en fiskedagbok, ändrade iof ett fält där innan (user_id) för att få en annan sqlsats att funka på defaultsidan.
"[Microsoft][Drivrutin för ODBC Microsoft Access] Null-värden är inte tillåtna i index och primärnycklar."
Felet som den ref. till är:
SQL = "INSERT INTO users (user_name,user_email,user_password) VALUES('"& SQLReplace(Request.Form("brugernavn")) &"','"& SQLReplace(Request.Form("email")) &"','"& SQLReplace(Request.Form("password")) &"')"
COnn.ExeCute(SQL)
Någon som kan ge mig en förklaring?
Att det har med databasen att göra så mycket hajar jag ;)
Tack på förhand
Mvh Jimmy
Är user_name primärnyckel, eller har du en annan räknare. Du försöker sätta in ett nullvärde i den kolumn som troligtvis är din pk. Är det user_name så är strängen tom, testa å skriva ut din sql-sträng innan du exekverar.
Response.Write(SQL)
Kikade på de gamla nej user_id var räknaren. Fick ju ändra den till text för att få värdena på startsidan att bli rätt.
Men då ska väl inte detta påverkas eller, kan man inte sätta något annat som räknare då?
Fick ju ändra den till text för att få värdena på startsidan att bli rätt.
Hmm. Varför ändrade du till text? Det finns ingen anledning att ha ID:n i textformat. Ändra tillbaka till räknare / autonumber.
jo jag var ju tvungen att göra det för att denna satsen skulle funka på startsidan:
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DBQ=" & Server.Mappath("dagbog.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
Set objrs = Server.CreateObject("ADODB.RecordSet")
strQ = "SELECT TOP 3 users.user_Id, users.user_name, dagbog.overskrift, dagbog.dato FROM users INNER JOIN dagbog ON users.user_Id = dagbog.user_Id"
objrs.Open strQ, objConn, 1, 3
Do while not objrs.EOF or objrs.BOF
response.write("<A HREF='dagbog.asp?ejer=" & objRS("user_id") & "'>"& objRS("user_name") & " - " &"</A> " &objrs("overskrift") & " den " & objrs ("dato")&"<br>")
objrs.movenext
loop
objrs.Close
Set objrs = Nothing
objConn.Close
Set objConn = Nothing
%>
Grejen e att nu kan ja inte bara knalla i o ändra tillbaka det för då kommer detta meddelandet:
http://www.fiskeportalen.com/raknare.jpg
Då ska du ju byta datatyp där det är felaktigt, inte där det är rätt!
User_id i usertabellen ska vara autonumber / räknare, och tal i dagbokstabellen.
Att jag skulle byta det innan var en annan som sa till mig...
Ok ska testa det tackar så länge =) återkommer med besked.
Att jag skulle byta det innan var en annan som sa till mig...
Hoppas att det inte är mig du menar.... ;)
från inlägg: http://www.webforum.nu/showthread.php?s=&postid=1052325#post1052325
Att du får typblanningsfel beror på att du har olika fälttyper i databasen. Om du jämför de olika tabellerna i bilden du la upp så ser du att i User är User_id högerställt och i tabellen dagbog är bruger_Id vänsterställt. Troligtvis är fältypen "tal" i User och "text" i dagbog...
Ändra så du har samma exempelvis "tal"
det står inget om text....
Mvh
Henrik
HEHE jo ;) nej de e lugnt ja e inte så haj på de men ja försöker lära mig allt efterhand, ska kika på era svar o testa lite
Tack så länge !
:h
Då ska du ju byta datatyp där det är felaktigt, inte där det är rätt! User_id i usertabellen ska vara autonumber / räknare, och tal i dagbokstabellen.
Ok har fått till databasen igen men nu när jag har ändrat bruger_id till tal så blir det typbladningsfel när man ska klicka in sig på användarnas dagböcker...hmmm?
strQ = "select * from dagbog where bruger_id = '"
strQ = strQ & request("ejer") & "'"
objRS.Open strQ, objConn, , , adCmdText
Du ska inte ha apostrofer runt värden om fältet är av taltyp.
menar du ("ejer") eller i slutet av strängen, eller var ?
Ja, det är väl det fältet som numera är av taltyp?
jo precis men ska jag bara ha paranteserna kvar runt (ejer) eller utan dom, får inte de att funka...
Parenteser? Det är bara apostroferna du ska ta bort i SQL-frågan eftersom fältet är av taltyp.
("ejer") ska ju vara kvar eller hur? likaså det vid "select osv
så hmm visa mig anders, vilka paranteser ska väck , blir bara syntaxfel..
Varför pratar du om parenteser?
Ta bort apostroferna runt värdet i SQL-frågan.
nej ja menar ju apostroferna klart snurrig i bollen =)
E ja trög de e ja nog du menar apostroferna här:
strQ = "select * from dagbog where bruger_id = '"
Men de funkar inte
Jag tror inte jag kan vara tydligare!
Ta bort apostroferna runt fältvärdet. De skall inte vara där, ty fältet bruger_id äro av taltyp.