/ 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
slet i db ?
Fra : Johannes Veje


Dato : 10-02-02 15:48

Jeg får følgende fejl:
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e10'
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var
ventet 1.
/opgaver/opg4bsletkunde.asp, linje 21

af følgende kode:
<%@ Language=VBScript %>
<% option explicit %>
<%
Dim rs, Conn, DSN, strSQL, SQL, slet
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../databaser/Northwind.mdb")
Conn.Open DSN

strSQL = "DELETE from kunder where KundeID=" &
Request.Querystring("KundeID")
slet = strSQL
'response.write slet
'response.write strSQL
Conn.Execute(slet) 'HER HAR VI LINIE 21
Conn.Close
'Ser Conn = Nothing
'response.redirect("../opgaver/kunder4b.asp")
%>

Jeg FATTER bare ikke hvad problemet er........er der een der kan se hvad det
er ?
Jeg har lavet ny db, så den skulle være ok.
mhv
Johs.



 
 
Mads Graugaard Hanse~ (10-02-2002)
Kommentar
Fra : Mads Graugaard Hanse~


Dato : 10-02-02 16:39

>>strSQL = "DELETE from kunder where KundeID=" &
Request.Querystring("KundeID")


Hej Johannes...

Hvad jeg lige ummidelbart kan se, mangler du at definere hvad du vil slette i
din SQL sætning...


Hvis du vil slette alle data fra tabellen, ud fra et bestemt kundeID, skal
din SQL sætning se sån her ud.

strSQL = "DELETE * from kunder where KundeID=" &
Request.Querystring("KundeID")

så du skal bare sætte en * ind, for at definere at det er alt du vil slette
med det bestemte kundeID.

Mads Graugaard Hansen



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

Johannes Veje (10-02-2002)
Kommentar
Fra : Johannes Veje


Dato : 10-02-02 16:59

> >>strSQL = "DELETE from kunder where KundeID=" &
> Request.Querystring("KundeID")
>
>
> Hej Johannes...
>
> Hvad jeg lige ummidelbart kan se, mangler du at definere hvad du vil
slette i
> din SQL sætning...
>
>
> Hvis du vil slette alle data fra tabellen, ud fra et bestemt kundeID, skal
> din SQL sætning se sån her ud.
>
> strSQL = "DELETE * from kunder where KundeID=" &
> Request.Querystring("KundeID")
>

