|
| Gem redigeret data via en form og sql Fra : Kasper Christensen |
Dato : 19-11-03 21:08 |
|
Jeg har lavet en form til redigering af data i en db. det går fint med at
hente dataerne ind, men at få dem gemt under de rigtige id'er er straks
værre.
I min adresselinie står der til slut f.eks. dette redpressemedl.asp?id=3
hvordan får jeg fat i 3, så den ved at det skal smides i id 3 i m-db.
Jeg har prøvet med den traditionelle metode sql = "select * from
pressemeddelelser WHERE ID=" & strID, men den henter intet, men det er jo
også nærmere i adresselinien jeg skal have fat da id vel ikke ligger i
sessionen.
Håber nogen kan hjælpe.
--
-------------------------------------------------------------
Med venlig hilsen
Kasper Christensen
Multimediedesignerstuderende
| |
Brian B. Christensen (19-11-2003)
| Kommentar Fra : Brian B. Christensen |
Dato : 19-11-03 21:15 |
|
On Wed, 19 Nov 2003 21:07:42 +0100, "Kasper Christensen"
<news@REMOVEkasperc.dk> wrote:
>I min adresselinie står der til slut f.eks. dette redpressemedl.asp?id=3
>
>hvordan får jeg fat i 3, så den ved at det skal smides i id 3 i m-db.
ID_i_adresselinien = request("id")
| |
Kasper Christensen (19-11-2003)
| Kommentar Fra : Kasper Christensen |
Dato : 19-11-03 21:18 |
|
"Brian B. Christensen" <not_for_public@invalid.address> wrote in message
news:tnjnrvo9t5n474oka5m3lvbuvjui0auirs@4ax.com...
> On Wed, 19 Nov 2003 21:07:42 +0100, "Kasper Christensen"
> <news@REMOVEkasperc.dk> wrote:
>
>
> >I min adresselinie står der til slut f.eks. dette redpressemedl.asp?id=3
> >
> >hvordan får jeg fat i 3, så den ved at det skal smides i id 3 i m-db.
>
> ID_i_adresselinien = request("id")
Nu ser den sådanne ud:
strID = request("id") set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0" conn.Open
(Server.Mappath("../db/database.mdb")) set rs =
server.createobject("ADODB.recordset") sql = "select * from
pressemeddelelser WHERE ID=" & strID
men får følgende fejl:
Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error (missing operator) in query expression 'ID='.
/aar/cms/opredpressemedl.asp, line 12
--
-------------------------------------------------------------
Med venlig hilsen
Kasper Christensen
Multimediedesignerstuderende
| |
Brian B. Christensen (19-11-2003)
| Kommentar Fra : Brian B. Christensen |
Dato : 19-11-03 21:24 |
|
On Wed, 19 Nov 2003 21:17:47 +0100, "Kasper Christensen"
<news@REMOVEkasperc.dk> wrote:
>> sql = "select * from pressemeddelelser WHERE ID=" & strID
Hvis id er et alphanumerisk felt, så prøv med
sql = "select * from pressemeddelelser WHERE ID='" & strID &"'"
altså en ' før og efter din strID variabel
Men skriv altid din sqlsætning ud med response.write, for at se
hvordan den ser ud.
| |
Kasper Christensen (19-11-2003)
| Kommentar Fra : Kasper Christensen |
Dato : 19-11-03 21:28 |
|
> >> sql = "select * from pressemeddelelser WHERE ID=" & strID
>
> Hvis id er et alphanumerisk felt, så prøv med
>
> sql = "select * from pressemeddelelser WHERE ID='" & strID &"'"
>
> altså en ' før og efter din strID variabel
>
> Men skriv altid din sqlsætning ud med response.write, for at se
> hvordan den ser ud.
Tak for hjælpen. Men det hjalp desværre ikke. id er autonummerisk fra
access.
--
-------------------------------------------------------------
Med venlig hilsen
Kasper Christensen
Multimediedesignerstuderende
| |
Brian B. Christensen (19-11-2003)
| Kommentar Fra : Brian B. Christensen |
Dato : 19-11-03 21:36 |
|
On Wed, 19 Nov 2003 21:28:26 +0100, "Kasper Christensen"
<news@REMOVEkasperc.dk> wrote:
>Tak for hjælpen. Men det hjalp desværre ikke. id er autonummerisk fra
>access.
Jamen, så gør som jeg skrev før
sæt dette ind lige efter sql = "......."
response.write sql
Og send så outputtet fra denne linie hertil. Så er det nemmer at løse.
| |
Kasper Christensen (19-11-2003)
| Kommentar Fra : Kasper Christensen |
Dato : 19-11-03 22:17 |
|
> Jamen, så gør som jeg skrev før
>
> sæt dette ind lige efter sql = "......."
>
> response.write sql
>
> Og send så outputtet fra denne linie hertil. Så er det nemmer at løse.
Jeg har løst det ved at lave et hidden felt hvor jeg overfører id.
Men tak for hjælpen.
Mvh
Kasper
| |
Jesper Nielsen (20-11-2003)
| Kommentar Fra : Jesper Nielsen |
Dato : 20-11-03 05:53 |
|
> Jeg har løst det ved at lave et hidden felt hvor jeg overfører id.
Husk at lave noget check på dine data. Du skriver, at dit ID altid er
numerisk. Derfor bør du gøre dette:
Dim intId
intId = Trim(Request.[Form|QueryString]("id"))
If Not IsNumeric(intId) Then
' Din fejlhåndtering her
End If
Input validering er altid vigtigt - også selvom du kender de personer, som
skal indtaste dataene - der kan altid ske fejl.
Er det lige meget, om der bliver vist en pæn fejlbesked eller ej, hvis ID
indeholder andet end et tal, kan du nøjes med følgende:
Dim intId
intId = Int(Trim(Request.[Form|QueryString]("id")))
Indeholder ID så en alfanumerisk værdi, vil brugeren blive præsenteret med
en fejl á la
Microsoft VBScript runtime error: Type mismatch: '[string: "1a"]'
--
Mvh. Jesper
| |
Jesper Nielsen (20-11-2003)
| Kommentar Fra : Jesper Nielsen |
Dato : 20-11-03 05:46 |
|
> ID_i_adresselinien = request("id")
Nej.
Dim intId
intId = Request.QueryString("id")
Du bør altid angive, hvor du ønsker at hente oplysningerne fra.
--
Mvh. Jesper
| |
Brian B. Christensen (20-11-2003)
| Kommentar Fra : Brian B. Christensen |
Dato : 20-11-03 08:34 |
|
On Thu, 20 Nov 2003 05:45:34 +0100, "Jesper Nielsen" <jn@nielsenit.dk>
wrote:
>Du bør altid angive, hvor du ønsker at hente oplysningerne fra.
Hej.
Ok, det var jeg ikke klar over. Bruger den anden måde og det fungerer
fint.
Men hvornår kan det gå galt?
Mvh. Brian
| |
Jesper Nielsen (20-11-2003)
| Kommentar Fra : Jesper Nielsen |
Dato : 20-11-03 09:43 |
| | |
Brian B. Christensen (20-11-2003)
| Kommentar Fra : Brian B. Christensen |
Dato : 20-11-03 10:05 |
|
On Thu, 20 Nov 2003 09:43:16 +0100, "Jesper Nielsen"
<jn@nielsenit.invalid> wrote:
>
>Der står lidt om det på < http://www.aspfaq.com/show.asp?id=2111>.
Tak for info. Selvom jeg ikke tror jeg vil rende ind i et problem, må
jeg heller begynde at gøre det alligevel.
Mvh. Brian
| |
Jesper Nielsen (20-11-2003)
| Kommentar Fra : Jesper Nielsen |
Dato : 20-11-03 11:00 |
|
> Tak for info. Selvom jeg ikke tror jeg vil rende ind i et problem, må
> jeg heller begynde at gøre det alligevel.
Under alle omstændigheder er det best practice
--
Mvh. Jesper
| |
|
|