Avatar billede jmc Nybegynder
11. juni 2002 - 16:39 Der er 22 kommentarer og
1 løsning

opdater hvis findes eller insert

Jeg har en fejl:
ADODB.Connection error '800a0e79'
Handlingen er ikke tilladt, mens objektet er åbent.
/wsite/index.asp, line 348

--------------------------------
348 er:     MM_content_STRING.Open 'strSQL_check', "DSN=xxxx"
--------------------------------


HELE KODEN:

<%' *** Opdater VISITOR TABEL
    '*** initialiser variable
    v_visiter_id = request.cookies("sitevisit")
    v_acum_id = 1
    v_side_id = request("s")
   
    strSQL_check= "Select * From visits WHERE visiter_id=" + v_visiter_id
    MM_content_STRING.Open 'strSQL_check', "DSN=xxxx"
   
If MM_content_STRING.BOF then '*** opret en ny

strSQL_new = "Insert into querys ("

strSQL_new = strSQL_new & "visiter_id, "
strSQL_new = strSQL_new & "side_id, "
strSQL_new = strSQL_new & "visits) "

strSQL = strSQL & "values( "

strSQL = strSQL & "v_visiter_id, "
strSQL = strSQL & "v_side_id, "
strSQL = strSQL & "v_acum_id)"

  MM_content_STRING.execute strSQL_new

else '*** updater en eksisterende

v_acum_id = Cint((rs_visiter_menu.Fields.Item("visits").Value) + 1)
   
strSQL_update = "Update querys set visits = " & replace(v_acum_id,"'","''") & " where visiter_id=" & v_visiter_id & " AND side_id= " & v_side_id & " "
   
            response.write strSQL_update
    MM_content_STRING.Execute(strSQL_update)
End If %>

--------------------------------

min connection string:
<%
Set MM_content_STRING = Server.CreateObject("ADODB.connection")
MM_content_STRING.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
                            "DBQ=" & Server.MapPath ("./") & "\content.mdb"
MM_content_STRING.Open
%>

--------------------------------

Jeg kan ikke genneskue hvad jeg skal gøre for at få den til at køre? Kan du komme med et bud giver det POINTS ;o)
Avatar billede tmceu Praktikant
11. juni 2002 - 16:43 #1
Hvilken database anvender du ?
Avatar billede jmc Nybegynder
11. juni 2002 - 16:45 #2
access
Avatar billede eagleeye Praktikant
11. juni 2002 - 18:45 #3
i første del af din SQL streng hedder den strSQL_new i anden del hedder den strSQL...Prøv med denne:

strSQL_new = strSQL_new & "visiter_id, "
strSQL_new = strSQL_new & "side_id, "
strSQL_new = strSQL_new & "visits) "

strSQL_new = strSQL_new & "values( "

strSQL_new = strSQL_new & "v_visiter_id, "
strSQL_new = strSQ_newL & "v_side_id, "
strSQL_new = strSQL_new & "v_acum_id)"
Avatar billede eagleeye Praktikant
11. juni 2002 - 18:47 #4
hmm ret : strSQL_new = strSQ_newL & "v_side_id, "
til : strSQL_new = strSQL_new & "v_side_id, "
Avatar billede jmc Nybegynder
12. juni 2002 - 08:07 #5
Tak fior rettelserne, men jeg har stadigt denne her fejl:
ADODB.Connection error '800a0e79'
Handlingen er ikke tilladt, mens objektet er åbent.
/wsite/index.asp, line 348

og det er denne linie: MM_content2_STRING.Open 'strSQL_check', "DSN=xxxx"

Jeg mener det må være noget med at jeg allerede har åbnet MM_content2_STRING i min connectionstring (se denne øverst). Hvis jeg sletter linien har jeg denne her fejl:

ADODB.Connection error '800a0bb9'

Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.

