Avatar billede vood Nybegynder
06. juni 2001 - 15:25 Der er 13 kommentarer og
1 løsning

Jeg har brug for hjælp med mySql.

Ok, nu skal du bare høre. Vi satte en mySQL 2000 server op på arbejdet (Backoffice 2000 på en win2k pro) ... koden jeg bruger ser således ud ...

        <%
        Dim Connect,rs
        Set Connect = Server.CreateObject(\"ADODB.Connection\")
        DSN = \"DRIVER=mysql;SERVER=(SERVER);UID=(USERNAME);PWD=(PASSWORD);DATABASE=(DATABASE);\"
        Connect.Open DSN
        Set rs = Server.CreateObject(\"ADODB.Recordset\")
        sql=\"SELECT top 1 * FROM [tilbud_highlight] order by id desc\"
        rs.Open sql,Connect
        do until rs.EOF
        Response.write(rs(\"highlight_picture\"))
        rs.MoveNext
        loop
        rs.Close
        %>

Og fejlen jeg får ...

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
/forside.asp, line 21

Det skal lige siges at linie 21 er den med \"Connect.Open DSN\" ...

Til at starte med vil jeg gerne have svar på hvorfor det ikke virker ... og sekundært vil jeg gerne have nogle eksempler på hvordan man læser / skriver / opdaterer en lokal mysql database. Der er mange point på spil her ... så skynd jer lige og svar.... hurtige svar vil få ekstra points :)
Avatar billede dudal Nybegynder
06. juni 2001 - 15:28 #1
        <%
        Dim Connect,rs
        Set Connect = Server.CreateObject(\"ADODB.Connection\")
        DSN = \"DRIVER=mysql;SERVER=(localhost);UID=(USERNAME);PWD=(PASSWORD);DATABASE=(navnet på databasen);\"
        Connect.Open DSN
        Set rs = Server.CreateObject(\"ADODB.Recordset\")
        sql=\"SELECT top 1 * FROM [tilbud_highlight] order by id desc\"
        rs.Open sql,Connect
        do until rs.EOF
        Response.write(rs(\"highlight_picture\"))
        rs.MoveNext
        loop
        rs.Close
        %>
Husk at ændre Navn på databasen, Brugernavn og Password.

/Jesper
Avatar billede dudal Nybegynder
06. juni 2001 - 15:30 #2
DSN = \"DRIVER={mysql};SERVER=localhost;UID=USERNAME;PWD=PASSWORD;DATABASE=DATABASE;\"

Lille tilretning. :-)
Avatar billede dudal Nybegynder
06. juni 2001 - 15:34 #3
For at opdatere kan du fx. bruge:

Connect.Execute(\"UPDATE tabelnavn SET kolonne1 = \'værdi1\', kolonne2 = \'værdi2\' Where Id = 5\")

Skriver til:
Connect.Execute(\"INSERT INTO tabelnavn (Kolonne1,Kolonne2) VALUES(\'test1\',\'test2\')\")

Læser:

Her kan du faktisk bruge samme metode som du bruger herover med Recordset objektet.

Alternative kan du bruge:

Set Rs = Connect.Execute(\"SELECT top 1 * FROM [tilbud_highlight] order by id desc\")
do until rs.EOF
  Response.write(rs(\"highlight_picture\"))
rs.MoveNext
loop
rs.Close
Avatar billede erikjacobsen Ekspert
06. juni 2001 - 15:37 #4
    sql=\"SELECT top 1 * FROM [tilbud_highlight] order by id desc\"

er vist ikke lige mysql-syntaks. Der skal man skrive:

    sql=\"SELECT * FROM tilbud_highlight limit 1 order by id desc\"

for ikke at få fejl.
Avatar billede dudal Nybegynder
06. juni 2001 - 15:41 #5
erikj >> skal limit ikke ligge sidst?

Altså:
sql=\"SELECT * FROM tilbud_highlight order by id desc limit 1\"

???Jesper
Avatar billede erikjacobsen Ekspert
06. juni 2001 - 18:14 #6
Jow jo, ja, nemlig, rigtigt, korrekt!
Avatar billede nebula Nybegynder
06. juni 2001 - 18:16 #7
Sat op? det lyder som om I har glemt at oprette et DSN til den. Det er det fejlen siger.

Under forudsætning at i har f.eks. en ODBC driver til mySQL kan i oprette et DSN under administrative tools og vælge Microsoft ODBC Administrator -> Under System DSN, vælger du Add -> mySQL (eller mySQL-et eller andet, kan ikke checke da jeg ikke har det installeret) derefter kommer en wizard og hjælper dig.

mySQL ODBC filerne kan hentes her:
http://www.mysql.com/Downloads/Contrib/mydsn-1.0.zip
http://www.mysql.com/Downloads/Win32/MyOLEDB.exe
et ActiveX object (skulle kunne bruges direkte fra IIS/ASP) http://www.mysql.com/Downloads/Contrib/MYSQLX.EXE
Avatar billede erikjacobsen Ekspert
06. juni 2001 - 18:25 #8
Man behøver da ikke oprette en DSN til den. Men man kan da godt.
Avatar billede nebula Nybegynder
06. juni 2001 - 18:38 #9
jo det gør man når man requester en DSN forbindelse.

Set Connect = Server.CreateObject(\"ADODB.Connection\")
        DSN = \"DRIVER=mysql;SERVER=(SERVER);UID=(USERNAME);PWD=(PASSWORD);DATABASE=(DATABASE);\"
       
Avatar billede erikjacobsen Ekspert
06. juni 2001 - 19:10 #10
Det er ikke en DSN, trods navnet, det er bare en connectionstring
Avatar billede vood Nybegynder
08. juni 2001 - 10:47 #11
Jo men lige en sidste ting ... nu har jeg fået af vide hvordan man opdaterer ... hvordan man læser og hvordan man skriver fra en lokal mysql database .... hvad med sletter ? :)
Avatar billede dudal Nybegynder
08. juni 2001 - 11:25 #12
Connect.Execute(\"INSERT tabelnavn Where Kokonne1 = \'test\'\")

/Jesper
Avatar billede dudal Nybegynder
08. juni 2001 - 11:27 #13
Ups. :-) Det skulle selvfølgelig være

Connect.Execute(\"DELETE tabelnavn Where Kokonne1 = \'test\'\")

/Jesper

Avatar billede dudal Nybegynder
09. juni 2001 - 13:33 #14
vood >> Funker det???
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