webForumDet fria alternativet

Förbannade INSERT!!!

12 svar · 263 visningar · startad av Mika3l

Mika3lMedlem sedan nov. 20018 492 inlägg
#1

Varför får jag felmeddelandet
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][Drivrutin för ODBC Microsoft Access] Typblandningsfel i villkorsuttryck.
forum.asp, line 188

forum.asp(har inte gjort så mycket):

<%
Response.Buffer = True
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Driver={Microsoft Access Driver (*.mdb)}; dbq=" & Server.MapPath("forum")
%>
<html>
<head>
<title>Forum</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script language="javascript">
function kollaform()   {
var namn = document.form.av.value;
if(namn.length == 0) {
alert("Inget inlägg utan namn..."); return false;
}
var rubrik = document.form.rubrik.value;
if(rubrik.length == 0) {
alert("Ditt inlägg måste ha en rubrik!"); return false;
}
var inlagg = document.form.inlagg.value;
if(inlagg.length == 0) {
alert("Du måste skriva ett inlägg!"); return false;
}
}
</script>
</head>
<body>

<center><img src="images/forum.jpg" alt="   FORUM   " border="0"></center>
<br>

<table align="center" width="750" cellspacing="0" cellpadding="2" class="border">
 <tr>
  <td>

<% If Request.QueryString("page") = "" Then %>

<table width="750">
 <tr>
  <td width="255">
<strong>Rubrik</strong>
  </td>
  <td width="235">
<strong>Av</strong>
  </td>
  <td width="150">
<strong>Datum:</strong>
  </td>
  <td width="80">
<strong>Svar</strong>
  </td>
 </tr>
<%
MyPage = Request("nextpage")
If MyPage = "" then
MyPage = 1
End If
MyPagesize = 25
SQL = "SELECT IID, rubrik, av, datum, svar FROM data WHERE svar = False ORDER BY IID DESC"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorLocation = 3
rs.CacheSize = 5
rs.open SQL, Connection
If rs.EOF OR rs.BOF Then
Response.Write"</td></tr></table>"
Response.Write"<center><font class=orange><strong>Det finns inga inlägg i forumet!</strong></font></center>"

Else
rs.MoveFirst
rs.PageSize = MyPageSize
MaxCount = Cint(rs.PageCount)
rs.AbsolutePage = MyPage
HowManyRecs = 0
HowManyFields = rs.Fields.Count -1

Do While Not rs.EOF AND HowManyRecs < rs.PageSize
Counter = Counter + 1
%>
<tr>
 <td width="255">
<a href="forum.asp?page=read&IID=<%=rs("IID")%>"><%=rs("rubrik")%></a>
  </td>
  <td width="235">
<%=rs("av")%>
  </td>
  <td width="150">
<%=rs("datum")%>
  </td>
  <td>
<%=rs("antalsvar")%>
  </td>
 </tr>
<%
rs.MoveNext
HowManyRecs = HowManyRecs + 1
Response.Write "<!--			##### Nästa #####			-->"
Loop
rs.Close
Set rs = Nothing
%>
</table>
<center>
<%
If MaxCount <> 0 Then
Response.Write "Du är på sida " & mypage & " av " & maxcount & ".<br>"
pad = "0"
for counter = 1 to maxcount
If counter >= 10 then
pad = ""
End If
ref = "  <a href=forum.asp?nextpage=" & counter & "&pagesize=" & mypagesize & ">" & pad & counter & "</a>  "
Response.Write ref & ""
If Counter mod 10 = 0 Then
Response.Write "<br>"
End If
Next
End If
End If
%>
</center>

<hr class="gron" noshade size="1">

<center><strong>Skriv nytt inlägg</strong></center>
<form name="form" method="post" action="forum.asp?page=infoga" onsubmit="return kollaform()">
<table align="center" cellpadding="2">
 <tr>
  <td>
Ditt namn:
  </td>
  <td>
<input type="text" name="av" maxlength="50">
  </td>
 </tr>
 <tr>
  <td>
Din email:
  </td>
  <td>
<input type="text" name="email" maxlength="50">
  </td>
 </tr>
 <tr>
  <td>
Rubrik:
  </td>
  <td>
