webForumDet fria alternativet

Sql insert problem

14 svar · 315 visningar · startad av dahlgren

dahlgrenMedlem sedan aug. 20011 442 inlägg
#1

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

[Microsoft][ODBC SQL Server Driver][SQL Server]Cannot insert the value NULL into column 'ID', table ***.****.News'; column does not allow nulls. INSERT fails.

/dweb/intern/check.asp, line 5

Detta felmedelande dyker upp när jag försöker lägga till i min databas. Koden som används är följande:

<!--#include virtual="/dweb/koppla.asp" -->
<%

SQL = "Insert Into News(nyhet) VALUES ('" & Request.Form("nyhet") & "')"
Set rs = conn.Execute(SQL)

Set rs = nothing
Set conn = nothing

Response.Redirect "validering.asp?m=ledare"

%>

Vad är det som är fel?

BrimbaMedlem sedan dec. 19992 966 inlägg
#2

Du har ett fält som heter ID. Du vill troligen att det skall vara typen 'räknare' men du har nog valt något annat.

dahlgrenMedlem sedan aug. 20011 442 inlägg
#3

DEn är av typen int, ska den vara nåt annat? ar konverterat allt från en acess databas.

dahlgrenMedlem sedan aug. 20011 442 inlägg
#4

Nu funkar det jag ändrade till identity.
Hur gör jag om jag vill få in dagens datum i kolumen datum som öär av typen smalldatetime?

GimboMedlem sedan dec. 20001 630 inlägg
#5
<!--#include virtual="/dweb/koppla.asp" -->

<input type="hidden" name="datum" value="date()"> <--- denna kod lägger du mellan <form></form> 

<%
SQL = "INSERT INTO news(nyhet, datum) values('" & Request.Form("nyhet") & "', '" # Request.Form("datum") # "')"

Set rs = Conn.Execute("SQL)

Set rs = nothing
Set conn = nothing

Response.Redirect "validering.asp?m=ledare"
%>
dahlgrenMedlem sedan aug. 20011 442 inlägg
#6

Jag får ett felmedelande där det står expected end of statment vid det fetmarkerade:
SQL = "INSERT INTO news(nyhet, datum) values('" & Request.Form("nyhet") & "', '" # Request.Form("datum") # "')"

Koden på sidan med formuläret.

 <form action="check.asp" method="post">
                    <p> 
                      <textarea rows="4" cols="30" name="nyhet" id="input">Tänk på att inte skriva för långt.</textarea>
                    </p>
                    <input type="hidden" name="datum" value="<%date()%>"> 
                    <input type="submit" value="Skicka" id="input">
                    <input type="reset" value="Rensa" id="input">
                    <font face="Arial">
                    <%
    If Session("Login")="admin" Then
    Response.Write("<a href='news.asp?m=ledare'>Radera en nyhet!</A><br>")
    end if 
     %>

</form>

LarsGMedlem sedan dec. 200012 465 inlägg
#7
SQL = "INSERT INTO news(nyhet, datum) values('" & Request.Form("nyhet") & "',current_timestamp)"

# är specifikt för access.

dahlgrenMedlem sedan aug. 20011 442 inlägg
#8

Nu dyker detta felmedelande upp.
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Could not find stored procedure 'SQL'.

/dweb/intern/check.asp, line 8

Rad 8 är när jag försöker köra sql-satsen.

LarsGMedlem sedan dec. 200012 465 inlägg
#9

Hur ser koden ut?

dahlgrenMedlem sedan aug. 20011 442 inlägg
#10
<!--#include virtual="/dweb/koppla.asp" -->

<%
SQL = "INSERT INTO news(nyhet, datum) values('" & Request.Form("nyhet") & "',current_timestamp)" 

Set rs = Conn.Execute("SQL")

Set rs = nothing
Set conn = nothing

Response.Redirect "validering.asp?m=ledare"
%>
LarsGMedlem sedan dec. 200012 465 inlägg
#11
SQL = "INSERT INTO news(nyhet, datum) values('" & Request.Form("nyhet") & "',current_timestamp)" 

Conn.Execute SQL,,128
Set conn = nothing
dahlgrenMedlem sedan aug. 20011 442 inlägg
#12

Tack för hjälpen. Nu har jag bara en sista fråga hur gör jag för att bara få med datumet och ínte klockslaget?

Jesper TMedlem sedan nov. 20017 058 inlägg
#13

Har du date() och inte now() så skall det bara bli datumet ju, ser ut som du har date.

LarsGMedlem sedan dec. 200012 465 inlägg
#14

SQL server lagrar alltid datum och tid. Du får formattera värdet (med t.ex. formatdatetime) när du visar data.

Jesper TMedlem sedan nov. 20017 058 inlägg
#15

Eeehh, då får du nog formattera värdet (med t.ex. formatdatetime) när du visar data. ;)

Genererad på 383 ms · cache AV · v20260730165559-full.f96bc7eb