/wsite/index.asp, line 350
som er linien:
If MM_content2_STRING.BOF then '*** opret en ny
Avatar billede jmc Nybegynder
12. juni 2002 - 08:09 #6
sorry jeg fik lået et 2 ind fra en anden version(fil), det var:
If MM_content_STRING.BOF then '*** opret en ny
Avatar billede eagleeye Praktikant
12. juni 2002 - 08:39 #7
du åbner første gang her:

strSQL_check= "Select * From visits WHERE visiter_id=" + v_visiter_id
MM_content_STRING.Open 'strSQL_check', "DSN=xxxx"  'HER

hov i open skal ' ikke være det, sådan her:
MM_content_STRING.Open strSQL_check, "DSN=xxxx"
Avatar billede jmc Nybegynder
12. juni 2002 - 09:52 #8
ADODB.Connection error '800a0e79'
Handlingen er ikke tilladt, mens objektet er åbent.
/wsite/index.asp, line 348

linien: MM_content_STRING.Open strSQL_check, "DSN=xxxx"
Avatar billede eagleeye Praktikant
12. juni 2002 - 09:56 #9
Så  MM_content_STRING  bliver åbnet før linie 348..

Har du en linier før 348 hvor dette indgår: MM_content_STRING.Open

Hvis du er førdig med at bruger MM_content_STRING nede ved linie 348 kan du før du åbner igen lukke:

MM_content_STRING.Close
MM_content_STRING.Open strSQL_check, "DSN=xxxx"
Avatar billede jmc Nybegynder
12. juni 2002 - 10:04 #10
som før nævnt åbnedes den i min connectionsring:
<%
Set MM_content_STRING = Server.CreateObject("ADODB.connection")
MM_content_STRING.ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" & _
                            "DBQ=" & Server.MapPath ("./") & "content.mdb"
MM_content_STRING.Open
%>


hvis jeg marker linien ud er jeg tilbage til før nævnte fejl:


ADODB.Connection error '800a0bb9'
Argumenterne har en forkert type eller er uden for det angivne område, eller der er opstået en konflikt mellem dem.

/wsite/index.asp, line 350

If MM_content_STRING.BOF then '*** opret en ny

strSQL_new = "Insert into querys ("
osv. osv som ses øverst
Avatar billede eagleeye Praktikant
12. juni 2002 - 10:09 #11
Så MM_content_STRING  er en connection og ikke et recordset.
Hvis du ønsker at åbne et recordset i linie 348 så skal den se sådan ud:
RecordSet_Obj.Open strSQL_check, MM_content_STRING

I toppen skaæ være en linie:
Set RecordSet_Obj = Server.CreateObject("ADODB.RecordSet")
Avatar billede jmc Nybegynder
17. juni 2002 - 17:56 #12
fejlen er nu:
Microsoft VBScript runtime error '800a01a8'
Object required: 'visitor_Obj'
/wsite/index.asp, line 349

linie 349 er visitor_Obj.Open strSQL_check, MM_content_STRING

i koden:
strSQL_check= "Select * From visits WHERE visiter_id=" + v_visiter_id
    visitor_Obj.Open strSQL_check, MM_content_STRING
    response.write visitor_Obj
Avatar billede jmc Nybegynder
17. juni 2002 - 17:57 #13
hold da helt k.... hvor det driller
Avatar billede eagleeye Praktikant
17. juni 2002 - 18:01 #14
Du skal havde en linie:

Set visitor_Obj = Server.CreateObject("ADODB.RecordSet")

i toppen da visitor_Obj er et recordset du åbner.
Avatar billede jmc Nybegynder
17. juni 2002 - 23:59 #15
Tak eagleeye
Hvis du vil hjælpe mig over dette script, så giver jeg 30 points mere. I stedet for at skulle oprette et nyt spgml med det samme script. En mærkelig fejl som jeg har brugt MEGET tid på.

Fejl:
Select * From visiters WHERE visiters_id=4
Response object error 'ASP 0185 : 8002000e'
Missing Default Property
/WSITE/index.asp, line 0
A default property was not found for the object.

