webForumDet fria alternativet

WS´s redigerascript med ad krånglar

ASP

19 svar · 228 visningar · startad av costodia

Medlem sedan aug. 2000864 inlägg
Frågan#1

Jag trixar lite med idg webstudios redigera-script jag har en undrar och ett felmeddelande i sql-stringen som jag inte kan bli av med.

Felmeddelandet lyder:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14' 

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ID ='. 

/andreax/redigera/redigera2.asp, line 11

på rad elva finns detta:

RecSet.Open Uppdatera, Connect, adOpenStatic, adLockOptimistic

men jag misstänker det har något med sql-stringen att göra eftersom där står så här:

Uppdatera = "SELECT * FROM radannonser WHERE ID = " & Request.Form("ad") & " "

och jag förstår inte riktigt vad "ad" gör för något.

Jag har lagt in scriptet här: http://www.ebid.se/papperskorgen/lektion040.zip
'Under en begränsad period, eftersom det inte är helt etiskt rätt.
Mvh Martin Persson
E-post: martin@costodia.com
Klart grabben ska ha en egen mailinglista

[Redigerat av costodia den 29 dec 2001]

Medlem sedan feb. 2001390 inlägg
#2

kan du vara snäll och visa hela koden så blir det enkalre att se

------------------
En sak livet lärt mig är att idioterna oftast har rätt

Medlem sedan aug. 2000864 inlägg
#3

okej,

<html>

<!-- #include virtual="/databas/adovbs.inc" -->

<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\ hemligt \andreax.mdb" 

	Set RecSet = Server.CreateObject("ADODB.Recordset")
   Uppdatera = "SELECT * FROM radannonser WHERE ID = " & Request.Form("ad") & " "

   RecSet.Open Uppdatera, Connect, adOpenStatic, adLockOptimistic 

	RecSet("Datum") = Request.Form("datum")
	RecSet("Kategori") = Request.Form("kategori")
	RecSet("rubrik") = Request.Form("rubrik")
	RecSet("rubrik") = Request.Form("annonstext")
	RecSet("rubrik") = Request.Form("namn")
	RecSet("rubrik") = Request.Form("telefon")
	RecSet("rubrik") = Request.Form("epost")

	RecSet.Update
	RecSet.Close
	Connect.Close %>

   Sådär! Nu är databasen uppdaterad, kontrollera genom att klicka på länken nedan för att se att uppgifterna du nyss fyllt i 
   verkligen har uppdaterats.

   <p><a href="default.asp">Redigera annan post!</a>

</html>

där det står hemligt här står det något helt annat egentligen.

------------------
Mvh Martin Persson
E-post: webforum@costodia.com
Klart grabben ska ha en egen mailinglista

Medlem sedan feb. 2001390 inlägg
#4

prova med detta istället

Uppdatera = "SELECT * FROM adressbok WHERE ID = " & Request.Form("ad")

och du undrade vad AD innehöll, den innehåler, adressid

------------------
En sak livet lärt mig är att idioterna oftast har rätt

Medlem sedan dec. 19998 577 inlägg
#5

Du har helt enkelt inte något värde i Request.Form("ad"). Antingen gör du en kontroll av att värdet finns innan du använder det, eller så skickar du alltid med ett värde, men till följd kan du få sånna felmeddelanden.

------------------
Mostly Harmless

Medlem sedan feb. 2001390 inlägg
#6

det där är ett väldigt krångligt system, det är bättre att går rakt med SQL istället för att blanda in Record Set

------------------
En sak livet lärt mig är att idioterna oftast har rätt

Medlem sedan feb. 2001390 inlägg
#7

vide: kan man inte få samma flemeddelande om man behandlar nummer som text också, har för mig det :?:

------------------
En sak livet lärt mig är att idioterna oftast har rätt

Medlem sedan feb. 20012 412 inlägg
#8

Nej, då brukar man få "michmatch in criteria", med stor risk för felstavning. :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

Medlem sedan aug. 2000864 inlägg
#9

webzonen:

Uppdatera = "SELECT * FROM adressbok WHERE ID = " & Request.Form("ad")

adressbok? min tabell heter ju radannonser.

men jag vill inte märka ord jag bara tyckte det var kontigt att det blev fel.

I alla fall om ad = adressID varför ska jag ha något som heter adress ID, det har jag inte i min databas.

