Hej! Sitter och pillar med mitt första script som ska ansluta till MySQL och lägga till 3 poster från ett formulär. Men det vill inte fungera. Scriptet är taget från idg.se (http://www.idg.se/webstudio/pub/article.asp?id=116)
Den är ju skriven för en accses-databas, men gissade på att det även gick att använda till MySQL, genom att jag bytta ut Connect.Open raden till MySQL's variant. Men ack nej.
Felmeddelandet som jag får är:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
En OLE DB-åtgärd i flera steg genererade fel. Kontrollera alla OLE DB-statusvärden som finns tillgängliga. Inget arbete utfördes.
/Fredde/data/add.asp, line 17
Och koden är som följer:
<html>
<!-- #include virtual="/Fredde/data/adovbs.inc" -->
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={MySQL};SERVER=localhost;"+ "DB=fredde;PORT=3306;UID=xxxx;PWD=;"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM adresser"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
RecSet.AddNew
RecSet("Namn") = Request.Form("namn")
RecSet("Efternamn") = Request.Form("efternamn")
RecSet("Tele") = Request.Form("tele")
RecSet.Close
Connect.Close%>
Följande uppgifter har nu lagts till i databasen:<p>
Förnamn:<br><b><% =Request.Form("fornamn") %></b><p>
Efternamn:<br><b><% =Request.Form("efternamn") %></b><p>
Adress:<br><b><% =Request.Form("adress") %></b><p>
Lägg till <a href="default.asp">fler poster i adressboken</a>.
</html>
Och rad 17 är
RecSet("Namn") = Request.Form("namn")
Hoppas att ni kan hjälpa migmed detta. Skulle även vara intresserad av länkar till sidor som förklar hur man gör en koppling, och då gärna använda MySQL's språk (om det nu är ett speciellt)
Så vad gör då koden? Jo för det första ser du ju att det inte går åt lika mycket rader dvs det blir lättare att begripa vad man skriver. För det andra vete tusan om man kan uppdatera MySQL med ado.
dim deklarerar (talar om för asp scriptet) att jag tänker använda det här namnet som en sträng. str lägger jag till före för att jag ska komma ihåg att det är en sträng (dvs text) jag sparar i allihop.
efter det tilldelar jag strNamn osv det värde i formuläret jag vill de ska ha.
Efter det använder jag mig av SQL för att uppdatera databasen. Vill du köra MySQL som dbs ska du bergis använda sql istället för ado. Connect.execute sql betyder att jag säger åt connect objektet att exekvera (köra) sql.
,,128 säger åt sidan att inte skapa ett recordset (detta ökar prestandan avsevärt.