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