/ 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
Opdater database
Fra : Henning Habor


Dato : 18-02-03 12:14

Hej,

Jeg vil gerne kunne opdatere min database (Access 2000) Uden at
skulle downloade den først og siden uploade den igen.

Jeg har absolut ingen anelse om hvordan man gør, så hvis du vil
hjælpe, vil du så give mig alle instrukser og koder?

--
Danmarks største specialiserede IT jobdatabase
- Udelukkende med IT- og internetrelaterede jobs
- Opret en profil og lad drømmejobbet finde dig
KLIK HER! => http://www.html.dk/job

 
 
Voller (18-02-2003)
Kommentar
Fra : Voller


Dato : 18-02-03 13:07

> Jeg vil gerne kunne opdatere min database (Access 2000) Uden at
> skulle downloade den først og siden uploade den igen.
> Jeg har absolut ingen anelse om hvordan man gør, så hvis du vil
> hjælpe, vil du så give mig alle instrukser og koder?


Kig lidt på http://www.html.dk/tutorials/asp/lektion22.asp
Der er en guide til det. Jeg ville ikke gøre det på den måde, men det virker
jo på den anden side fint.


Mvh. Voller.



Christoffer Thygesen (18-02-2003)
Kommentar
Fra : Christoffer Thygesen


Dato : 18-02-03 15:12

"Henning Habor" <henninghabor@hotmail.com> skrev i en meddelelse news:b2t4i0$c5o$1@sunsite.dk...
>
> Jeg vil gerne kunne opdatere min database (Access 2000) Uden at
> skulle downloade den først og siden uploade den igen.
>
> Jeg har absolut ingen anelse om hvordan man gør, så hvis du vil
> hjælpe, vil du så give mig alle instrukser og koder?
>

Du kan bruge:

<%
dbfolder = Server.Mappath(".") & "\"
'dbfolder = Request.ServerVariables("APPL_PHYSICAL_PATH") & "..\database\"
dbname = "data.mdb"
strConn = "DBQ="& dbfolder & dbname & ";Driver={Microsoft Access Driver (*.mdb)}; PWD="

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConn

Conn.Execute "UPDATE referers SET email='dinmail@ditdomain.dk' WHERE id=1"

'eller flere felter samtidig:
Conn.Execute "UPDATE referers SET email='dinmail@ditdomain.dk',navn='dit navn' WHERE id=1"

Conn.Close
Set Conn = Nothing
%>

