Avatar billede mccrack.dk Nybegynder
16. december 2002 - 11:37 Der er 4 kommentarer og
1 løsning

Problem med UPDATE og MySQL

Hej,
Jeg har et problem med følgende "Log ind" kode:

<%
Set DataConn = Server.CreateObject("ADODB.Connection")
DataConn.Open "Driver={MySql}; Server=localhost; Port=3306; Option=131072; Stmt=; Database=database; Uid=Test; Pwd=Test;"

Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "Select * From Medlemmer Where Brugernavn = '" & Request("Brugernavn") & "' And Adgangskode = '" & Request("Adgangskode") & "'"
RS.Open SQL, DataConn, 1, 3

If (RS.EOF Or RS.BOF) Then
  Response.Redirect("fejl.asp")
Else
  RS("Point") = RS("Point") + 5
  Session("Id") = RS("Id")
  RS("Onlinetidspunkt") = Now()
End If

RS.Update <----- FEJL!
RS.Close
Set RS = Nothing

DataConn.Close
Set DataConn = Nothing

Response.Redirect("Velkommen.asp")
%>

Jeg får følgende fejlmeddelelse:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
Forespørgselsbaseret opdatering mislykkedes, fordi den række, der skulle opdateres, ikke kunne findes.

Jeg har selv prøvet en masse kombinationer men kan ikke få det til at virke... Det skal lige siges at ovenstående kode virkede fint sammen med en MS Access DB. Problemet opstod idet jeg skiftede til en MySQL DB

Håber nogen har en forklaring...

Mvh.
Henrik
Avatar billede dark-mixer Nybegynder
16. december 2002 - 11:48 #1
Der er forskel på om man bruger MS Access eller MySQL databaser.
MySQL understøtter ikke Recordset i samme omfang som Access.
Derfor bliver du nødt til at køre det som en Connection istedet.

<%
Set DataConn = Server.CreateObject("ADODB.Connection")
DataConn.Open "Driver={MySql}; Server=localhost; Port=3306; Option=131072; Stmt=; Database=database; Uid=Test; Pwd=Test;"

SQL = "Select * From Medlemmer Where Brugernavn = '" & Request("Brugernavn") & "' And Adgangskode = '" & Request("Adgangskode") & "';"

Set rs = DataConn.Execute(SQL)
If (rs.BOF or rs.EOF) Then
Response.Redirect("fejl.asp")
Else
Session("Id") = rs("Id")
Point = rs("Point") + 5
newSQL = "UPDATE `Medlemmer` SET `Point`='" & Point & "', `Onlinetidspunkt`='" & Now() & "' WHERE `Brugernavn`='" & Request("Brugernavn") & "' And `Adgangskode`='" & Request("Adgangskode") & "';"
DataConn.Execute newSQL
End If
DataConn.Close
set DataConn = Nothing
Response.Redirect("Velkommen.asp")
%>
Avatar billede mccrack.dk Nybegynder
16. december 2002 - 12:50 #2
Det havde jeg jo nok lidt på fornemmelsen, men jeg håbede på en nemmere løsning...

...men hvorfor kan jeg så køre følgende kode uden problemer med MySQL?
<%
  SQL = "Select * From Medlemmer"
  RS.Open SQL, DataConn, 1, 3
  RS.AddNew
  RS("Brugernavn") = Brugernavn
  RS("Adgangskode") = Adgangskode
  RS("Fornavn") = Fornavn
  RS("Efternavn") = Efternavn
  RS("Oprettelsestidspunkt") = Now()
  RS.Update
  RS.Close
  Set RS = Nothing
%>
Avatar billede dark-mixer Nybegynder
16. december 2002 - 20:03 #3
Det kan du da der er forskel på at oprette en ny post og opdatere en allerede eksisterende post. Når du tilføjer en ny sker der egentlig ikke noget før update kommandoen køres, hvorimod hvis du skal opdatere en allerede eksisterende har du udvalgt en enkelt record, som skal "holdes" i hukommelsen. Dette er dog ikke muligt med en enkelt record. Derfor får du en fejl når du køre update, som siger at den der ikke er valgt nogen record.. eller noget i den stil.
Avatar billede mccrack.dk Nybegynder
16. december 2002 - 20:22 #4
Mange tak for hjælpen...

Mvh.
Henrik
Avatar billede lund_dk Praktikant
30. juli 2006 - 15:06 #5
Naah, nu fucker hele mit site op med min conn string
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