Avatar billede roslev Nybegynder
26. april 2000 - 07:22 Der er 17 kommentarer og
2 løsninger

Indsætte i MySQL-DB fra ASP

Nedenstående virker fint med en Access database, men nu er jeg skiftet til MySQL og får nu:
"ODBC driver does not support the requested properties"
Hvad skal der gøres for at MySQL vil indsætte date'ene?

<%
set rs = server.createobject("adodb.recordset")
rs.open "T_FEST", conn, 3, 3
rs.addnew

If request("navn") = "" Then
Response.Redirect "tryagain.asp"
End if

If request ("pp") = "no" and request ("po") = "yes" then
Response.Redirect "tryagain2.asp"
end if

rs("navn") = request("navn")
rs("mail") = request("mail")
If request("mail") = "" Then
rs("mail") = "none"
end if
rs("pp") = request("pp")
rs("po") = request("po")
rs("comment") = request("comment")
rs.update
rs.close
set rs = nothing
conn.close
set conn = nothing

response.redirect "mystatus.asp"
%>
Avatar billede roslev Nybegynder
26. april 2000 - 07:24 #1
...det er linien:
rs.open "T_FEST", conn, 3, 3
-der giver fejlen!
Avatar billede dannymoeller Nybegynder
26. april 2000 - 11:11 #2
Ja det er den der giver den første fejl.

Du skal først lave en connection
oConn = server.createobject("ADODB.connection")
set rs = server.createobject("ADODB.recordset")
så skal du lave en sql-sætning, med en update
SQL="UPDATE tabelnavn SET her skal værdierne stå fx: pp = "&request("pp")&" WHere et eller andet unikt, så det ikke er alle records der bliver opdateret"
set rs = oConn.execute(SQL)
Avatar billede roadkill Nybegynder
26. april 2000 - 11:12 #3
Har du installeret en ODBC-driver til MySQL...?
Avatar billede roslev Nybegynder
26. april 2000 - 11:27 #4
dannymoeller: prøver det lige!
roadkill: jep, og jeg kan sagtens lave udtræk fra DB...
Avatar billede roslev Nybegynder
26. april 2000 - 12:14 #5
Hvordan skal min SQL-fætter se ud? Har prøvet:
SQL = "UPDATE t_fest SET navn = "&request("navn")&", mail = "&request("mail")&", comment = "&request("comment")&", pp = "&request("pp")&", po = "&request("po")&""
-men det virker ikke!
(..måske skulle man have ventet til man var lidt rutineret i ASP inden man kastede sig over det her :-)
Avatar billede sjensen Nybegynder
26. april 2000 - 12:46 #6
prøv med

SQL = "UPDATE t_fest SET navn = '"&request("navn")&"', mail = '"&request("mail")&"', comment = '"&request("comment")&"', pp = '"&request("pp")&"', po = "&request("po")
Avatar billede sjensen Nybegynder
26. april 2000 - 12:47 #7
upd der var lige en enkelt smutter:

SQL = "UPDATE t_fest SET navn = '"&request("navn")&"', mail = '"&request("mail")&"', comment = '"&request("comment")&"', pp = '"&request("pp")&"', po = '"&request("po")

Avatar billede dannymoeller Nybegynder
26. april 2000 - 12:56 #8
Dem der er text-strenge skal  have '(enkeltplinger), mens andre ikke skal.
Kan du ikke skrive hvad fejlen du får er.
Avatar billede roslev Nybegynder
26. april 2000 - 13:37 #9
oh, those damn enkeltplinger's :-)
sjensen: Jeg går ud fra at der skal &"'" i slutningen af det du har skrevet?!?

Nå, du ser det således ud:
<%

    SQLserveradr="localhost"
    SQLdatabase="fest"   
   
    Set Conn = Server.CreateObject("ADODB.Connection")
    set rs = server.createobject("ADODB.recordset")

    Conn.Open "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase
%>
<%
SQL = "UPDATE t_fest SET navn = '"&request("navn")&"', mail = '"&request("mail")&"', comment = '"&request("comment")&"', pp = '"&request("pp")&"', po = '"&request("po")&"'"
%>
<%
set rs = Conn.execute(SQL)
rs.update
%>
<%
rs.close
set rs = nothing
conn.close
set conn = nothing

response.redirect "mystatus.asp"
%>

fejl:
Operation is not allowed when the object is closed
-i linien rs.update!
Avatar billede sjensen Nybegynder
26. april 2000 - 14:26 #10
roslev,

fjern linie rs.update

Du har sat updaten ind i sql og udført den med conn.execute(sql), så rs.update skal ikke bruges.
Avatar billede sjensen Nybegynder
26. april 2000 - 14:51 #11
vedr. det med at sætte &"'" i slutningen, så er jeg faktisk ikke sikker på at det er nødvendigt. Du ska tænke på at det du gør er at opbygge en tekststreng du sætter ind i variablen SQL og selve tekststrengen skal ikke indeholde en afsluttende "pling" Hverken dobbelt eller enkelt, men hvis PO er et tekstfelt skal indholdet selvfølgeligt omkranses af "plinger"

Du ville kunne teste det ved at skrive response.write sql og så se teksten på skærmen.

Avatar billede dannymoeller Nybegynder
26. april 2000 - 14:51 #12
Ja du skal bare fjerne rs.update
Avatar billede dannymoeller Nybegynder
26. april 2000 - 14:53 #13
sjensen-->Det er ike nødvendigt at sætte &"" i slutningen, jeg syntes bare det er pænere , så man kan se at her slutter strengen helt.
Avatar billede dannymoeller Nybegynder
26. april 2000 - 14:54 #14
det er dog her nødvendigt da request("po") er en streng ;-)
Avatar billede roslev Nybegynder
26. april 2000 - 16:32 #15
nu giver den ingen fejlmeldinger og redirecter fint, men der bliver ikke sat data i db'en - har også prøvet select * from t_fest; fra mysql-promten...
Kan man overhovedet bruge update når der ikke er nogen data i forvejen eller skal man bruge insert?
...tilføjer lige 50 point for at holde gejsten oppe :-)
Avatar billede sjensen Nybegynder
27. april 2000 - 09:38 #16
roslev,

Update kan du KUN bruge til at opdatere det der er der i forvejen. Insert bruger du til at oprette det første gang.

Du skal derfor bruge select count(*) as antal from yyy where zzz = ttt for at checke om det findes i forvejen. Hvis antal er 0 findes det ikke og du skal bruge insert og hvis antal er 1 eller mere skal du bruge update. Du ville formentligt kunne prøve med update og ved fejl afgøre at det er fordi der ikke findes noget og så bruge insert, men det er ikke den "pæne" måde at gøre det på.

Avatar billede roslev Nybegynder
27. april 2000 - 09:46 #17
Jeg har lige fået det til at virke for 10 min. siden.
SQL = "INSERT INTO t_fest SET navn = '"&request("navn")&"'...osv. var hvad der skulle til.
..men mange tak for hjælpen.
Avatar billede roslev Nybegynder
27. april 2000 - 13:36 #18
øhhh, har i styr på hvordan man indsætter en replace funtion til ' og " tegn? (..kan godt oprette i nyt spm med nogle point hvis det er nødvendigt)
Avatar billede roslev Nybegynder
27. april 2000 - 20:25 #19
nevermind...figured it out!
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
Computerworld tilbyder specialiserede kurser i database-management

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