Avatar billede casperlundhansen Nybegynder
11. februar 2004 - 00:51 Der er 15 kommentarer og
1 løsning

String Access > MySQL

Jeg skulle gerne ha konverteret mine Access string til SQL, er der nogen der kan ændre dette?

<%

AccessDataBase = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/system.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open AccessDataBase
    Set rs = Conn.Execute("SELECT saldo, email FROM members WHERE email = '"&replace(session("email"), "'", "''")&"' ")

if rs.bof or rs.eof then
response.redirect ("start.asp")
end if

if rs("saldo") = 25 then
response.redirect ("stop.asp")
end if

    Conn.Close
    Set Conn = Nothing
    Set rs = Nothing
   
%>
Avatar billede esoulman Nybegynder
11. februar 2004 - 01:00 #1
Det er da samme streng som mysql bruger...

SELECT saldo, email FROM members WHERE email = 'mm@mm.dk'
Avatar billede eagleeye Praktikant
11. februar 2004 - 08:47 #2
Du skal havde lavet din connection string om:

Fra denne:
AccessDataBase = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db/system.mdb")

Til denne eller noget tæt på:

connStr = "driver={MySQL ODBC 3.51 Driver};DATABASE=databasenavn;SERVER=servernavn;UID=brugernavn;PWD=password;OPTION=16834;"

Du skal så selv skriver de data ind som mangler det vil sige databasenavn, servernavn,brugernavn og password. Tit vil brugernavn og databasenavn være det samme hvis du bruger et web-hotel:

Et eksempel:
connStr = "driver={MySQL ODBC 3.51 Driver};DATABASE=eagleeye_dk;SERVER=localhost;UID=eagleeye_dk;PWD=axy22d2s;OPTION=16834;"


Generalt vil standart SQL ligne hinanden, dog er der nogle små forskelle. Access bruger ## omkring dato, mySQL bruger '' omkring. I Access hedder det TOP x i mySQL hedder det LIMIT X og skal stå til sidst:

access: "select top 5 * from tabelnavn where dato >=#2004-02-05#"
mysql: "select * from tabelnavn where dato >='2004-02-05' limit 5"
Avatar billede casperlundhansen Nybegynder
11. februar 2004 - 12:36 #3
Jeg bruger ikke hotel, jeg har installeret MySQL på min egen maskine og bruger IIS 5.0

Skal jeg stadig bruge disse i open database:

        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open AccessDataBase

og til lukning:

    rs.Close
    Conn.Close
    Set Conn = Nothing
    Set rs = Nothing
Avatar billede eagleeye Praktikant
11. februar 2004 - 12:49 #4
ok, men om det er hotel eller din egen ændre ikke på connectringen. Du har sikket lavet en bruger i mysql delen så kan du bruge det brugernavn og password. Så kan du som SERVER skrive localhost

disse :
        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open AccessDataBase

Skal være:

connStr = "driver={MySQL ODBC 3.51 Driver};DATABASE=eagleeye_dk;SERVER=localhost;UID=eagleeye_dk;PWD=axy22d2s;OPTION=16834;"
        Set Conn = Server.CreateObject("ADODB.Connection")
        Conn.Open ConnStr


Lukningen er det samme som med access.
Avatar billede casperlundhansen Nybegynder
11. februar 2004 - 13:58 #5
Ok, fint nok :-)
Synes bare ikke at jeg kan ændre username & password
Viker kun med default: root
??
Avatar billede casperlundhansen Nybegynder
11. februar 2004 - 22:48 #6
Har prøvet en masse, men får denne fejl:

[Microsoft][ODBC Driver Manager] Datakildenavnet blev ikke fundet, og der er ikke angivet en standarddriver.
Avatar billede eagleeye Praktikant
11. februar 2004 - 22:52 #7
Har du installeret myODBC fra www.mysql.com?
Avatar billede casperlundhansen Nybegynder
11. februar 2004 - 22:54 #8
øhh, nej.... :-/
Avatar billede eagleeye Praktikant
11. februar 2004 - 22:59 #9
ok, for at driveren til web-servren installeres skal du installere myodbc:
http://www.mysql.com/products/myodbc/faq_1.html

Download: http://www.mysql.com/downloads/api-myodbc-3.51.html
Avatar billede casperlundhansen Nybegynder
11. februar 2004 - 23:02 #10
ok, fik installeret, men så kommer der noget helt andet:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[MySQL][ODBC 3.51 Driver][mysqld-4.0.17-nt]You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'by FROM members WHERE email = 'maron@email.dk'' at line 1
Avatar billede eagleeye Praktikant
11. februar 2004 - 23:03 #11
ok så prøv at vise SQL sætningen
Avatar billede casperlundhansen Nybegynder
11. februar 2004 - 23:06 #12
Linie 1 er denne her:

Set rs = Conn.Execute("SELECT email, password, fnavn, enavn, adresse, postnummer, by FROM members WHERE email = '"&login_email&"'")
Avatar billede eagleeye Praktikant
11. februar 2004 - 23:07 #13
by er nok reserveret ord (ORER BY) så enten lav by om til et andet kolonnenavn eller prøv at sætte [] omrking [by]

Set rs = Conn.Execute("SELECT email, password, fnavn, enavn, adresse, postnummer, [by] FROM members WHERE email = '"&login_email&"'")
Avatar billede eagleeye Praktikant
11. februar 2004 - 23:09 #14
Eller hvis [] ikke virker så prøv med `

Set rs = Conn.Execute("SELECT email, password, fnavn, enavn, adresse, postnummer, `by` FROM members WHERE email = '"&login_email&"'")
Avatar billede casperlundhansen Nybegynder
11. februar 2004 - 23:16 #15
Tegnet ` kunne klare det :-)
Okay, nu virker login, så kan jeg komme videre derfra
Tak for hjælpen
Avatar billede eagleeye Praktikant
11. februar 2004 - 23:22 #16
Det lyder godt :)
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