<input type="text" name="rubrik" maxlength="50">
  </td>
 </tr>
 <tr>
  <td valign="top">
Inlägg:
  </td>
  <td>
<textarea name="inlagg" rows="12" cols="40"></textarea>
  </td>
 </tr>
</table>
<input type="hidden" name="svar" value="False">
<input type="hidden" name="svartill" value="0">
<input type="hidden" name="antalsvar" value="0">
<center>
<input type="submit" value="  Skicka!  ">
   
<input type="reset" value="  Sudda  ">
</center>
</form>

<% ElseIf Request.QueryString("page") = "infoga" Then
If Request.Form("svar") = True Then
SQL1 = "UPDATE data SET antalsvar = antalsvar +1 WHERE IID = " & Request.Form("svartill") & ""
Connection.Exeucte(SQL1)
End If
rubrik = Trim(Request.Form("rubrik"))
inlagg = Trim(Request.Form("inlagg"))
av = Trim(Request.Form("av"))
email = Trim(Request.Form("email"))
datum = now()
svar = Request.Form("svar")
antalsvar = Request.Form("antalsvar")
svartill = Request.Form("svartill")
SQL2 = "INSERT INTO data (rubrik, inlagg, av, email, datum, svar, antalsvar, svartill) VALUES ('" & rubrik & "','" & inlagg & "','" & av & "','" & email & "','" & datum & "','" & svar & "'," & antalsvar & "," & svartill & ")"
Connection.Execute(SQL2) /// RAD 188!!![/red]
Response.Redirect"forum.asp"
%>

<% Else
Response.Redirect"forum.asp"
End If %>

  </td>
 </tr>
</table>

</body>
</html>

<%
Connection.Close
Set Connection = Nothing
%>

Eftersom det blir fel när servern ska "executa" så är det säkerligen problem med INSERT satsen på raden över...

Tacksam för svar!

/Mika3l

PS.Ursäkta svärordet :p .DS

------------------
Laddar... ;-)

[Redigerat av Mika3l den 22 dec 2001]

aleborgMedlem sedan jan. 20013 341 inlägg
#2

Vilken databas?
Om du använder access så har jag för mig att du inte ska ha fnuttar runt datum om det är ett datum fält! MySql ska du däremot ha det på!

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

icaaqMedlem sedan okt. 20005 273 inlägg
#3
SQL2 = "INSERT INTO data (rubrik, inlagg, av, email, [datum], svar, antalsvar, svartill) VALUES ('" & rubrik & "','" & inlagg & "','" & av & "','" & email & "',#" & datum & "#,'" & svar & "'," & antalsvar & "," & svartill & ")"
Connection.Execute(SQL2),,128 ' /// RAD 188!!!