Tak, MEN den kommer med fuldstændig den samme fejl ;-((
Jeg synes bare det er SÅ underligt, fordi jeg mener at koden er som det
fremstår fra flere bøger, (altså ikke noget sjask jeg selv har fundet på)

mvh
Johs.




Peter Lykkegaard (10-02-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 10-02-02 17:19


"Johannes Veje" <jv@jv-data.dk> wrote in message
news:a465f2$r4j$1@news.cybercity.dk...
> > >>strSQL = "DELETE from kunder where KundeID=" &
> > Request.Querystring("KundeID")
> >
> >
> > Hej Johannes...
> >
> > Hvad jeg lige ummidelbart kan se, mangler du at definere hvad du vil
> slette i
> > din SQL sætning...
> >
> >
> > Hvis du vil slette alle data fra tabellen, ud fra et bestemt kundeID,
skal
> > din SQL sætning se sån her ud.
> >
> > strSQL = "DELETE * from kunder where KundeID=" &
> > Request.Querystring("KundeID")
> >
>
> Tak, MEN den kommer med fuldstændig den samme fejl ;-((
> Jeg synes bare det er SÅ underligt, fordi jeg mener at koden er som det
> fremstår fra flere bøger, (altså ikke noget sjask jeg selv har fundet på)
>
Lav en response.write strSQL & "<br>"

Din variable KundeID er med gararati ikke defineret
Access opfatter din SQL statement som "DELETE * from kunder where KundeID="
Og vil give fejlen "To few parameters..."

mvh/Peter Lykkegaard



Johannes Veje (10-02-2002)
Kommentar
Fra : Johannes Veje


Dato : 10-02-02 18:07

> > >
> > >
> > > Hvis du vil slette alle data fra tabellen, ud fra et bestemt kundeID,
> skal
> > > din SQL sætning se sån her ud.
> > >
> > > strSQL = "DELETE * from kunder where KundeID=" &
> > > Request.Querystring("KundeID")
> > >
> >
> > Tak, MEN den kommer med fuldstændig den samme fejl ;-((
> > Jeg synes bare det er SÅ underligt, fordi jeg mener at koden er som det
> > fremstår fra flere bøger, (altså ikke noget sjask jeg selv har fundet
på)
> >
> Lav en response.write strSQL & "<br>"

Den skriver så:
DELETE * from Kunder where KundeID=AAAAB

>
> Din variable KundeID er med gararati ikke defineret
> Access opfatter din SQL statement som "DELETE * from kunder where
KundeID="
> mvh/Peter Lykkegaard

Så jeg mener KundeID er defineret. Men jeg sidder også og prøver at lave en
side hvor man kan rette de data der er på kunden, og der kommer den samme
fejl

Microsoft OLE DB Provider for ODBC Drivers fejl '80040e10'
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var
ventet 1.
/opgaver/retkunde4b.asp, linje 23

Koden er:
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.MapPath("../databaser/Northwind.mdb") & ";UID=admin;PWD=;"

KundeID = request.querystring("KundeID")
set rs=Server.CreateObject("adodb.Recordset")
SQLstr = "SELECT * from Kunder WHERE KundeID=" & KundeID
rs.open SQLstr, Conn OG HER ER LINIE 23

gåden stadig uløst. Og det ER føstegang jeg skal lave en sletning og en
rettelse i en db, så det er sikkert mig.. men alt hjælp modtages med
MANGE TAK.

mvh
Johs.




Jørn Andersen (10-02-2002)
Kommentar
Fra : Jørn Andersen


Dato : 10-02-02 18:15

On Sun, 10 Feb 2002 18:07:17 +0100, "Johannes Veje" <jv@jv-data.dk>
wrote:

>> > > strSQL = "DELETE * from kunder where KundeID=" &
>> > > Request.Querystring("KundeID")
<SNIP>
>> Lav en response.write strSQL & "<br>"
>
>Den skriver så:
>DELETE * from Kunder where KundeID=AAAAB

Altså er din Kunde-ID et tekstfelt, og der skal være ' ' om:

strSQL = "DELETE * from kunder where KundeID='" & _
Request.Querystring("KundeID") & "'"

Good luck,
Jørn


Johannes Veje (10-02-2002)
Kommentar
Fra : Johannes Veje


Dato : 10-02-02 18:27


"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:dgad6ug0ltu3qoovan6tdlkgkni7knfv91@4ax.com...
> On Sun, 10 Feb 2002 18:07:17 +0100, "Johannes Veje" <jv@jv-data.dk>
> wrote:
>
> >> > > strSQL = "DELETE * from kunder where KundeID=" &
> >> > > Request.Querystring("KundeID")
> <SNIP>
> >> Lav en response.write strSQL & "<br>"
> >
> >Den skriver så:
> >DELETE * from Kunder where KundeID=AAAAB
>
> Altså er din Kunde-ID et tekstfelt, og der skal være ' ' om:
>
> strSQL = "DELETE * from kunder where KundeID='" & _
> Request.Querystring("KundeID") & "'"
>
TAK TAK, der er ikke et øje tørt, nu har jeg kæmpet med det i over en uge og
SÅ kom guldkornene. I er bare fantastiske her i gruppen. Og selvfølgelig en
speciel tak til Jørn som kunne hjæpe mig denne gang.

mvh
Johs.





Mads Graugaard Hanse~ (10-02-2002)
Kommentar
Fra : Mads Graugaard Hanse~


Dato : 10-02-02 17:21

Johannes Veje wrote in dk.edb.internet.webdesign.serverside.asp:
> > >>strSQL = "DELETE from kunder where KundeID=" &
> > Request.Querystring("KundeID")
> >
> >
> > Hej Johannes...
> >
> > Hvad jeg lige ummidelbart kan se, mangler du at definere hvad du vil
> slette i
> > din SQL sætning...
> >
> >
> > Hvis du vil slette alle data fra tabellen, ud fra et bestemt kundeID, skal
> > din SQL sætning se sån her ud.
> >
> > strSQL = "DELETE * from kunder where KundeID=" &
> > Request.Querystring("KundeID")
> >
>
> Tak, MEN den kommer med fuldstændig den samme fejl ;-((
> Jeg synes bare det er SÅ underligt, fordi jeg mener at koden er som det
> fremstår fra flere bøger, (altså ikke noget sjask jeg selv har fundet på)
>
> mvh
> Johs.

Hej igen .. Jeg har en SQL sætning der sletter fra min database, og den
virker..

SQLstmt = "DELETE * FROM sider WHERE ID=" & TRIM(Request.QueryString("id"))

Hvis man omskriver den til den du skal bruge, vil den hedde

strSQL = "DELETE * FROM kunder WHERE KundeID=" &
TRIM(Request.QueryString("KundeID"))


Prøv at se om den evt virker..

Mads

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

Johannes Veje (10-02-2002)
Kommentar
Fra : Johannes Veje


Dato : 10-02-02 18:16

Hej Mads

> > >
> > > strSQL = "DELETE * from kunder where KundeID=" &
> > > Request.Querystring("KundeID")
> > >
> >
> > Tak, MEN den kommer med fuldstændig den samme fejl
(
> > Jeg synes bare det er SÅ underligt, fordi jeg mener at koden er som det
> > fremstår fra flere bøger, (altså ikke noget sjask jeg selv har fundet på)
> >
> > mvh
> > Johs.
>
> Hej igen .. Jeg har en SQL sætning der sletter fra min database, og den
> virker..
>
> SQLstmt = "DELETE * FROM sider WHERE ID=" & TRIM(Request.QueryString("id"))
> Hvis man omskriver den til den du skal bruge, vil den hedde
>
> strSQL = "DELETE * FROM kunder WHERE KundeID=" &
> TRIM(Request.QueryString("KundeID"))
>
>
> Prøv at se om den evt virker..

Så OGSÅ det prøvet, med samme resultat
Microsoft OLE DB Provider for ODBC Drivers fejl '80040e10'
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.
/opgaver/opg4bsletkunde.asp, linje 20

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../databaser/Northwind.mdb")
Conn.Open DSN

strSQL = "DELETE * FROM kunder WHERE KundeID=" & TRIM(Request.QueryString("KundeID"))

conn.execute(strSQL) 'Hvor dette er linie 20

Det er lige før jeg tror der er hekseri ved dette.

med en fortvivlet hilsen
Johs.







Peter Lykkegaard (10-02-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 10-02-02 19:41


"Johannes Veje" <jv@jv-data.dk> wrote in message
news:a46a02$12ua$1@news.cybercity.dk...
> Hej Mads
>
> > > >
> > > > strSQL = "DELETE * from kunder where KundeID=" &
> > > > Request.Querystring("KundeID")
> > > >
> > >
> > > Tak, MEN den kommer med fuldstændig den samme fejl

> Det er lige før jeg tror der er hekseri ved dette.
>
Grunden til at dey kniber lidt for os at hjælpe er at vi alle har taget
udgangspunkt i at dit felt KundeID var numerisk - mens det i virkeligheden
er alphanumerisk (tekst) od derfor _skal_ have enkelt apostrofer omkring din
variabel - så nydeligt beskrevet af Jørn i et andet indlæg

Prøv at læse lidt om tal/tekst "helvedet" i dine tykke bøger

mvh/Peter Lykkegaard



Jørn Andersen (10-02-2002)
Kommentar
Fra : Jørn Andersen


Dato : 10-02-02 17:22

On Sun, 10 Feb 2002 16:58:44 +0100, "Johannes Veje" <jv@jv-data.dk>
wrote:

>> strSQL = "DELETE * from kunder where KundeID=" &
>> Request.Querystring("KundeID")
>>
>
>Tak, MEN den kommer med fuldstændig den samme fejl ;-((

Hvad får du, når du udskriver dine variable - fx strSQL?
Hvis du ikke kan skrive den ud, fordi du får fejl, så indsæt
Response.End - således:

Response.Write strSQL
Response.End

Et generelt hint:
ASP-sider bliver afviklet fra oven og ned. Dvs. at kode tidligt på
siden ofte bliver brugt længere ned. Derfor er det altid en god idé at
udskrive alle variable, der indgår i den del, hvor der opstår fejl.

I dit tilfælde bruger du fx:
Request.Querystring("KundeID")
- så derfor:
Response.Write Request.Querystring("KundeID")
Response.End

Ligeledes er det ofte en god idé *ikke* at indsætte Request.Form og
især Request.Querystring direkte i en SQL eller i en anden sammenhæng,
hvor den kan gøre skade.
I dit tilfælde kan hvemsomhelst jo kalde din side med hvilket som
helst kundeID og så slette efter behag!! (Medmindre du da har sikret
dig på anden vis...)

I stedet kan man samle "input" op i en variabel og så lave lidt
kontrol på den (er det fx et tal?):
intKundeID = Request.Querystring("KundeID")
If IsNumeric(intKundeID) (evt. flere betingelser) Then
intKundeID = CInt(intKundeID)
Else
' -- fejl: kør en fejlrutine
End if

Dette har ikke så meget med dit akutte problem at gøre - så vend lige
tilbage med det i stedet :)

Good luck,
Jørn


Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste