webForumDet fria alternativet

missing operator (syntax error)

21 svar · 425 visningar · startad av timedia

timediaMedlem sedan maj 2001420 inlägg
#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]%>
LarsGMedlem sedan dec. 200012 464 inlägg
#2

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

@ndersMedlem sedan juni 200032 969 inlägg
#3

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

timediaMedlem 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 %>">

@ndersMedlem sedan juni 200032 969 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.

timediaMedlem 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.

timediaMedlem 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&" " )
Jesper TMedlem sedan nov. 20017 144 inlägg
#8

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

timediaMedlem sedan maj 2001420 inlägg
#9

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

@ndersMedlem sedan juni 200032 969 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())

timediaMedlem 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&" " )
Jesper TMedlem 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?

timediaMedlem 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 **

@ndersMedlem sedan juni 200032 969 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?

timediaMedlem 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?

Jesper TMedlem 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.

Jesper TMedlem 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

@ndersMedlem sedan juni 200032 969 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?

timediaMedlem sedan maj 2001420 inlägg
#19

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

@ndersMedlem sedan juni 200032 969 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

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