{ http://cht.dk/news/ - Din online news reader }


Henning Habor (18-02-2003)
Kommentar
Fra : Henning Habor


Dato : 18-02-03 14:02

Hvad så hvis jeg vil gøre det fra en form?

Jeg prøvede at gøre som i tutorial'n på html.dk og fik følgende
kode:

Siden hvor formen er:

<form method="post" action="VisArtikel_update_skriv.asp">
<table class="content">
<tr><th colspan="2">Skriv en ny artikel</th></tr>
<tr><td>Overskrift:</td><td><input type="text"
name="Overskrift"></td></tr>
<tr><td>Lagt på nettet den:</td><td><input type="text"
name="Dato"></td></tr>
<tr><td>Lagt på nettet af:</td><td valign="top"><input
type="text" name="Forfatter"></td></tr>
<tr><td valign="top">Artikel:</td><td><textarea name="Artikel"
rows="15" cols="40"></textarea></td></tr>
<tr><td></td><td><input type="submit" value="Send">&nbsp;<input
type="reset" value="Slet"></td></tr>
</table>
</form>

Siden der gemmer inputs fra formen:

<%

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

strSQL = "Update VisArtikel set ("

strSQL = strSQL & "Overskrift, "
strSQL = strSQL & "Dato, "
strSQL = strSQL & "Forfatter, "
strSQL = strSQL & "Artikel) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Request.Form("Overskrift") & "', "
strSQL = strSQL & "'" & Request.Form("Dato") & "', "
strSQL = strSQL & "'" & Request.Form("Forfatter") & "', "
strSQL = strSQL & "'" & Request.Form("Artikel") & "')"

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing

%>

--
Danmarks største specialiserede IT jobdatabase
- Udelukkende med IT- og internetrelaterede jobs
- Opret en profil og lad drømmejobbet finde dig
KLIK HER! => http://www.html.dk/job

Henning Habor (18-02-2003)
Kommentar
Fra : Henning Habor


Dato : 18-02-03 14:04

Hov, glemte sq da at skrive hvad jeg så fik ud af det...

Når jeg indtaster inputs i formen og den så gemmer i databasen,
sker der følgenede:

Jeg får et helt nyt input i databasen.

Går udfra at det så er fordi jeg på en eller anden finurlig måde
skal ha' hentet de data jeg skal ha' opdateret, men desværre ved
jeg ikke hvordan jeg gør...

--
Danmarks største specialiserede IT jobdatabase
- Udelukkende med IT- og internetrelaterede jobs
- Opret en profil og lad drømmejobbet finde dig
KLIK HER! => http://www.html.dk/job

Jens Gyldenkærne Cla~ (18-02-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-02-03 15:16

Henning Habor skrev:

> strSQL = "Update VisArtikel set ("
>
> strSQL = strSQL & "Overskrift, "
> strSQL = strSQL & "Dato, "
> strSQL = strSQL & "Forfatter, "
> strSQL = strSQL & "Artikel) "
>
> strSQL = strSQL & "values( "
>
> strSQL = strSQL & "'" & Request.Form("Overskrift") & "', "
> strSQL = strSQL & "'" & Request.Form("Dato") & "', "
> strSQL = strSQL & "'" & Request.Form("Forfatter") & "', "
> strSQL = strSQL & "'" & Request.Form("Artikel") & "')"

Du blander Update og Insert-syntaks.

Updatekommandoens syntaks er:

   Update tabelnavn
   Set kolonne1 = 'værdi1',
       kolonne2 = 'værdi2'
   Where betingelse
- altså ingen paranteser, og ikke nogen "values".

Det lyder mærkeligt hvis siden indsætter nye værdier - det bør give
en databasefejl - men du skal under alle omstændigheder bruge
ovenstående syntaks for at opdatere.

Se også <http://html.dk/tutorials/asp/lektion22.asp> - sammenlign
evt. med <http://html.dk/tutorials/asp/lektion20.asp> (om at
indsætte).
--
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

Henning Habor (18-02-2003)
Kommentar
Fra : Henning Habor


Dato : 18-02-03 15:34

>    Update tabelnavn
>    Set kolonne1 = 'værdi1',
>        kolonne2 = 'værdi2'
>    Where betingelse
> - altså ingen paranteser, og ikke nogen "values".

Vil det sige at jeg så skal skrive min tekst sådan:

Update VisArtikel Set
Overskrift = & Request.Form("Overskrift") & ,
Dato = & Request.Form("Dato") & ,
Forfatter = & Request.Form("Forfatter") & ,
Artikel = & Request.Form("Artikel") &
Where betingelse

Eller hvordan skal jeg få fat i det fra min form?
Sorry, men jeg er nybegynder og synes ikke jeg kan gennemskue kapitel
22 i tutorial på html.dk...

--
Danmarks største specialiserede IT jobdatabase
- Udelukkende med IT- og internetrelaterede jobs
- Opret en profil og lad drømmejobbet finde dig
KLIK HER! => http://www.html.dk/job

Jens Gyldenkærne Cla~ (18-02-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-02-03 15:43

Henning Habor skrev:

> Vil det sige at jeg så skal skrive min tekst sådan:
>
> Update VisArtikel Set
> Overskrift = & Request.Form("Overskrift") & ,
> Dato = & Request.Form("Dato") & ,
> Forfatter = & Request.Form("Forfatter") & ,
> Artikel = & Request.Form("Artikel") &
> Where betingelse

Det er bedre, men stadig ikke helt nok.

Tekstværdier skal have anførselstegn omkring sig for at virke.
Prøv at læse lidt på tutorialen igen - også afsnittet omkring
begynderfejl, der står på
<http://html.dk/tutorials/asp/lektion20.asp> (alle punkterne gælder
også ved opdatering).

Datoer er et helt kapitel for sig. Prøv at søge i gruppen efter
tråde om DateSerial - det er en meget sikker måde at håndtere
datoer på.
--
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

Henning Habor (18-02-2003)
Kommentar
Fra : Henning Habor


Dato : 18-02-03 18:38

Nu har jeg siddet og prøvet at arbejde lidt med det (Se
nedenstående...)

<%

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

strSQL = "Update VisArtikel Set "

strSQL = strSQL & "Overskrift= ' & Request.Form("Overskrift") & ' , "
strSQL = strSQL & "Dato= ' & Request.Form("Dato") & ' , "
strSQL = strSQL & "Forfatter= ' & Request.Form("Forfatter") & ' , "
strSQL = strSQL & "Artikel= ' & Request.Form("Artikel") & ' "
strSQL = strSQL & " Where Id= ' & Request.Form("NytId") & ' "

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing

%>

Hvilket kommer med følgende fejlmeddelse:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/henrietteoghenning/VisArtikel_update_ok.asp, line 16

strSQL = strSQL & "Overskrift= ' & Request.Form("Overskrift") & ' , "
-------------------------------------------------^

Jeg kan forstå at jeg skal putte nogle " rundt omkring... Men hvor? Og
har jeg sat korrekt op?

--
Danmarks største specialiserede IT jobdatabase
- Udelukkende med IT- og internetrelaterede jobs
- Opret en profil og lad drømmejobbet finde dig
KLIK HER! => http://www.html.dk/job

Jens Gyldenkærne Cla~ (18-02-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-02-03 22:05

Henning Habor skrev:

> strSQL = strSQL & "Overskrift= ' & Request.Form("Overskrift")

Du har glemt at afslutte din tekst (med et ") ovenfor. Når man
laver strengsammensætninger sker det på formen

s = x & y [& z...]

s er altid en variabel, mens hvert led på højresiden (x, y,...)
enten er en variabel eller en streng. Strenge afgrænses med
dobbelte anførselstegn - og det er det du har glemt ovenfor. Det
enkelte anførselstegn der står på linjen er placeret korrekt - men
det læses ikke af asp (fordi det står i en tekst i dobbelte
anførselstegn).

Altså kort sagt - asp skal bruge de dobbelte anførselstegn, mens
Access bruger de enkelte.

> & ' , " strSQL = strSQL & "Dato= ' & Request.Form("Dato") & '

Her - og i alle følgende linjer har du samme problem. Hver gang du
indleder en tekststreng skal der stå " - og samme tegn skal stå ved
hver afslutning af en tekststreng.

Du kan evt. bare kigge på dine &-tegn. De skal altid være omgivet
af gyldige tekstelementer - enten navnet på en variabel, eller også
en tekst omkranset af dobbelte anførselstegn.
--
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

Henning Habor (19-02-2003)
Kommentar
Fra : Henning Habor


Dato : 19-02-03 10:08

Så har jeg fået det til at virke.

For dem der har fulgt tutorial'n på html.dk, er det altså sådan her
det skal se ud (Eller sagt på en anden måde: Det er sådan jeg med
hjælp fra nyhedsgruppen har fået det til at se ud! )

God fornøjelse med det...

PS. Det kommer fra en form der ser ud som den i bunden...

<%

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

strSQL = "Update VisArtikel set "
strSQL = strSQL & "Overskrift= '" & Request.Form("Overskrift") & "',
"
strSQL = strSQL & "Dato= '" & Request.Form("Dato") & "', "
strSQL = strSQL & "Forfatter= '" & Request.Form("Forfatter") & "', "
strSQL = strSQL & "Artikel= '" & Request.Form("Artikel") & "'"
strSQL = strSQL & " Where Id= " & Request.Form("NytId") & ""

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>

<form method="post" action="update.asp">
<table class="content">
<tr><th colspan="2">Opdater en artikel</th></tr>
<tr><td>Overskrift:</td><td><input type="text"
name="Overskrift"></td></tr>
<tr><td>Lagt på nettet den:</td><td><input type="text"
name="Dato"></td></tr>
<tr><td>Lagt på nettet af:</td><td valign="top"><input type="text"
name="Forfatter"></td></tr>
<tr><td>ID:</td><td valign="top"><input type="text"
name="NytId"></td></tr>
<tr><td valign="top">Artikel:</td><td><textarea name="Artikel"
rows="15" cols="40"></textarea></td></tr>
<tr><td></td><td><input type="submit" value="Send">&nbsp;<input
type="reset" value="Slet"></td></tr>
</table>
</form>

--
Danmarks største specialiserede IT jobdatabase
- Udelukkende med IT- og internetrelaterede jobs
- Opret en profil og lad drømmejobbet finde dig
KLIK HER! => http://www.html.dk/job

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

Månedens bedste
Årets bedste
Sidste års bedste