/ 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
Det giver ingen mening - ADODB.Recordset e~
Fra : Jan R


Dato : 07-09-03 21:40

Hej NG

Hele eftermiddagen har jeg siddet med et problem, som på ingen måde giver
nogen mening. Jeg skal tilføje en ny post til et Recordsset, som jeg gør ved
nedenstående kode. Men ved linien "oRs("LineTotalTax") = ..." får jeg den
velkendte fejl "ADODB.Recordset error '800a0cc1' Elementet kan ikke findes i
den samling, der svarer til det anmodede navn eller ordenstal."

Men det underlige er, at feltet findes. Jeg har sammenlignet en milliard
gange og feltet hedder det samme i koden og i databasen. Jeg har prøvet at
ændre feltnavn uden at det har hjulpet noget. Jeg har prøvet at lave en helt
ny database fra bunden, blot for at opleve at fejlen opstår præcis samme
sted igen.

Hvad er der galt? Hvorfor fejler den netop dér? Hvordan kommer jeg uden om
problemet?


--- klip ---

set oRs = server.CreateObject("ADODB.Recordset")
oRs.CursorLocation = adUseServer
oRs.CursorType = adOpenKeyset
oRs.LockType = adLockoptimistic

strSQL = "Select * FROM Lines"
oRs.Open strSQL, oConn, , , adCmdText

oRs.AddNew
oRs("ClientID") = intClientID
oRs("GroupID") = intGroupID
oRs("UserID") = intUserID
oRs("LineDate") = dateLine
oRs("LineText") = strLineText
oRs("LineHours") = intLineHours
oRs("LineHourlyRate")= intLineHourlyRate
oRs("LineTotal") = intLineHours * intLineHourlyRate
oRs("LineTotalTax") = intLineHours * intLineHourlyRate * dblTaxRate
oRs("LineNotes") = strLineComments
oRs.Update

set oRs = nothing

--- klip ---

Mvh
Jan R.



 
 
Jan R (07-09-2003)
Kommentar
Fra : Jan R


Dato : 07-09-03 22:11


"Jan R" <SLET.janromme@SLET.hotmail.com.SLET> skrev i en meddelelse
news:3f5b97a6$0$54776$edfadb0f@dread11.news.tele.dk...

> Hvad er der galt? Hvorfor fejler den netop dér? Hvordan kommer jeg uden om
> problemet?


Jeg har løst problemet selv ...


Mvh
Jan R.



Jens Gyldenkærne Cla~ (07-09-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 07-09-03 22:30

Jan R skrev:

> Jeg har løst problemet selv ...

Hvordan? Svaret kunne komme andre til gavn.
--
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

Jan R (08-09-2003)
Kommentar
Fra : Jan R


Dato : 08-09-03 13:25

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns93EFEEFA87549jcdmfdk@gyrosmod.cybercity.dk...
> Jan R skrev:
>
> > Jeg har løst problemet selv ...
>
> Hvordan? Svaret kunne komme andre til gavn.

Jo ser du...

I den kode jeg havde klippet ind, havde jeg fjernet et par enkle linier, for
at gøre det hele mere gennemskueligt for jer. Min faktiske kode så nogle
lunde sådan ud

oRs("LineTotal") = intLineHours * intLineHourlyRate
dblTaxRate = GetCompanyField(intGroupID, "TaxRate", oConn)
dblTaxRate = 1 + dblTaxRate
oRs("LineTotalTax") = intLineHours * intLineHourlyRate * dblTaxRate

Hvor GetCompanyField er en funktion som bl.a. også benytter et objektet
kaldet oRs, men jeg havde glemt at skrive "Dim oRs" i funktionen, hvilket
gjorde, at den globale oRs blev overskrevet af funktionens oRs (som var en
helt anden tabel) og derfor kunne den selvfølgelig ikke finde feltet
LineTotalTax, som ikke findes i den tabel funktionen GetCompanyField
arbejder med.

Giver det nogen mening, eller skal jeg uddybe?

Anyways - efterfølgende kan man tage sig til hovedet og tænke, hvordan kan
jeg være så dum?!?!?

Mvh
Jan R.



Jens Gyldenkærne Cla~ (08-09-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 08-09-03 20:27

Jan R skrev:

> Giver det nogen mening, eller skal jeg uddybe?

Det giver fin mening - tak for forklaringen.

> Anyways - efterfølgende kan man tage sig til hovedet og tænke,
> hvordan kan jeg være så dum?!?!?

Bruger du Option Explicit? Jeg er egentlig ikke helt sikker på at
den ville have forhindret fejlen i dette tilfælde, men det er under
alle omstændigheder en god ide at tvinge sig til at erklære alle
variable (fx ved at benytte Option Explicit).
--
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

Jan R (09-09-2003)
Kommentar
Fra : Jan R


Dato : 09-09-03 10:18


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev i en meddelelse
news:Xns93F0DA47C2DC6jcdmfdk@gyrosmod.cybercity.dk...
> Jan R skrev:
>
> > Giver det nogen mening, eller skal jeg uddybe?
>
> Det giver fin mening - tak for forklaringen.

Det var så lidt


> Bruger du Option Explicit? Jeg er egentlig ikke helt sikker på at
> den ville have forhindret fejlen i dette tilfælde, men det er under
> alle omstændigheder en god ide at tvinge sig til at erklære alle
> variable (fx ved at benytte Option Explicit).

Lige i dette tilfælde har jeg ikke brugt options explicit, men jeg tror
heller ikke at det ville gøre nogen forskel, idet oRs variablen allerede
skulle være declared tidligere i scriptet.

Jeg har lavet meget om i scriptet siden, så jeg orker ikke lige at afprøve
det.

Mvh

Jan R.



Torben Brandt (07-09-2003)
Kommentar
Fra : Torben Brandt


Dato : 07-09-03 22:19

Jan R wrote:
> Hele eftermiddagen har jeg siddet med et problem, som på ingen måde giver
> nogen mening. Jeg skal tilføje en ny post til et Recordsset, som jeg gør ved
> nedenstående kode. Men ved linien "oRs("LineTotalTax") = ..." får jeg den
> velkendte fejl "ADODB.Recordset error '800a0cc1' Elementet kan ikke findes i
> den samling, der svarer til det anmodede navn eller ordenstal."
>
> Men det underlige er, at feltet findes. Jeg har sammenlignet en milliard
> gange og feltet hedder det samme i koden og i databasen. Jeg har prøvet at
> ændre feltnavn uden at det har hjulpet noget. Jeg har prøvet at lave en helt
> ny database fra bunden, blot for at opleve at fejlen opstår præcis samme
> sted igen.
>
> Hvad er der galt? Hvorfor fejler den netop dér? Hvordan kommer jeg uden om
> problemet?

Har du prøvet at skrive
Set oRS = oConn.Execute("SELECT LineTotalTax FROM Lines")
Response.Write oRS("LineTotalTax")
for at se om det giver en fejl? Det burde det jo ikke, som du beskriver
indholdet af databasen.

/Torben


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

Månedens bedste
Årets bedste
Sidste års bedste