/ 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
Slette bruger i en database
Fra : JonZ


Dato : 19-05-05 00:19

Er der nogen der kan hjælpe mig, jeg skal slette en bruger i en
database, men 2 ting skal være opfyldt. ID skal være rigtigt og
navn. men hvad gør jeg forkert her.


<html>

<title>slette data fra database</title>

<head>

</head>

<body>

<dl>

<%
   ' Åbner database forbindelse

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



   ' sletter fra database



      strSQL = "Delete from personer where antal = "&
Request.Form("ID") &" and where fornavn = "&
request.form("fornavn")



   ' SQL sætning eksekveres

      Conn.Execute(strSQL)

   ' Luk databaseforbindelse
      
      Conn.Close
      Set Conn = Nothing

   'Skrive bekræftigelse på sletningen

      response.write "<hl>Recorden fra ID nr. </hl>"
      Response.write "<hl>" & request.form("ID") & " er slettet
</hl>"


%>






</dl>
   ' Link tilbage

      <p><a href="Default.asp">Slet flere brugere</a></p>

</body>

</html>


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

 
 
Tomasz Otap (19-05-2005)
Kommentar
Fra : Tomasz Otap


Dato : 19-05-05 07:47

JonZ wrote:
>       strSQL = "Delete from personer where antal = "&
> Request.Form("ID") &" and where fornavn = "&
> request.form("fornavn")
>

Fornavn er højst sansynligt angivet som string og værdien af den skal
derfor angives i enkelte anførselstegn:

strSQL = "Delete from personer where antal = " &
Request.Form("ID") & " and where fornavn = '"&
request.form("fornavn") & "'"

(det er i øvrigt en god idé at escape dine request-værdier inden
placering i databasen, så du undgår fejl ved navne indeholdende
anførelsestegn o.lign.)

t

JonZ (19-05-2005)
Kommentar
Fra : JonZ


Dato : 19-05-05 09:06

Tomasz Otap wrote in dk.edb.internet.webdesign.serverside.asp:
> JonZ wrote:
> >       strSQL = "Delete from personer where antal = "&
> > Request.Form("ID") &" and where fornavn = "&
> > request.form("fornavn")
> >
>
> Fornavn er højst sansynligt angivet som string og værdien af den skal
> derfor angives i enkelte anførselstegn:
>
> strSQL = "Delete from personer where antal = " &
> Request.Form("ID") & " and where fornavn = '"&
> request.form("fornavn") & "'"
>
> (det er i øvrigt en god idé at escape dine request-værdier inden
> placering i databasen, så du undgår fejl ved navne indeholdende
> anførelsestegn o.lign.)
>
> t


Tak for hjælpen Thomasz

Men det løste ikke mit problem.
Den fejlmedelse den kommer med er:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi
der mangler en operator. i forespørgselsudtrykket "antal = 25 and where
fornavn = 'jonz'".
/slet.asp, line 32

Nu er jeg næsten lige startet med dette ASP, så hvad er det escape du
snakker om?





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

Anders Nielsen (19-05-2005)
Kommentar
Fra : Anders Nielsen


Dato : 19-05-05 09:30


"Tomasz Otap" <tomasz@otap.justRemoveThis.dk> wrote in message
news:428c3667$0$67258$157c6196@dreader2.cybercity.dk...
>
> strSQL = "Delete from personer where antal = " &
> Request.Form("ID") & " and where fornavn = '"&
> request.form("fornavn") & "'"
>

Og så er det måske også vværd at nævne at man kun bruger WHERE én gang i sin
sql sætning:

strSQL = "Delete from personer where antal = " & Request.Form("ID") & "
and fornavn = '"& request.form("fornavn") & "'"

Og så bør du for god ordens skyld også lige angive hvad der skal slettes -
nemlig alt = * :

strSQL = "Delete * from personer where antal = " & Request.Form("ID") & "
and fornavn = '"& request.form("fornavn") & "'"

Så tror jeg at det virker?

mvh
Anders



JonZ (19-05-2005)
Kommentar
Fra : JonZ


Dato : 19-05-05 10:03


> Og så bør du for god ordens skyld også lige angive hvad der skal slettes -
> nemlig alt = * :
>
> strSQL = "Delete * from personer where antal = " & Request.Form("ID") & "
> and fornavn = '"& request.form("fornavn") & "'"
>

Hej Anders

Tak for hjælpen. Nu virker det.

Det med * ved jeg ikke lige hvad er, men det virker både med og uden, men hvad
er forskellen? Hvis der er nogen.

Hilsen JonZ

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

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


Dato : 19-05-05 11:00

JonZ skrev:

>> Og så bør du for god ordens skyld også lige angive hvad der skal slettes -
>> nemlig alt = * :

Nej - vis mig en DELETE-sætning der ikke sletter alle felter. Stjernen
er overflødig og den vil give fejl i flere andre databaser.

> Det med * ved jeg ikke lige hvad er, men det virker både med og uden, men hvad
> er forskellen? Hvis der er nogen.

Standard sql-syntaks har *ikke* nogen feltangivelse med i en
slettesætning. Den er også komplet overflødig, for sletningen kan kun
foretages på postniveau - det vil sige at man sletter en hel post eller
ingen post.

Access har af for mig ukendte årsager valgt også at acceptere "DELETE *
FROM" - måske for at den skal ligne "SELECT * FROM" eller for at
pointere at det er alle felter der slettes. Men man kan altså ikke
skrive DELETE telefon FROM persontabel for at "slette" telefonfeltet fra
en tabel. En sletteforespørgsel kan kun slette hele poster.

Hvis man vil slette udvalgte oplysninger i en tabel, kan man bruge
UPDATE persontabel SET telefon = NULL eller evt. ALTER persontabel DROP
COLUMN telefon (sidstnævnte fjerner feltet helt fra tabellen).

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

Anders Nielsen (19-05-2005)
Kommentar
Fra : Anders Nielsen


Dato : 19-05-05 12:50


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:q28e89yobym0.dlg@jcdmfdk.invalid...
> JonZ skrev:
>
> >> Og så bør du for god ordens skyld også lige angive hvad der skal
slettes -
> >> nemlig alt = * :
>
> Nej - vis mig en DELETE-sætning der ikke sletter alle felter. Stjernen
> er overflødig og den vil give fejl i flere andre databaser.

Ok - Så lærte man sørme også lidt nyt i dag

mvh
Anders



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