Jag gjorde så att jag klammrade datum för att jag tror det är ett namnskyddat ord i access, sen gjorde jag även som aleborg sa att jag hade in datumet inom brädgårdar(#)... hoppas det hjälper :)

/Red. Jag la även till ,,128 som gör så att det inte produceras något recordset av Execute kommandot.

------------------
kolung.....det tål att tänkas på!

[Redigerat av icaaq den 22 dec 2001]

aleborgMedlem sedan jan. 20013 341 inlägg
#4

är datum ett reserverat ord? Trodde att det var Date som var reserverat, har M$ börjat ha svenska även i programeringen???

------------------
Data-Doktorn
Min egen musik!
Mitt coverband

icaaqMedlem sedan okt. 20005 273 inlägg
#5

http://cgi.webforum.nu/wf/Forum11/HTML/004742.html

jag vet inte om det stämmer men det kan ju vara det som är felet....bäst att ta det säkra...

------------------
kolung.....det tål att tänkas på!

Mika3lMedlem sedan nov. 20018 492 inlägg
#6

Hmmm...
Det fungerade inte med din kod icaaq :(
Får samma felmeddelande igen...
Jag använder en Accessdatabas(som du kan se på databaskopplingen).

/Mika3l

------------------
Laddar... ;-)

icaaqMedlem sedan okt. 20005 273 inlägg
#7

om du skriver:

SQL2 = "INSERT INTO data (rubrik, inlagg, av, email, [datum], svar, antalsvar, svartill) VALUES ('" & rubrik & "','" & inlagg & "','" & av & "','" & email & "',#" & datum & "#,'" & svar & "'," & antalsvar & "," & svartill & ")"
Response.Write SQL2
Response.End
Connection.Execute(SQL2),,128 ' /// RAD 188!!!

Vad får du då ?

------------------
kolung.....det tål att tänkas på!

icaaqMedlem sedan okt. 20005 273 inlägg
#8
SQL2 = "INSERT INTO data(rubrik,"&_
" inlagg,"&_
" av,"&_
" email,"&_
" [datum],"&_
" svar,"&_
" antalsvar,"&_
" svartill)"&_
" VALUES('" & rubrik & "',"&_
" '" & inlagg & "',"&_
" '" & av & "',"&_
" '" & email & "',"&_
" #" & datum & "#,"&_
" '" & svar & "',"&_
" " & antalsvar & ","&_
" '" & svartill & "')"
Connection.Execute(SQL2),,128 ' /// RAD 188!!!

Om inte denna fungerar så får du skriva vad för fält typer alla fält har...

------------------
kolung.....det tål att tänkas på!

[Redigerat av icaaq den 23 dec 2001]

Mika3lMedlem sedan nov. 20018 492 inlägg
#9

Koden fungerade inte, fick samma felmeddelande :(

forum.mdb

IID | AutoNumber(Primary Key)
rubrik | text
inlagg | PM/Memo
av | text
email | text
datum | Date/Time
svar | Yes/No
antalsvar | Number
svartill | Number

Så ser databasen ut.
Kan det vara något med email måntro...?

/Mika3l

------------------
Laddar... ;-)

@ndersMedlem sedan juni 200032 969 inlägg
#10

I Access:
Datumvärden omges med brädgård, så långt allt ok.
Text/PM/Memo-värden skall du omge med apostrofer. Det har du gjort.
Tal skall inte omges av någonting. Varför har du apostrofer runt Svartill? Det är ett talfält, och skall inte ha apostrofer.

Sedan funderar jag över ditt Yes/No fält. Hur ser värdet du vill stoppa in där ut?

Jag tror att den förväntar sig antingen True eller False, utan apostrofer runt värdet.

Mvh,

------------------
"Jag är en pojkspoling! Jag är 25 år gammal!"

Mika3lMedlem sedan nov. 20018 492 inlägg
#11

Japp, jag ska ha True samt False i svar fältet.
Jag får ta bort lite apostrofer och kolla om det fungerar!

/Mika3l

------------------
Laddar... ;-)

Mika3lMedlem sedan nov. 20018 492 inlägg
#12

Nej, det vill inte fungera nu heller x(
Jag får felmeddelandet Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket '2001-12-25 21:56:32'.
forum.asp, line 188

forum.asp
-----------
[kod]
rubrik = Trim(Request.Form("rubrik"))
inlagg = Trim(Request.Form("inlagg"))
av = Trim(Request.Form("av"))
email = Trim(Request.Form("email"))
datum = now()
svar = Request.Form("svar")
antalsvar = Request.Form("antalsvar")
svartill = Request.Form("svartill")
SQL2 = "INSERT INTO data(rubrik, inlagg, av, email, datum, svar, antalsvar, svartill) VALUES ('" & rubrik & "','" & inlagg & "','" & av & "','" & email & "', " & datum & ", '" & svar & "', " & antalsvar & ", " & svartill & ")"
Connection.Execute(SQL2) '///RAD 188!
Response.Redirect"forum.asp"

Vad är det för fel nu då?!

Förresten, God jul och gott nytt år allesammans! :e

/Mika3l

------------------
Laddar... ;-)

@ndersMedlem sedan juni 200032 969 inlägg
#13

Vad är fältet datum av för datatyp? Om det är typen datum skall du ha brädgårdar runt värdet:

SQL2 = "INSERT INTO data(rubrik, inlagg, av, email, datum, svar, antalsvar, svartill) VALUES ('" & rubrik & "','" & inlagg & "','" & av & "','" & email & "', #" & datum & "#, '" & svar & "', " & antalsvar & ", " & svartill & ")"

Mvh,

------------------
"Jag är en pojkspoling! Jag är 25 år gammal!"

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)