/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Sletning af data. Mærkelig fejl.
Fra : David Trasbo


Dato : 18-07-05 15:27

Når jeg vil slette noget data i min database, får jeg denne fejl:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var
ventet 1.
/site/admin/menu/delete.asp, line 15

Jeg kan desværre ikke udskrive SQL sætningen da fejlen er så "alvorlig" at
den ikke viser andet.

Min SQL sætning (med ASP) ser sådan her ud:

strSQL = "Delete from tblMenu where Name = " &_
Request.Querystring("name") & ""

Men jeg alligevel skyde på at den, uden ASP vil se sådan her ud:

strSQL = "Delete from tblMenu where Name = "Forsiden""

Fejlen kommer på denne linje:

Conn.Execute(strSQL)

Jeg håber der er nogle der kan lure fejlen, og hvis det er nødvendigt vil
jeg gerne oplyse strukturen i tblMenu.

--
David Trasbo. Vær en god Usenet bruger. Læs <http://usenet.dk/netikette>.
Tjek <http://indexpage.dk>

 
 
Dj Uncas (18-07-2005)
Kommentar
Fra : Dj Uncas


Dato : 18-07-05 15:44


"David Trasbo" <datra@mail.dk> skrev i en meddelelse
newsst343fv1y3w3tq@www...
> Når jeg vil slette noget data i min database, får jeg denne fejl:
>
> Fejltype:
> Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
> [Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var
> ventet 1.
> /site/admin/menu/delete.asp, line 15
>
> Jeg kan desværre ikke udskrive SQL sætningen da fejlen er så "alvorlig" at
> den ikke viser andet.
>
> Min SQL sætning (med ASP) ser sådan her ud:
>
> strSQL = "Delete from tblMenu where Name = " &_
> Request.Querystring("name") & ""
>
> Men jeg alligevel skyde på at den, uden ASP vil se sådan her ud:
>
> strSQL = "Delete from tblMenu where Name = "Forsiden""

Det er fordi serveren læser det som om sql sætningen stopper efter det andet
", altså ved Name = " - og resten er så bare noget ekstra tekst (Forsiden"")

Prøv denne her:
strSQL = "DELET FROM tblMenu WHERE Name = '" & Request.QueryString("name") &
"'"
(Der er indsat et par ')



Christian Kragh (18-07-2005)
Kommentar
Fra : Christian Kragh


Dato : 18-07-05 15:45

> Men jeg alligevel skyde på at den, uden ASP vil se sådan her ud:
>
> strSQL = "Delete from tblMenu where Name = "Forsiden""

Hej.

Så har du selv givet fejlen her...

Den skal se sådan her ud:

strSQL = "Delete from tblMenu where Name = 'Forsiden'"

Bemærk at det er ping (') som omklamre feltets indhold.

Christian

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

David Trasbo (19-07-2005)
Kommentar
Fra : David Trasbo


Dato : 19-07-05 11:09


Nu er det første gang jeg giver mig i kast med opdatering af data. Jeg synes
det er svært.

Jeg får fejlen:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i
UPDATE-sætningen.

I følge IIS systemet er der en syntaksfejl i følgende sætning (med ASP):

strSQL = "Update tblMenu set Name= '" &_
Request.Form("Name") & "', URL= '" & Request.Form("URL") & "', Where Name =
'" &_
Request.Querystring("name") & "'"

Jeg kan ikke vise jer sætningen uden ASP, men jeg vil alligevel gætte at den
ser sådan her ud:

strSQL = "Update tblMenu set Name= 'Forsiden', URL= '/default.asp', Where
Name = 'Forsiden'"

På forhånd tak, fra en nybegynder...

--
David Trasbo.
http://indexpage.dk





Jesper Stocholm (19-07-2005)
Kommentar
Fra : Jesper Stocholm


Dato : 19-07-05 11:31

"David Trasbo" <datra@mail.dk> wrote in
news:42dcd153$0$18644$14726298@news.sunsite.dk:

>
> Nu er det første gang jeg giver mig i kast med opdatering af data. Jeg
> synes det er svært.
>
> Jeg får fejlen:
>
> Fejltype:
> Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
> [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i
> UPDATE-sætningen.
>
> I følge IIS systemet er der en syntaksfejl i følgende sætning (med
> ASP):
>
> strSQL = "Update tblMenu set Name= '" &_
> Request.Form("Name") & "', URL= '" & Request.Form("URL") & "', Where
> Name = '" &_
> Request.Querystring("name") & "'"
>
> Jeg kan ikke vise jer sætningen uden ASP

Hvorfor ikke? Har du kigget på http://asp-faq.dk/article/?id=41 ?

>, men jeg vil alligevel gætte
> at den ser sådan her ud:
>
> strSQL = "Update tblMenu set Name= 'Forsiden', URL= '/default.asp',
> Where Name = 'Forsiden'"

---------------------------------------------------------------------^

Hvis du gætter rigtigt, så er der i hvert fald et komma for meget.

Derudover er 'Name' et reserveret ord i Access, så det kan give nogle
problemer for dig. Du kan komme udenom dette ved at skrive Name i som
[Name]. Se [0] for mere om disse ord.

I øvrigt er ovenstående umiddelbart meget farlig kode at lægge ud på din
side. Den er følsom overfor "Sql injection", der giver mulighed for at
rette i (alle) data på din server. Se evt [1] for en forklaring på det.
Husk altid at validere data, der sendes til din side inden du smider dem
ned i basen.

[0] http://support.microsoft.com/kb/q286335/
[1] http://tsn.dk/articles.php?a=38

--
Jesper Stocholm
http://stocholm.dk

Japo stole sælges - http://japoarmstole.stocholm.dk

David Trasbo (19-07-2005)
Kommentar
Fra : David Trasbo


Dato : 19-07-05 11:44


"Jesper Stocholm" <j@stocholm.invalid> skrev i en meddelelse
news:Xns96987F653B46Estocholm@130.225.247.90...
> "David Trasbo" <datra@mail.dk> wrote in
> news:42dcd153$0$18644$14726298@news.sunsite.dk:
>
> >
> > Nu er det første gang jeg giver mig i kast med opdatering af data. Jeg
> > synes det er svært.
> >
> > Jeg får fejlen:
> >
> > Fejltype:
> > Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
> > [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i
> > UPDATE-sætningen.
> >
> > I følge IIS systemet er der en syntaksfejl i følgende sætning (med
> > ASP):
> >
> > strSQL = "Update tblMenu set Name= '" &_
> > Request.Form("Name") & "', URL= '" & Request.Form("URL") & "', Where
> > Name = '" &_
> > Request.Querystring("name") & "'"
> >
> > Jeg kan ikke vise jer sætningen uden ASP
>
> Hvorfor ikke? Har du kigget på http://asp-faq.dk/article/?id=41 ?
>
> >, men jeg vil alligevel gætte
> > at den ser sådan her ud:
> >
> > strSQL = "Update tblMenu set Name= 'Forsiden', URL= '/default.asp',
> > Where Name = 'Forsiden'"
>
> ---------------------------------------------------------------------^
>
> Hvis du gætter rigtigt, så er der i hvert fald et komma for meget.

Stadig samme fejl. z-:



Jesper Stocholm (19-07-2005)
Kommentar
Fra : Jesper Stocholm


Dato : 19-07-05 11:57

"David Trasbo" <datra@mail.dk> wrote in news:42dcd96b$0$18640$14726298
@news.sunsite.dk:

>> > Jeg kan ikke vise jer sætningen uden ASP
>>
>> Hvorfor ikke? Har du kigget på http://asp-faq.dk/article/?id=41 ?

Kig her igen.

>> >, men jeg vil alligevel gætte
>> > at den ser sådan her ud:
>> >
>> > strSQL = "Update tblMenu set Name= 'Forsiden', URL= '/default.asp',
>> > Where Name = 'Forsiden'"
>>
>> ---------------------------------------------------------------------^
>>
>> Hvis du gætter rigtigt, så er der i hvert fald et komma for meget.
>
> Stadig samme fejl. z-:

Prøv at se på den artikel på asp-faq.dk og se, om du ikke kan bruge det
til noget. Der hvor du har hentet ASP-linien med din sql udskriver du den
bagefter med Response.Write(strSql)

Så længe det er gætteri er det ikke muligt at hjælpe dig mere (i mindelig
tid)

--
Jesper Stocholm
http://stocholm.dk

Japo stole sælges - http://japoarmstole.stocholm.dk

David Trasbo (19-07-2005)
Kommentar
Fra : David Trasbo


Dato : 19-07-05 12:03

> Prøv at se på den artikel på asp-faq.dk og se, om du ikke kan bruge det
> til noget. Der hvor du har hentet ASP-linien med din sql udskriver du den
> bagefter med Response.Write(strSql)
>
> Så længe det er gætteri er det ikke muligt at hjælpe dig mere (i mindelig
> tid)
>

Jeg kender godt det der trick, men det er en af de irriterende fejl der
gør at den ikke viser andet end noget microsoft skidt der ikke validerer.
Det kalder de en fejlmeddelelse... z-:


--
David Trasbo. Vær en god Usenet bruger. Læs <http://usenet.dk/netikette>.
Tjek <http://indexpage.dk>

Jesper Stocholm (19-07-2005)
Kommentar
Fra : Jesper Stocholm


Dato : 19-07-05 12:18

"David Trasbo" <datra@mail.dk> wrote in newsst5qbrdxy3w3tq@www:

>> Prøv at se på den artikel på asp-faq.dk og se, om du ikke kan bruge
>> det til noget. Der hvor du har hentet ASP-linien med din sql
>> udskriver du den bagefter med Response.Write(strSql)
>>
>> Så længe det er gætteri er det ikke muligt at hjælpe dig mere (i
>> mindelig tid)
>>
>
> Jeg kender godt det der trick, men det er en af de irriterende fejl
> der gør at den ikke viser andet end noget microsoft skidt der ikke
> validerer. Det kalder de en fejlmeddelelse... z-:

Hvis du prøver at læse artiklen, så vil du se, at det _ikke_ er fejlen,
der er interessant men derimod den _sql_, som du opbygger. Den er dén
information vi har behov for at se for at kunne hjælpe dig.

Derfor: Et eller andet sted i din kode bør der stå noget i retning af

strSql = "UPDATE tblMenu ... "

Hvis du herunder skriver

Response.Write strSql
Response.End

.... hvad står der så?

--
Jesper Stocholm
http://stocholm.dk

Japo stole sælges - http://japoarmstole.stocholm.dk

David Trasbo (19-07-2005)
Kommentar
Fra : David Trasbo


Dato : 19-07-05 12:26

> strSql = "UPDATE tblMenu ... "
>
> Hvis du herunder skriver
>
> Response.Write strSql
> Response.End
>
> ... hvad står der så?

Update tblMenu set Name= 'Forsiden', URL= '/default.asp' Where Name =
'Forsiden'

--
David Trasbo.
<http://indexpage.dk>



Jesper Stocholm (19-07-2005)
Kommentar
Fra : Jesper Stocholm


Dato : 19-07-05 12:32

"David Trasbo" <datra@mail.dk> wrote in news:42dce343$0$18637$14726298
@news.sunsite.dk:

>> strSql = "UPDATE tblMenu ... "
>>
>> Hvis du herunder skriver
>>
>> Response.Write strSql
>> Response.End
>>
>> ... hvad står der så?
>
> Update tblMenu set Name= 'Forsiden', URL= '/default.asp' Where Name =
> 'Forsiden'

Som jeg skrev tidligere:

....

Derudover er 'Name' et reserveret ord i Access, så det kan give nogle
problemer for dig. Du kan komme udenom dette ved at skrive Name i som
[Name].

....

Hjælper det?

--
Jesper Stocholm
http://stocholm.dk

Japo stole sælges - http://japoarmstole.stocholm.dk

Jens Gyldenkærne Cla~ (19-07-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 19-07-05 19:56

David Trasbo skrev:

> Jeg kender godt det der trick, men det er en af de irriterende
> fejl der gør at den ikke viser andet end noget microsoft
> skidt der ikke validerer.

Hvad mener du? Prøv at komme med nogle konkrete fejlmeddelelser i
stedet for dine egne omskrivninger af dem.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste