webForumDet fria alternativet

Syntax error (missing operator) in query expression

ASP

7 svar · 1 031 visningar · startad av Schkauffel

Medlem sedan apr. 200434 inlägg
Frågan#1

Tjo, jag här igen och stör..

Jag vill ha en sorts tabell då som man kan lista upp alla nyheter man har skrivit och sedan kunna ta bort dom med en del knapp eller något sånt. ok! koden då där allt är fel antagligen..

först: error text

Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression 'News ='.

/schkauffel/brodraskapet/deletenes.asp, line 11

<% 
Set myConn=Server.Createobject("ADODB.Connection")
myConn.Provider="Microsoft.Jet.OLEDB.4.0"
myConn.Open Server.mapPath("db1.mdb")

sqlDelete="DELETE * FROM tabell1 WHERE News ="& News & ";"
	
myconn.execute(sqlDelete) <--- det är rad 11

%>

huvud koden:

  <div class="main" style="font-family:verdana; font-size:9px; color:#000000;">
<%
do until rsText.EOF

	Datum = rsText("Datum")
	News = rsText("News")
		
	
%>
<table width="358" border="0" align="left">
  <tr>
    <th width="108" scope="col"><div align="left">News</div></th>
    <th width="49" scope="col"><div align="left">Datum</div></th>
  </tr>

<%
	
	rsText.MoveNext		'Nästa post

Loop

%>

 
<tr>
    <td scope="row"><div align="left"><%=news%></div></td>
    <td><div align="left"><%=datum%></div></td>
  </tr>

	</div>
Medlem sedan juni 200032 967 inlägg
#2

Variabeln News har inget värde när du skapar din SQL-fråga. Sätter du verkligen den ovanför i koden?

Medlem sedan maj 2000252 inlägg
#3

jag är ju ingen klippa men prova;

sqlDelete="DELETE * FROM tabell1 WHERE News = '" & News & " ' "
Medlem sedan apr. 200434 inlägg
#4

jag kan klistra in hela koden så kan du få se, jag är otroligt nybörjare på sånt här...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<% 
Set myConn=Server.Createobject("ADODB.Connection")
myConn.Provider="Microsoft.Jet.OLEDB.4.0"
myConn.Open Server.mapPath("db1.mdb")

sqlDelete="DELETE * FROM tabell1 WHERE News ="& News & ";"
	
myconn.execute(sqlDelete)

%>

<html>
<head>
<title>brödraskapet</title>
<style type="text/css">
html,body {margin:0px; background-color:#ABB4BD;}
a:link{color:#7E8E9B; text-decoration:none;}
a:visited{color:#7E8E9B; text-decoration:none;}
a:active{color:#7E8E9B; text-decoration:none;}
a:hover{color:#7E8E9B; text-decoration:none;}

.storruta {position: absolute; width:784px; height: 582px; background-image:url(background.gif);}
.links {width:135px; height:154px; position:absolute; overflow:auto; top:210px; left:7px; padding:1px;}
.main {width:469px; height:225px; position:absolute; overflow:auto; top:195px; left:189px; padding:1px;}
.sponsor {width:89px; height:170px; position:absolute; overflow:auto; top:195px; left:682px; padding:1px;}
.style1 {color: #ABB4BD}
</style>

</head>

<div class="storruta">

	<div class="links" style="font-family:arial; font-size:9px; color:#7E8E9B;">
<center><strong>	
       	      <a href="index.asp">News</a><br/>
	      <a href="members.html">Members</a><br/>
	      <a href="matches4.asp">Matches</a><br/>
	      <a href="contact.html">Contact</a><br/>
	      <a href="login.asp">Login</a><br/>
<br/>

</center>

    </div>
	
  <div class="main" style="font-family:verdana; font-size:9px; color:#000000;">
<%
do until rsText.EOF

	Datum = rsText("Datum")
	News = rsText("News")
		
	
%>
<table width="358" border="0" align="left">
  <tr>
    <th width="108" scope="col"><div align="left">News</div></th>
    <th width="49" scope="col"><div align="left">Datum</div></th>
  </tr>

<%
	
	rsText.MoveNext		'Nästa post

Loop

%>

 
<tr>
    <td scope="row"><div align="left"><%=news%></div></td>
    <td><div align="left"><%=datum%></div></td>
  </tr>

	</div>

</div>
</body>
</html>

:$

Medlem sedan mars 20032 667 inlägg
#5

@nders har förmodligen redan drämmt till med rätt lösning, men en vägledning för kommande problem är att skriva ut sql-strängen vid felsökning:

<% 
Set myConn=Server.Createobject("ADODB.Connection")
myConn.Provider="Microsoft.Jet.OLEDB.4.0"
myConn.Open Server.mapPath("db1.mdb")

sqlDelete="DELETE * FROM tabell1 WHERE News ="& News & ";"
	
response.write "SQL-sträng: " & sqlDelete

'myconn.execute(sqlDelete) 

%>
Medlem sedan apr. 200434 inlägg
#6

hmm, skulle nog säkert fungera men jag kanske gör något fel...
typ hela sidan flyttade sig till höger och texten:

SQL-sträng: DELETE * FROM tabell1 WHERE News =;

var längst upp till vänster.

sedan på huvudsidan kom error.

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/schkauffel/brodraskapet/deletenes.asp, line 57

<%
do until rsText.EOF
----detta är rad 57----
	Datum = rsText("Datum")
	News = rsText("News")
		
	
%>
Medlem sedan dec. 19998 577 inlägg
#7

Du ger (som @nders säger) inte variabeln News något värde innan du kör SQL-satsen, därav felet.

Medlem sedan apr. 20031 660 inlägg
#8

HEJ!

Schkauffel skrev:

hmm, skulle nog säkert fungera men jag kanske gör något fel...
typ hela sidan flyttade sig till höger och texten:

SQL-sträng: DELETE * FROM tabell1 WHERE News =;

var längst upp till vänster.

Anledningen till att texten skrivs ut och att sidan ser fel ut är för att du felsöker.

När något inte fungerar som man vill, skriver man ut de variabler man använder (SQL-sträng i detta fall), och då visar det sig alltid att något inte är som man tänkt sig, fast man tycker man gjort rätt. ;)

I texten läser du, som @nders redan påpekat, att news är lika med inget, och då är det svårt för servern att radera något i databasen, då delete-syntaxen kräver ett villkor i where.

271 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)