webForumDet fria alternativet
Logga in / Bli medlem

missing operator (syntax error)

ASP

21 svar · 425 visningar · startad av timedia

Medlem sedan maj 2001420 inlägg
Trådstart#1

Kan inte förstå detta :( Får följande fel:
Microsoft JET Database Engine error '80040e14'
Syntax error (missing operator) in query expression 'id ='.
/adm/adm_ed_studieforbund.asp, line 48

open_database "D:\fysisk sökväg",false 
if request("organisation") <> "" then
	

	if request("alt") <> "" then
	
	Set Upload = Server.CreateObject("Persits.Upload")
Upload.Save "D:\WWW\fysisk sökväg"

Set File = Upload.Files("THEFILE")
	If Not File Is Nothing Then
	Filen = File.ExtractFileName
    End If
	
	organisation = Upload.Form("organisation")
	adress = Upload.Form("adress")
	hemsida = Upload.Form("hemsida")
	tillhor = Upload.Form("tillhör")
	postadress = Upload.Form("postadress")
	telefon = Upload.Form("telefon")
	fax = Upload.Form("fax")
	epost = Upload.Form("epost")
	beskrivning = Upload.Form("beskrivning")
	upid = Upload.Form("alt")
	
	 
	
	strSQL = "UPDATE medlemmar SET organisation = '" & organisation & "', adress = '" & adress & "', hemsida = '" & hemsida & "', tillhör = '"&tillhor&"', postadress = '"&postadress&"', telefon = '"&telefon&"', fax = '"&fax&"', epost = '"&epost&"', logotyp = '"&filen&"', beskrivning = '"&beskrivning&"'  "
	strSQL = strSQL & " WHERE id = " & request("alt")
	Conn.Execute strSQL 
	end if
end if 

dim id
id = request("alt")

		Set myRecSet = Server.CreateObject("ADODB.Recordset") 
		[B]Set myRecSet = Conn.Execute("SELECT * FROM medlemmar WHERE id = "&id&" " )[/B]%>
Medlem sedan dec. 200012 464 inlägg
#2

request("alt") innehåller en tom sträng.

Medlem sedan juni 200032 967 inlägg
#3

Jag gissar på att request("alt") är tom. Det får den inte vara.

Medlem sedan maj 2001420 inlägg
#4

Denna ligger i mitt formulär och den har ett värde. T.ex. 2
<input type="text" name="alt" value="<%= id %>">

Medlem sedan juni 200032 967 inlägg
#5

Skriv ut SQL-frågan istället för att exekvera den, då kommer du antagligen se att du saknar det värdet.

Medlem sedan maj 2001420 inlägg
#6

Nu säger den:
Item cannot be found in the collection corresponding to the requested name or ordinal.
/adm/adm_ed_studieforbund.asp, line 62

Här är den linjen:
<input type="text" size="25" name="organisation" value="<%= Konvtext(myRecSet("organisation")) %>">

..och den skriver först ut: SELECT * FROM medlemmar WHERE id = 2
..och jag vet att organisation har ett värde och inte är ett skrivfel.

Medlem sedan maj 2001420 inlägg
#7

Detta funkar:

open_database "D:\fysisk-sökväg.mdb",false 
if request("organisation") <> "" then
	

	if request("alt") <> "" then
	dim organisation, adress, hemsida
	organisation = Hamtafrm("organisation")
	adress = Hamtafrm("adress")
	hemsida = Hamtafrm("hemsida")
	tillhor = Hamtafrm("tillhör")
	postadress = Hamtafrm("postadress")
	telefon = Hamtafrm("telefon")
	fax = Hamtafrm("fax")
	epost = Hamtafrm("epost")
	beskrivning = Hamtafrm("beskrivning")
	
	 
	
	strSQL = "UPDATE medlemmar SET organisation = '" & organisation & "', adress = '" & adress & "', hemsida = '" & hemsida & "', tillhör = '"&tillhor&"', postadress = '"&postadress&"', telefon = '"&telefon&"', fax = '"&fax&"', epost = '"&epost&"', beskrivning = '"&beskrivning&"'  "
	strSQL = strSQL & " WHERE id = " & request("alt")
	Conn.Execute strSQL 
	end if
end if 
dim id

id = request("alt")

		Set myRecSet = Server.CreateObject("ADODB.Recordset") 
		Set myRecSet = Conn.Execute("SELECT * FROM medlemmar WHERE id = "&id&" " )

..men när jag försöker lägga till en bilduppladdningskomponent uppstår problemet. Vad har jag gjort fel i nedanstående kod?

open_database "D:\fysisk-sökväg.mdb",false 
if request("organisation") <> "" then
	

	if request("alt") <> "" then
	
	Set Upload = Server.CreateObject("Persits.Upload")
Upload.Save "D:\fysisk-sökväg"

Set File = Upload.Files("THEFILE")
	If Not File Is Nothing Then
	Filen = File.ExtractFileName
    End If
	
	dim organisation, adress, hemsida
	organisation = Upload.Form("organisation")
	adress = Upload.Form("adress")
	hemsida = Upload.Form("hemsida")
	tillhor = Upload.Form("tillhör")
	postadress = Upload.Form("postadress")
	telefon = Upload.Form("telefon")
	fax = Upload.Form("fax")
	epost = Upload.Form("epost")
	beskrivning = Upload.Form("beskrivning")
	upid = Upload.Form("alt")
	
	 
	
	strSQL = "UPDATE medlemmar SET organisation = '" & organisation & "', adress = '" & adress & "', hemsida = '" & hemsida & "', tillhör = '"&tillhor&"', postadress = '"&postadress&"', telefon = '"&telefon&"', fax = '"&fax&"', epost = '"&epost&"', logotyp = '"&filen&"', beskrivning = '"&beskrivning&"'  "
	strSQL = strSQL & " WHERE id = " & request("alt")
	Conn.Execute strSQL 
	end if
end if 

dim id
id = request("alt")

		Set myRecSet = Server.CreateObject("ADODB.Recordset") 
		Set myRecSet = Conn.Execute("SELECT * FROM medlemmar WHERE id = "&id&" " )
Medlem sedan nov. 20017 144 inlägg
#8

Det är inte så att du stänger recset:et före rad 62 då?

Medlem sedan maj 2001420 inlägg
#9

Nej, myRecSet stängs på sista rad i filen...

Medlem sedan juni 200032 967 inlägg
#10

Du kan inte hämta med request från ett formulär (om du inte använder GET), samtidigt som du laddar upp en fil. Använd uppladdningskomponentens metoder för detta. (Upload.Form())

Medlem sedan maj 2001420 inlägg
#11

:q
Fattar inget nu. Jag får felet Syntax error (missing operator) in query expression 'id ='. på sista raden i denna kod

pid = Upload.Form("alt")
	 
	
	strSQL = "UPDATE medlemmar SET organisation = '" & organisation & "', adress = '" & adress & "', hemsida = '" & hemsida & "', tillhör = '"&tillhor&"', postadress = '"&postadress&"', telefon = '"&telefon&"', fax = '"&fax&"', epost = '"&epost&"', logotyp = '"&filen&"', beskrivning = '"&beskrivning&"'  "
	strSQL = strSQL & " WHERE id ="&pid
	Conn.Execute strSQL 
	end if
end if 

dim id
id = request("alt")

		Set myRecSet = Server.CreateObject("ADODB.Recordset") 
		Set myRecSet = Conn.Execute("SELECT * FROM medlemmar WHERE id = "&id&" " )
Medlem sedan nov. 20017 144 inlägg
#12
Set myRecSet = Server.CreateObject("ADODB.Recordset") 
		Set myRecSet = Conn.Execute("SELECT * FROM medlemmar WHERE id = "& id)

Hur ser det ut om du skriver ut frågan?

Medlem sedan maj 2001420 inlägg
#13

Har tyvärr redan provat den varianten också. När jag skriver ut så har id ett nummervärde som överensstämmer med det jag vill åt i db. **River hår (mycket tunnhårig nu) och fattar ingenting :x **

Medlem sedan juni 200032 967 inlägg
#14

timedia skrev:

:q
Fattar inget nu. Jag får felet Syntax error (missing operator) in query expression 'id ='. på sista raden i denna kod

Du hämtar ju fortfarande med request?

Medlem sedan maj 2001420 inlägg
#15

Jo, använder fortfarande request, men uppladdningskomponenten har väl gjord sitt och avslutats innan jag har kommit så långt? Vad är det jag inte fattar?

Medlem sedan nov. 20017 144 inlägg
#16

Som @nders skrev. Du kan inte på något sätt använda vanliga request.form när du blandar in komponenten. Varje komponent brukar ha ett sätt att "lösa/kombinera" detta. Du får titta på deras hemsida.

Medlem sedan nov. 20017 144 inlägg
#17

Verkar som att du får köra med:
id= Upload.Form("id")
http://www.aspupload.com/manual_db.html
http://support.persits.com/upload/demo2.asp

Medlem sedan juni 200032 967 inlägg
#18

Du har ju skapad variabeln pid på korrekt sätt några rader över i koden. Varför kan du inte använda den variabeln igen?

Medlem sedan maj 2001420 inlägg
#19

Har försökt med PID också - ger precis samma fel.

Medlem sedan juni 200032 967 inlägg
#20

Ligger skapandet av variabeln pid inne i en if-sats som inte körs? Lyft ut den raden och lägg den överst i dokumentet.

red: tillägg: efter det att du instansierat upload-objektet då förstås.

Mvh

258 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)