Avatar billede bremer Nybegynder
15. juni 2007 - 12:59 Der er 11 kommentarer og
2 løsninger

Problem med at lave en update til min database

Hej alle sammen, ville høre om I kunne hjælpe mig her!

Mit lille problem er, at gerne vil lave en update til min database som fortæller hvor mange "page views" der har været på min artikel side.

jeg har næste en tro kopi af dette scrip, men der bruger jeg bare access som database - måske er det der for dette script ikke virker!?

Min kode ser sådan her ud:

<%
if (Request.QueryString("id") & "") <> "" then
    SQLserveradr="XXX.com"
    SQLdatabase="XXX_db"
    SQLlogin="XX_dk"
    SQLpassword="XXXX"

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

    conStr = "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase
    conStr = conStr & ";uid="& SQLlogin &";pwd="& SQLpassword & ";OPTION=3"

    Conn.Open conStr

  objConn.Execute("update artikler set view = view + 1 where id = " & Request.QueryString("id"))
 
 
  strSQL = "SELECT * FROM artikler WHERE id = " & Request.QueryString("id")
  set rs = objConn.Execute(strSQL)
  if not rs.eof then
    overskrift = rs("overskrift")
   
  end if
  rs.Close
  set rs = nothing

  objConn.Close
  set objConn = nothing
else
  overskrift = "ikke specificeret"
end if
%>

Den fejl som fremkommer hedder sådan her:

Microsoft VBScript runtime error '800a01a8'

Object required: ''

/media/html/artikel_detalje.asp, line 17


Håber I kan hjælpe mig her... forstår ikke lige så meget af det :(
Avatar billede mitbrugernavn Praktikant
15. juni 2007 - 13:30 #1
det er din connection til db der skal være anderledes - ret selv stien til db og db navn:

<%
if (Request.QueryString("id") & "") <> "" then

  Database_Location = "stien til din db/din database.mdb"

Set Conn=Server.CreateObject("ADODB.Connection")
Set rs=Server.CreateObject("ADODB.RecordSet")
Set rsa=Server.CreateObject("ADODB.RecordSet")

Conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath(Database_Location)
Conn.Open

  objConn.Execute("update artikler set view = view + 1 where id = " & Request.QueryString("id"))
 
 
  strSQL = "SELECT * FROM artikler WHERE id = " & Request.QueryString("id")
  set rs = objConn.Execute(strSQL)
  if not rs.eof then
    overskrift = rs("overskrift")
   
  end if
  rs.Close
  set rs = nothing

  objConn.Close
  set objConn = nothing
else
  overskrift = "ikke specificeret"
end if
%>
Avatar billede a1a1 Novice
15. juni 2007 - 13:34 #2
denne linie

conStr = "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase
    conStr = conStr & ";uid="& SQLlogin &";pwd="& SQLpassword & ";OPTION=3"
skal ændres til en access connection string

f.eks.:
conStr = "Data Source=d:\home\FTPBrugernavn\db\database.mdb;Provider=Microsoft.Jet.OLEDB.4.0;"
Avatar billede bremer Nybegynder
15. juni 2007 - 14:10 #3
Men jeg ville gerne bruge MySql som database - ikke access...
Avatar billede erikjacobsen Ekspert
15. juni 2007 - 14:53 #4
Hvor definerer du objConn?
Avatar billede mitbrugernavn Praktikant
15. juni 2007 - 15:31 #5
Jeg troede at du havde en mysql og skulle have de i en acces, men forstår nu at det er omvendt - således:

StrConnection = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=sqlserveradresse; StrConnection = StrConnection & DATABASE=databasenavn;UID=brugernavn; PWD=password"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnection


  strSQL = "update artikler set view = view + 1 where id = " & Request.QueryString("id")
  set rs = Conn.Execute(strSQL)
set rs = nothing
 
  strSQL = "SELECT * FROM artikler WHERE id = " & Request.QueryString("id")
  set rs = Conn.Execute(strSQL)
  if not rs.eof then
    overskrift = rs("overskrift")
   
  end if
  rs.Close
  set rs = nothing

  rs.Close
  set rs = nothing
else
  overskrift = "ikke specificeret"
end if
Avatar billede mitbrugernavn Praktikant
15. juni 2007 - 15:32 #6
ups der er lidt ged i den - vi tager den igen igen

StrConnection = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=sqlserveradresse;  DATABASE=databasenavn;UID=brugernavn; PWD=password"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnection


  strSQL = "update artikler set view = view + 1 where id = " & Request.QueryString("id")
  set rs = Conn.Execute(strSQL)
set rs = nothing
 
  strSQL = "SELECT * FROM artikler WHERE id = " & Request.QueryString("id")
  set rs = Conn.Execute(strSQL)
  if not rs.eof then
    overskrift = rs("overskrift")
   
  end if
  rs.Close
  set rs = nothing

  rs.Close
  set rs = nothing
else
  overskrift = "ikke specificeret"
end if
Avatar billede mitbrugernavn Praktikant
15. juni 2007 - 15:37 #7
åhh - der var lige kommet for meget med

ups der er lidt ged i den - vi tager den igen igen

StrConnection = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=sqlserveradresse;  DATABASE=databasenavn;UID=brugernavn; PWD=password"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnection


  strSQL = "update artikler set view = view + 1 where id = " & Request.QueryString("id")
  set rs = Conn.Execute(strSQL)
set rs = nothing
 
  strSQL = "SELECT * FROM artikler WHERE id = " & Request.QueryString("id")
  set rs = Conn.Execute(strSQL)
  if not rs.eof then
    overskrift = rs("overskrift")
   
  end if
    rs.Close
  set rs = nothing
else
  overskrift = "ikke specificeret"
end if
Avatar billede bremer Nybegynder
15. juni 2007 - 17:03 #8
Hej igen, :)

Jeg får en fejl - som hedder noget i stil med

Microsoft VBScript compilation error '800a03ea'

Syntax error

/media/html/artikel_detalje.asp, line 26

else
^
Avatar billede mitbrugernavn Praktikant
15. juni 2007 - 17:09 #9
StrConnection = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=sqlserveradresse;  DATABASE=databasenavn;UID=brugernavn; PWD=password"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConnection


  strSQL = "update artikler set view = view + 1 where id = " & Request.QueryString("id")
  set rs = Conn.Execute(strSQL)
set rs = nothing
 
  strSQL = "SELECT * FROM artikler WHERE id = " & Request.QueryString("id")
  set rs = Conn.Execute(strSQL)
  if not rs.eof then
    overskrift = rs("overskrift")
else
  overskrift = "ikke specificeret"
  end if
    rs.Close
  set rs = nothing
Avatar billede bremer Nybegynder
15. juni 2007 - 17:17 #10
TOP $ min ven - mange tak for din hjælp
Avatar billede mitbrugernavn Praktikant
15. juni 2007 - 17:19 #11
det var så lidt - god weekend
Avatar billede erikjacobsen Ekspert
15. juni 2007 - 17:20 #12
Når der ikke kommer et recordset ud - det gør der ikke ved en update - så er

    set rs = Conn.Execute(strSQL)
    set rs = nothing

overflødigt. Alt rigeligt:

    Conn.Execute(strSQL)
Avatar billede mitbrugernavn Praktikant
15. juni 2007 - 17:37 #13
ja selvfølgelig - det er vist på tide at lukke ned ;-))
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