/ 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
updatering af en række i access
Fra : Mark


Dato : 27-11-06 14:01

Hej
Jeg har skrevet det her i asp
set conn_ = Server.CreateObject("ADODB.Connection")

cst2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
server.mappath("db/testDB.mdb")

conn_.open cst2

set rs = Server.CreateObject("ADODB.Connection")

sql = "SELECT * FROM person WHERE personID = " & Request.QueryString("id")

rs.open sql, conn_, 1, 3

rs.Update

rsUpdate("email") = fixQuotes(Request.Form("email"))
rsUpdate("adresse") = fixQuotes(Request.Form("adresse"))
rsUpdate("postnr") = fixQuotes(Request.Form("postnr"))
rsUpdate.update
rsUpdate.close


og får flg fejl
Fejltype:

ADODB.Connection (0x800A0E78)

Handlingen er ikke tilladt, mens objektet er lukket.

/crm/redigerKunde.asp, line 59

linie 59 er rs.update der melder fejl

Er der nogle der kan finde ud af hvorfor jeg får den fejl?, jeg vil mene jeg
har åbnet for alt.



/Mark



 
 
Jens Gyldenkærne Cla~ (27-11-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 27-11-06 14:11

Mark skrev:

> set rs = Server.CreateObject("ADODB.Connection")

Her opretter du et postsæt med navnet rs.


> rs.open sql, conn_, 1, 3

Her åbner du dit postsæt.


> rs.Update

Nu beder du om at opdatere den aktuelle post i rs - men du har ikke
redigeret noget endnu.

Prøv med rs.Edit i stedet


> rsUpdate("email") = fixQuotes(Request.Form("email"))
> rsUpdate("adresse") = fixQuotes(Request.Form("adresse"))
> rsUpdate("postnr") = fixQuotes(Request.Form("postnr"))
> rsUpdate.update
> rsUpdate.close

Alle ovenstående linjer er forkerte - nu arbejder du pludselig med
variablen rsUpdate - der er en helt anden variabel end rs.

Du kan rette til rs("email") = Request.Form("email") etc.

- men generelt ville det være bedre at bruge en
opdateringsforespørgsel i stedet for cursoropdatering (som du
benytter nu). Din fixQuotes-funktion skal i øvrigt ikke bruges når
du opdaterer med en cursor.

Med en opdateringsforespørgsel opbygger du en sql-streng a la:

strSQL = "UPDATE person SET email = '" & fixQuotes(...) ... & "
WHERE personID = " & Request.querystring("id")
--
Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
eller Brønshøj, max 6000 pr. måned.
Kontakt pr. mail - nospam(at)gyros.dk
Jens Gyldenkærne Clausen

Mark (27-11-2006)
Kommentar
Fra : Mark


Dato : 27-11-06 14:38

>> rsUpdate("email") = fixQuotes(Request.Form("email"))
>> rsUpdate("adresse") = fixQuotes(Request.Form("adresse"))
>> rsUpdate("postnr") = fixQuotes(Request.Form("postnr"))
>> rsUpdate.update
>> rsUpdate.close
>
> Alle ovenstående linjer er forkerte - nu arbejder du pludselig med
> variablen rsUpdate - der er en helt anden variabel end rs.

Ved godt at "rsUpdate" Skulle have værest "rs" kun, det arbejde jeg også med
først med ændrede det lige inden jeg postede det her.


>
> Du kan rette til rs("email") = Request.Form("email") etc.
>
> - men generelt ville det være bedre at bruge en
> opdateringsforespørgsel i stedet for cursoropdatering (som du
> benytter nu). Din fixQuotes-funktion skal i øvrigt ikke bruges når
> du opdaterer med en cursor.
>
> Med en opdateringsforespørgsel opbygger du en sql-streng a la:
>
> strSQL = "UPDATE person SET email = '" & fixQuotes(...) ... & "
> WHERE personID = " & Request.querystring("id")
> --

oki.
Troede faktisk det var smartere og bedere at opdatere en række på den måde
som jeg ville gøre det, havde fra starten en "update person SET email...."

men det går jeg så tilbage til igen..

Takker for hjælpen Jens
/Mark



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408191
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste