/ 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
Database problem
Fra : Ryan Jeppesen


Dato : 02-03-01 23:20

Halløj i NGen

Jeg har et lille problem med at smide noget i en access database, jeg
har haft det til at virke, men så begynte jeg at pille og yupti, så
kan jeg ikke få det til at virke igen :(

Jeg får følgende fejl meddelse: ADODB.Recordset (0x800A0BB9)
Argumenterne har en forkert type eller er uden for det angivne område,
eller der er opstået en konflikt mellem dem.
/fremtiden-add.asp, line 95

Hvis jeg bruger: <%=Err.Number%>: <%=Err.Description%> i min kode så
får jeg følgende fejl meddelse: "Handlingen er ikke tilladt, mens
objektet er lukket. "

Hvad for en af dem skal man tro på?

Min kode ser sådan her ud:

<%
Dim Conn, RS, adOpenStatic,adLockOptimistic
On Error Resume Next

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.Mappath ("db/db.mdb")
Set RS = Server.CreateObject("ADODB.Recordset")
LINJE 95: RS.Open "SELECT * FROM fremtiden",
Conn,adOpenStatic,adLockOptimistic

RS.AddNew
RS ("dato") = Now()
RS ("navn") = Request("navn")
RS ("kommentar") = Request("vision")
RS.Update
If Err.Number = 0 Then

%>
<CENTER>
<p>
<B>Tak</B>
<BR><BR>
Din fremtids vision er nu gemt og kan læses af alle Du kan
læse dit
indl&aelig;g <a href="fremtiden-read.asp">HER</a>. </p>
</CENTER>
<% Else %>
Der opstod en fejl #<%=Err.Number%>: <%=Err.Description%>

</td>
</tr>

<%
Conn.close
Set Conn = Nothing
%>
<% End If %>
<% End If %>

Datatyperne er sat til det rigtige i tabellen

Håber der er nogen der kan hjælpe mig

mvh Ryan

 
 
Allan Ebdrup (03-03-2001)
Kommentar
Fra : Allan Ebdrup


Dato : 03-03-01 12:53

"Ryan Jeppesen" <paradise@worldonline.dk> skrev i en meddelelse
news:3aa01a8e.29460121@news.image.dk...
> Jeg har et lille problem med at smide noget i en access database, jeg
> har haft det til at virke, men så begynte jeg at pille og yupti, så
> kan jeg ikke få det til at virke igen :(
[KLIP]
> Min kode ser sådan her ud:
>
> <%
> Dim Conn, RS, adOpenStatic,adLockOptimistic
> On Error Resume Next
[KLIP]

Hej Ryan
1) adOpenStatic og adLockOptimistic er konstanter normalt defineret i filen
adovbs.inc (eller vha. META). Hvis du bare dimmer dem vil de have værdien 0,
dette er ikke deres "rigtige" værdi. Find filen adovbs.inc og inkluder den
med ServerSide Includes (SSI)

2) Grunden til at du får din fejl er at du ikke får åbnet din connection
korrekt pga. problemet beskrevet i 1). Dette opdager du dog ikke fordi du
benytter "On Error Resume Next". Slå det fra (fjern det).
"On Error Resume Next" bruges til aktiv fejlhåndtering i projekter hvor
robusthed og god fejlhåndtering har høj prioritet. Man bruger det på steder
i koden hvor man ved at man kan risikere at få en fejl hvis fx et komponent
mangler på serveren el. lig. Det er typisk først noget man slår til EFTER
alt udvikling er lavet når skidtet virker som det skal.
I mindre projekter hvor du ikke flytter fra server til server (eller
loadbalancing i webfarm), hvor du ikke benytter "hjemmelavede" komponenter
og hvor du kører på en access database giver det oftest meget lidt mening at
benytte error handling. Det kan være at skyde over målet men oftest vil det
være udtryk for at man har lavet noget dårligt kode at man er nødt til at
andevende "On Error Resume Next".
Dermed ikke sagt at man aldrig bør bruge det, man skal bare vide 99% hvad
man gør, og overveje 2 gange om det er nødvendigt. Man komplicerer sin kode
unødvendigt og det er ofte udtryk for et forsøg på at skyde en genvej der
ender med at blive en kæmpe omvej.

3) Brug også <% OPTION EXPLICIT %> i starten af din kode, det kan også redde
dig fra en masse fejlfindings kvaler.

MVH
Allan Ebdrup
http://www.ti-fire.dk



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

Månedens bedste
Årets bedste
Sidste års bedste