mit script ser nu sådan ud:

<%' *** Opdater VISITOR TABEL
    '*** initialiser variable
    v_visiter_id = request.cookies("sitevisit")
    v_acum_id = 1
    v_side_id = request("s")
   
    strSQL_check= "Select * From visiters WHERE visiters_id=" + v_visiter_id
        Set visitor_Obj = Server.CreateObject("ADODB.RecordSet")
        response.write strSQL_check
    visitor_Obj.Open strSQL_check, MM_content_STRING
    response.write visitor_Obj
   
If visitor_Obj.BOF then '*** opret en ny

strSQL_new="INSERT INTO [querys] ([visiter_id],[side_id], [visits])"
strSQL_new=strSQL_new & " VALUES('" & [v_visiter_id] & "','" & [v_visiter_id] & "','" & [v_acum_id] & "')"

visitor_Obj.Execute(strSQL_new)

else '*** updater en eksisterende

v_acum_id = Cint((rs_visiter_menu.Fields.Item("visits").Value) + 1)
   
strSQL_update = "Update querys set visits = " & replace(v_acum_id,"'","''") & " where visiter_id=" & v_visiter_id & " AND side_id= " & v_side_id & " "
   
            response.write strSQL_update
    MM_content_STRING.Execute(strSQL_update)
End If %>
Avatar billede eagleeye Praktikant
18. juni 2002 - 00:06 #16
hvis ([visiter_id],[side_id], [visits] er defineret som tal skal der ikke ' omkring  i VALUES:
VALUES(" & [v_visiter_id] & "," & [v_visiter_id] & "," & [v_acum_id] & ")"
Avatar billede jmc Nybegynder
18. juni 2002 - 00:14 #17
strSQL_new=strSQL_new & " VALUES(" & [v_visiter_id] & "," & [v_visiter_id] & "," & [v_acum_id] & ")"

giver samme fejl, men 4 er tom i databasen og derfor insert en ny record på plads 4:
er linien (If visitor_Obj.BOF then '*** opret en ny) ikke rigtig?

fejlen er nu:

Select * From visiters WHERE visiters_id=4
Response object error 'ASP 0185 : 8002000e'
Missing Default Property
/WSITE/index.asp, line 0
A default property was not found for the object.
Avatar billede eagleeye Praktikant
18. juni 2002 - 00:20 #18
Måske det er denne linie:
response.write visitor_Obj

Du prøver at udskrive et recordset... Hvilken kolonne ønsker du at udskrive der?
Avatar billede jmc Nybegynder
18. juni 2002 - 08:30 #19
rigtigt, hvis jeg fjerner dem er det:

Microsoft VBScript runtime error '800a01b6'
Object doesn't support this property or method: 'visitor_Obj.Execute'
/wsite/index.asp, line 358

denne linie?
visitor_Obj.Execute(strSQL_new)
Avatar billede jmc Nybegynder
18. juni 2002 - 10:44 #20
Hvis jeg fjerner og udskriver i stedet (som herunder):
response.write strSQL_new
'visitor_Obj.Execute strSQL_new

udskrives dette:
INSERT INTO [querys] ([visiter_id],[side_id], [visits]) VALUES(4,4,1)

hvorfor vil den ikke opdatere querys?
Avatar billede eagleeye Praktikant
18. juni 2002 - 10:58 #21
Ja men du kan ikke srive visitor_Obj.Execute da visitor_Obj er et recordset, du kan execute en SQL sætning med en Conenction og få resultata over i et recordet.

Set RecordsetNavn = MM_content_STRING.Execute(strSQL)
Avatar billede eagleeye Praktikant
18. juni 2002 - 10:59 #22
i stedet for denne linie:
'visitor_Obj.Execute strSQL_new

Skal du skrive:
MM_content_STRING.Execute strSQL_new
Avatar billede jmc Nybegynder
18. juni 2002 - 11:15 #23
Der var den
takker ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester