webForumDet fria alternativet

Fel Mess?

ASP

15 svar · 358 visningar · startad av tomas21

Medlem sedan feb. 2003130 inlägg
Frågan#1

Hej igen!

Få följande fel mess:

----------------------------------------------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1

upload.asp, line 27
----------------------------------------------------------------------------------

I följande kod:

	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &_
        Server.MapPath("db/db1.mdb")
	Set objRS2 = Server.CreateObject("ADODB.Recordset")

	Addera = "Select * From " & Request.QueryString("tabell") &_
        " Where Refid = '" & Request.QueryString("id")'
	[B]objRS2.Open Addera, Connect, 3, 3 <--RAD 27[/B]

Har läst i tidigare inlägg att det har med SQL satsen att göra. Att man ska ha fnuttar när det är text osv.

Angående SQL satsen så är tabellen som ska markeras en Request.QueryString. Det jag gör är att skicka med tabellens namn i form av en QueryString. Refid är av typen tal.

Det sjuka med denna kod är att den fungerade på min bärbara med IIS men inte i servern som sidan ska ligga på.

Medlem sedan nov. 20017 144 inlägg
#2

1. Varför har du tabellnamnet i en querystring?
2. Är Refid av typen tal(a) eller är det en sträng(b)?

a)
Addera = "Select * From " & Request.QueryString("tabell") &_
        " Where Refid = " & Request.QueryString("id")
b)
Addera = "Select * From " & Request.QueryString("tabell") &_
        " Where Refid = '" & Request.QueryString("id") &"'"
Medlem sedan feb. 2003130 inlägg
#3

Jag har ju skrivit i inlägget att Refid är av typen tal iallafall i databasen. Jag vet inte om QueryStringen uppfattar allt som strängar. Varför jag har tabellens namn i en QueryString är pga att minimera koden samt att kunna använda den till andra projekt.

Men jag ska prova med dina förslag. Får se om de funkar.

Medlem sedan feb. 2003130 inlägg
#4

Jesper har provat båda men ingen fungerar. Den första är detsamma som jag angett i mitt första inlägg. Det andra alltså

[kod]
Addera = "Select * From " & Request.QueryString("tabell") & " Where Refid = '" &_
Request.QueryString("id") &"'"
[kod]

Ger följande felmedelande:

----------------------------------------------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

upload.asp, line 27
----------------------------------------------------------------------------------

Fattar inte vad som är felet!

Medlem sedan nov. 20017 144 inlägg
#5

Börja med att skriva ut SQL:en

Addera = "Select * From " & Request.QueryString("tabell") & " Where Refid = '" &_
Request.QueryString("id") &"'"
Response.write Addera
Response.end
Medlem sedan juni 200032 967 inlägg
#6
Addera = "Select * From " & Request.QueryString("tabell") & " Where Refid = " &_
Request.QueryString("id")

Då ID är ett talfält i tabellen ska du inte ha apostrofer runt fältvärdet.

Medlem sedan nov. 20017 144 inlägg
Medlem sedan feb. 2003130 inlägg
#8

Jesper jag får detta när jag använder koden:

Addera = "Select * From " & Request.QueryString("tabell") &_
        " Where Refid = '" & Request.QueryString("id") &"'"
Response.write Addera
Response.end

Uskrift i webbläsaren:

Select * From Sekion4 Where Refid = '169'

Alltså detta är inget fel mess utan bara en utskrift av Addera. Men jag får inte det att fungera fortfarande.

Medlem sedan dec. 20003 887 inlägg
#9

Som @nders skrev... inga apostrofer kring ett numeriskt värde.

Addera = "SELECT * FROM " & Request.QueryString("tabell") & " WHERE Refid = " & Request.QueryString("id")
Medlem sedan feb. 2003130 inlägg
#10

Skit skumt!

Igår när jag provade koden :


Addera = "Select * From " & Request.QueryString("tabell") &_
        " Where Refid = " & Request.QueryString("id")

Fick jag felet:
----------------------------------------------------------------------------
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1

upload.asp, line 27
----------------------------------------------------------------------------

Men nu när jag provar samma kod i servern så fungerar det. Verligen skumt.

I mitt första inlägg i denna tråd skrev SQL satsen med apostrofer att det gav samma mess. Men jag använde då av samma kod som i detta inlägg. Varför jag tog med fel kod var pga jag var förvirrad så sent som det var igår ;)

Vi får väl se hur länge min kod kommer att fungera. Förresten jag använder swebase webbhotell. Kan probleme ligga i deras server?

Medlem sedan dec. 20003 887 inlägg
#11

Too few parameters kan ha berott på att du inte hade något i id, som du plockar ur din querystring.

Medlem sedan nov. 20017 144 inlägg
#12

Idé kan även vara att byta ut din "Microsoft Access Driver" till "Microsoft Jet".

Medlem sedan juni 200032 967 inlägg
#13

Too few parameters - expected x betyder oftast att man har skrivit x objektnamn fel i sin fråga, dvs skrivit fältnamn som inte finns.

Medlem sedan feb. 2003130 inlägg
#14

Det måste vara nåt sånt.

Jag ha en fråga till. Koden som jag har är till för ett upload/delete script. När jag laddar upp filer tex bilder hamnar de i roten. Men hur gör jag om jag vill att de ska hamna i en mapp istället. Koden är:

	file=RecSet("Bild")

	Set fso = CreateObject("Scripting.FileSystemObject")
	Set fileObject = fso.GetFile(Server.MapPath("db/" & file))

Filens namn hämtas ur databasen och läggs i variabeln file. Mappen som filerna ska ligga i heter db. Säg att scriptet ligger i mappen test. Hur gör man om man ska ha filerna i root/test men koden fortfarande i mappen test.

Medlem sedan nov. 20017 144 inlägg
#15

Du borde kunna göra något liknande:

Server.MapPath("../db/root/test/" & file
Medlem sedan feb. 2003130 inlägg
#16

Tack Jesper funkar fint.

266 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)