JA! Nu funkar min connection till databasen :e
Skrev in {MySQL ODBC 3.51 Driver} i driver=""
Tack!
Men nu strular detta.........
Set RecSet = Server.CreateObject("ABODB.Recordset")
Borde inte detta funka? :q
110 svar · 1 504 visningar · startad av BulletBoyCrime
JA! Nu funkar min connection till databasen :e
Skrev in {MySQL ODBC 3.51 Driver} i driver=""
Tack!
Men nu strular detta.........
Set RecSet = Server.CreateObject("ABODB.Recordset")
Borde inte detta funka? :q
OJ................... :r
jag hade visst skrivit ABODB, sorry...... jag vet ju att det heter ADODB. Tack! :birp
Fan...problemen slutar aldrig.....line 14 verkar nu vara felet.
Där står det bara
RecSet.AddNew
Jag får detta felmeddelandet:
ADODB.Recordset error '800a0cb3'
Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.
/crimea bay/registered.asp, line 14
Jag kör windows 98 och PWS, har detta något att göra med saken?
Du kan inte använda .AddNew för att lägga till data till en tabell i en MySQL-databas. Du måste använda riktiga SQL-frågor som INSERT för att lägga till data, UPDATE för att uppdatera information i en befintlig post, och DELETE för att radera poster.
(Kul att se att du kommer framåt i alla fall! :bire)
Mvh
Ah...............Då får jag ändra lite sidor kod............ :(
Men tusan vad härligt, nu kanske det funkar :e
@nders skrev:
(Kul att se att du kommer framåt i alla fall :bire)
:birp
Testade men fick nu detta felmeddelande:
Körningsfel i Microsoft VBScript error '800a01b6'
Objektet stöder inte egenskapen eller metoden.: 'INSERT'
/crimea bay/registered.asp, line 14
Vad ska jag göra då :q
Du ska visa kod. ;)
Men, jag tror att du missuppfattade mig. Du måste, istället för att använda .AddNew, skriva och exekvera en INSERT-fråga. Exempel:
strSQL = "INSERT INTO minTabell (fält1, fält2) VALUES ('" & variabel1 & "', '" & variabel2 & "')"
mittConnectionObjekt.Execute (strSQL)
Mvh,
Åh :r
Tack!
Lite väl mycket kod nu så varning, men jag gjorde såhär:
RecSet.INSERT INTO players (name, password, title, perk, realname, phone, country, cash, health, curhealth, wepskill, expskill, protect, spyskill, ccskill, hokskill, driskill, druskill, lawskill, energymax, energycur, honor) VALUES ('" & Name & "', '" & Password & "', '" & Title & "', '" & Perk & "', '" & Realname & "', '" & Phone & "', '" & Country & "', '" & Cash & "', '" & Health & "', '" & Curhealth & "', '" & wski & "', '" & eski & "', '" & pski & "', '" & sski & "', '" & cski & "', '" & hski & "', '" & dski & "', '" & duski & "', '" & lski & "', '" & enmax & "', '" & encur & "', '" & honor & "') Connect.Execute
Får detta felmeddelande:
Kompileringsfel i Microsoft VBScript error '800a0401'
Slut på programsats förväntas.
/crimea bay/registered.asp, line 145
RecSet.INSERT INTO players (name, password, title, perk, realname, phone blablabla..................
-------------------^
Vad är fel?
Jag kan tänka mig att nåt är fel med Connect.Execute, men det är den variablen jag använder för att connecta till databasen.....eller hur ska jag göra?
Jäklar......ursäkta för den långa koden..........
Om du tittar i mitt förra inlägg så ser du hur du ska använda INSERT INTO, dvs ungefär så här:
strSQL = "INSERT INTO players (name, password, title, perk, realname, phone, country, " & _
" cash, health, curhealth, wepskill, expskill, protect, spyskill, ccskill, hokskill, driskill, " & _
" druskill, lawskill, energymax, energycur, honor) VALUES ('" & Name & "', '" & Password & "', " & _
"'" & Title & "', '" & Perk & "', '" & Realname & "', '" & Phone & "', '" & Country & "', '" & Cash & "', " & _
" '" & Health & "', '" & Curhealth & "', '" & wski & "', '" & eski & "', '" & pski & "', '" & sski & "', " & _
"'" & cski & "', '" & hski & "', '" & dski & "', '" & duski & "', '" & lski & "', '" & enmax & "', '" & encur & "', '" & honor & "') "
Connect.Execute (strSQL)
Dock finns vissa klurigheter (duh ;) ) med att lägga till data med SQL-frågor. Jag ser att du har lagt till apostrofer (') runt varje värde i SQL-frågan. Det är (antagligen) inte rätt. Det ser nämligen olika ut beroende på vad fälten i tabellen är för datatyp.
Om fältet i tabellen är av typen varchar / char, datetime eller någon texttyp skall du ha apostrofer runt värdet.
Om fältet i tabellen är av taltyp skall du inte ha apostrofer.
För att exemplifiera:
strSQL = "INSERT INTO tabellen (talfält, textfält, datumfält) VALUES (3, 'Foo et bar', '2002-11-05')"
' eller, med asp-variabler
strSQL = "INSERT INTO tabellen (talfält, textfält, datumfält) VALUES (" & talvariabeln & ", '" & textvariabeln & "', '" & datumvariabeln & "')"
Ja, jag vet, det blir mycket strul, men det kommer man inte förbi.
Nästa steg är att se till att apostrofer går att ha i strängar att lägga in i tabellen, men också av säkerhetsskäl. Vi gör en liten funktion för detta.
Function SQLSafe(strText)
SQLSafe = Replace (strText, "'", "''")
End function
Funktionen ersätter alltså en apostrof med två. Den ändrar dock inte värdet, utan säger bara till SQL-tolken att här kommer en apostrof som tillhör strängen, den skall inte tolkas som slut på inmatning. Funktionen använder du så här:
strSQL = "INSERT INTO tabellen (talfält, textfält, datumfält) VALUES (" & talvariabeln & ", '" & [b]SQLSafe(textvariabeln)[/b] & "', '" & datumvariabeln & "')"
Man bör, av säkerhetsskäl, gör apostrofersättningen på alla värden du inte själv har koll på, dvs allt som kommer från ett formulär eller liknande.
Det blev ett ganska långt inlägg, men jag hoppas jag gett dig något att tugga på i alla fall. :bire
red: Hmm, det blev lite bred och oöverskådligt, jag delar upp det på några rader i stället.
Mvh,
Nåt att tugga på blev det iallafall.......ska testa ;) Tack! :birp
Står samma felmeddelande x( grrrrrr..............
Jag använder EditPlus, där står alla rader kod i syntaxfärg. När jag lägger in den första apostrofen i INSERT INTO så blir färgen grön.
Färgen håller i sig, även Connect.Execute blir grön.
Kan detta ha något att göra med saken? :q
Tack! :bire
första apostrofen?
Emmm, ja första värdet då.
VALUES ([u]'[/U]" & SQLSafeName
den understrukna alltså där, den apostrofen.
testa att [klammra] ditt kolumnnamn som heter "name".
Bifoga hela sql-satsen som du kör med nu kanske.
menar du i mySQL eller själva kodningen :q
Nån som kan svaret på det? Jag kan inte vara inne så mycket på nätet mer, så jag blir otåligare än vad jag redan är :e
men det kan inte hjälpas, kan nån svara :q