------------------
Mvh Martin Persson
E-post: webforum@costodia.com
Klart grabben ska ha en egen mailinglista

Medlem sedan feb. 2001390 inlägg
#10

börja om och kör med ren SQL istället...

------------------
En sak livet lärt mig är att idioterna oftast har rätt

Medlem sedan aug. 2000864 inlägg
#11

okej, hur skulle det kunna se ut, finns det någon skola som tar upp just detta?

Mig veterligen så är det bara webstudio som tar upp det med att redigera data i en databas.

Mvh Martin - som gick och köpte en bok för 600 kronro (learn asp i 21 days) bara för att upptäcka att man var tvungen att kunna Visal basic för att kunna använda den.

[Redigerat av costodia den 29 dec 2001]

Medlem sedan feb. 2001390 inlägg
#12

Uppdatera ="UPDATE tabellnamn SET fält1 = 'värde1', fält2 = värde2 WHERE ID =" & Request.QueryString("ID")

eller Request.Form eller vad du vill ha det som

------------------
En sak livet lärt mig är att idioterna oftast har rätt

Medlem sedan feb. 20012 412 inlägg
#13

Kolla in www.webeye.nu eller under relaterade länkar längst upp här på wF.

Visst webstudio har sina ljusa stunder men för det mesta så suuger deras sätt att koda. Gör inte som jag gjorde, lärde mig deras sätt att koda för att sedan lära om på ett mer korrekt sätt.

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

Medlem sedan aug. 2000864 inlägg
#14

okej, var ju synd att inte webstudio är bra, Carl-Johan Nordquist är ju faktist väldigt pedagogisk, vilket jag gillar.

Vilken skola skulle du rekomendera?

------------------
Mvh Martin Persson
E-post: webforum@costodia.com
Klart grabben ska ha en egen mailinglista

[Redigerat av costodia den 29 dec 2001]

Medlem sedan feb. 2001390 inlägg
#15

kolla in web-avis asp guide, visserligen samma som webeye, men den bästa på svenska du kan finna

------------------
En sak livet lärt mig är att idioterna oftast har rätt

Medlem sedan aug. 2000864 inlägg
#16

webzonen:
när du skriver:
fält1 = 'värde1', fält2 = värde2
menar du att jag ska skriva in samtliga datbasfält i sql-stringen eller räcker det med de två första.

Sedan funderar jag också lite på vad du menar med: värde1

------------------
Mvh Martin Persson
E-post: webforum@costodia.com
Klart grabben ska ha en egen mailinglista

Medlem sedan feb. 2001390 inlägg
#17

du kan göra så här typ:
om du hämtar till ex kategorie blir det så här:

Kategorie = Request.Form("kategorie")
Uppdatera = "UPDATE radannonser SET Kategorie = '" & Kategorie & "' WHERE ID =" Request.Form("id")

du måste skriva in samtliga fält enligt det som angivit ovanför.

------------------
En sak livet lärt mig är att idioterna oftast har rätt

[Redigerat av webzonen den 29 dec 2001]

[Redigerat av webzonen den 29 dec 2001]

Medlem sedan aug. 2000864 inlägg
#18

men nu säger den såhär:

Microsoft VBScript compilation error '800a0401' 

Expected end of statement 

/andreax/redigera/redigera2.asp, line 10 

Uppdatera = "UPDATE radannonser SET kategori = '" & kategori & "' WHERE ID =" Request.Form("id")
------------------------------------------------------------------------------^

------------------
Mvh Martin Persson
E-post: webforum@costodia.com
Klart grabben ska ha en egen mailinglista

Medlem sedan maj 20002 597 inlägg
#19

hmmm.. har jag gått i en fälla? sitter å går igenom WS Asp guide... hmmm. Jag märkte att vissa koder inte funkade riktigt.. Ska jag lägga ner projektet där? hmmm..

------------------
Regler är till för att ändras, inte för att följas!
I wouldn't if I couldn't

Medlem sedan feb. 20012 412 inlägg
#20

hmmm.. har jag gått i en fälla? sitter å går igenom WS Asp guide... hmmm. Jag märkte att vissa koder inte funkade riktigt.. Ska jag lägga ner projektet där? hmmm..

nej, fram till de börjar gå in på databaser går de igenom grunderna på ett enkelt sätt; tex if-satser, loopar mm.

mvh Jörgen :)

------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.

266 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)