Avatar billede fedespil.dk Nybegynder
02. november 2002 - 20:12 Der er 4 kommentarer og
1 løsning

At opdatere en MySQL-tabel med ASP

Jeg har konverteret en Access-database til MySQL; alt virker, som det skal - bortset set fra at jeg ikke længere kan opdatere databasen via ASP.

Den gamle kode for at opdatere data (Access-database):

<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../db/fatgames-cs.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
   
sql = "UPDATE nyheder SET title = '" & request.form("title") & "'"
sql = sql & ", nyhed= '" & request.form("nyhed") &"'"
sql = sql & ", smiley= '" & request.form("smiley") &"'"
sql = sql & "WHERE Id = " & request("ID")
Set rs = Conn.Execute (sql)
Conn.Close %>

Den nye kode (MySQL-database):

<%
strDSN = "driver={MySQL};server=hemmelig;Database=hemmelig;uid=hemmelig;pwd=hemmelig"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN
   
sql = "UPDATE nyheder SET title = '" & request.form("title") & "'"
sql = sql & ", nyhed= '" & request.form("nyhed") &"'"
sql = sql & ", smiley= '" & request.form("smiley") &"'"
sql = sql & "WHERE Id = " & request("ID")
Set rs = Conn.Execute (sql)
Conn.Close %>

Den gamle til Access-database virkede, som den skulle, men den nye kommer med følgende fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e57'

[TCX][MyODBC]SQLBindParameter not used for all parameters

Microsoft OLE DB Provider for ODBC Drivers error '80040e57'

[TCX][MyODBC]SQLBindParameter not used for all parameters

Ellers virker alt andet, som det skal - hvad kan der være i vejen?

På forhånd tak for svarene.
Avatar billede eagleeye Praktikant
02. november 2002 - 22:52 #1
Er Id kolonnen sat til primary key i tabellen ?

Prøv evt og afslut SQL sætningen med ;
sql = sql & "WHERE Id = " & request("ID") & ";"
Avatar billede runesoft Nybegynder
04. november 2002 - 13:06 #2
jeg ville nok også sætte et mellemrum ind før where:
sql = sql & " WHERE Id = " & request("ID") & ";"
Avatar billede fedespil.dk Nybegynder
04. november 2002 - 21:43 #3
Oki, prøver det lige - har desværre ikke haft så meget tid de sidste par dage, men hvis I kender andre grunde - evt. software-opdateringer eller lign., må I meget gerne bidrage.

På forhånd tak for hjælpen.
Avatar billede eagleeye Praktikant
04. november 2002 - 23:19 #4
Prøv at replace ' med to '' i strengene:


sql = "UPDATE nyheder SET title = '" & replace(request.form("title"),"'","''") & "'"
sql = sql & ", nyhed= '" & replace(request.form("nyhed"),"'","''") & "'"
sql = sql & ", smiley= '" & replace(request.form("smiley"),"'","''") & "'"
sql = sql & " WHERE Id = " & request("ID")
Conn.Execute (sql)
Avatar billede eagleeye Praktikant
05. november 2002 - 00:01 #5
Hvad prøver du at indsætte af data. Jeg har søgt lidt på google.com og der er nogle som skriver at de får fejlen hvis det er lange strenge som bliver lagt ind i for kort eller forkert type data type i kolonne text/notat felt.

Hår du prøve at indsætte et par små strenge:


sql = "UPDATE nyheder SET title = 'Test'"
sql = sql & ", nyhed= 'ntest'"
sql = sql & ", smiley= 'stest'"
sql = sql & " WHERE Id = " & request("ID")
Conn.Execute (sql)

For at se om det virker..?
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