Avatar billede lunder Nybegynder
12. juli 2001 - 16:25 Der er 4 kommentarer og
1 løsning

ASP og MySQL

Hvordan lærer jeg at bruge mySQL til ASP
Jeg har brugt Access i al for lang tid nu og syntes det ville være sjovt at prøve noget nyt!

Hilsen Jeppe
nocture@nocture.dk
Avatar billede gizmo-gizmo Nybegynder
12. juli 2001 - 16:27 #1
download nogle scripts rundt omkring og lær de forskellige query´s
Avatar billede okay Nybegynder
12. juli 2001 - 16:30 #2
ok vil du lærer så er det her stedet :o)

http://asp.superexpert.com/asp/tutorials/default.aspx
Avatar billede lunder Nybegynder
12. juli 2001 - 16:37 #3
Adressen virker ikke!
Avatar billede alvion Nybegynder
12. juli 2001 - 22:51 #4
Du bruger MySQL på samme måde som du bruger Access, nemlig via ODBC. Der er dog et par ting du skal være opmærksom på:

Din connection-string skrives således

dsn = \"driver={MySql};server=adrese-på-server;database=databasenavn;uid=brugernavn;pwd=password\"

Ellers connecter du på samme måde, f.eks:

dsn = \"driver={MySql};server=localhost;database=mindb;uid=root;pwd=xyzzy\"
set con = server.createobject(\"ADODB.Connection\")
con.open(dsn)

sql = \"select * from dintabel\"
set rs = con.execute(sql)
do while not rs.eof
  ...
  rs.movenext
loop
rs.close
set rs = nothing
con.close
set con = nothing


En anden ting du skal være meget opmærksom på: Brug ALDRIG recordsets til at foretage indsættelser, opdateringer og sletning i en MySQL database. Der er en lang og indviklet forklaring, som det tog mig og Monty ca. ½ år at finde (kort forklaring: Der er uoverensstemmelser i måden ADODB og MySQL bruger ODBC). Brug istedet sql-sætninger.

Dvs. istedet for

sql = \"select * from dintabel where id = 8\"
rs.open sql, dsn, 1, 3
rs(\"felt1\") = \"Carsten\"
rs.update
rs.close

så skriv:

sql = \"update dintabel set felt1 = \'Carsten\' where id = 8\"
con.execute(sql)

Indsættelser på samme måde

sql = \"insert into dintabel (felt1, felt2) values (\'Carsten\', 29)\"
con.execute(sql)

Så kommer spørgsmålet: \"Hvordan får jeg så fat i værdien for et autonummereret felt, når jeg lige har indsat en ny record?\"

Svaret er mysql-funktionen last_insert_id() - det ville normalt kunne gøres med:

sql = \"select last_insert_id() as nytid\"
set rs = con.execute(sql)
mit_id = rs(\"nytid\")

det virker bare ikke (igen noget med ODBC at gøre). Skriv istedet:

sql = \"select id from mintabel where id = last_insert_id()\"
set rs = con.execute(sql)
mit_id = rs(\"id\")

det virker.

Det burde være nok til at få dig igang med MySQL fra ASP. Hvis du har problemer bare med at få MySQL til at virke, må du jo sige til.
Avatar billede lunder Nybegynder
13. juli 2001 - 20:39 #5
Tak for det - jeg er allerede igang!
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

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