Avatar billede jens_as Nybegynder
10. juni 2005 - 12:52 Der er 15 kommentarer og
1 løsning

Asp og MySQL database.

Hej alle eksperter...

Jeg har en nyhedshjemmeside som jeg nu har haft kørende nogle år - men efter som jeg kører på en access database bliver siden lukket på grund af for meget traffik. Men host ringede så til mig og sagde jeg skulle skifte fra Access til MySQL.

Så er mit spørgsmål bare:
Hvordan administrer jeg mine data? Og hvordan konvertere jeg alt mit data fra min access database?

Og hvad skal ændres i min ASP kode for at den virker med MySQL?

Ex.

<%
Session.LCID = 1030

dim dsn
dim Conn
dsn="DBQ=" & Server.Mappath("../database/mutidb.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open dsn

Verden = "Select ID, Dato, Type, Nyhed From Verden WHERE Dato = Date() ORDER BY Dato DESC, Id DESC"
Set VerdenRs = Conn.Execute (Verden)

Se = "Select top 1 * From Verden WHERE Dato = Date() OR Dato = Date()-1 ORDER BY id DESC"
Set SeRs = Conn.Execute (Se)

Citat = "SELECT TOP 1 * FROM Citat ORDER by Dato desc"

Set CitatRs = Conn.Execute (Citat)

Navne = "SELECT TOP 1 * FROM Navne ORDER by Dato desc"

Set NavneRs = Conn.Execute (Navne)

Kalender2 = "SELECT TOP 1 * FROM Kalender ORDER by Dato"

Set Kalender2Rs = Conn.Execute (Kalender2)

%>

På forhånd tak for svarene...

Mvh
/Jens_as
Avatar billede busschou Praktikant
10. juni 2005 - 12:56 #1
Du skal i hvert fald til at starte med lave din connection string om til mysql
---
set conn = server.createobject("ADODB.connection")
conn.Open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=db.ditdomæne.dk; DATABASE=webXXXX; UID=webXXXX; PWD=XXXX;"
---
Der udover er der et par funktioner som ikke fungerer i mysql men som er access relaterede
fx TOP 1 kan du ikke benytte i
Navne = "SELECT TOP 1 * FROM Navne ORDER by Dato desc"
istedet kan du benytte LIMIT
Navne = "SELECT * FROM Navne ORDER by Dato desc LIMIT 1"
Avatar billede busschou Praktikant
10. juni 2005 - 12:58 #2
Jeg benytter ikke selv mysql i asp kun i php så jeg er ikke sikker på den connectionstring - var en jeg fandt på nettet
Her er en anden jeg fandt
--
Dim objConn
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
Set objConn = Server.CreateObject("ADODB.Connection")

objConn.ConnectionString="DRIVER={MySQL};SERVER=localhost;DATABASE=
[DOMAIN_COM];UID=[DOMAIN_COM];PWD=[PASSWORD];"
objConn.Open

objRS.Open "[QUERY]", objConn, 3,3
---
Det kunne tyde på at driveren måske afhænger af dit webhotel. Søg evt i deres support sider for at finde den helt korrekte connection string :o)
Avatar billede busschou Praktikant
10. juni 2005 - 13:01 #3
Selve konverteringen er så en anden sag. Hvis du har benyttet "normale" typer så burde de samme typer findes i MySql.
Men om der findes et nemt interface til asp ved jeg ikke
I php benytter jeg selv PhpMyAdmin til at administrere databasen, igen ville jeg da foreslå dig at høre din udbyder ad om mulighederne der.
I alle fald må det være muligt at lave et dump af din struktur og overføre direkte
Avatar billede arne_v Ekspert
10. juni 2005 - 15:32 #4
DRIVER={MySQL} er MySQL ODBC version 2.x
DRIVER={MySQL ODBC 3.51 Driver} er MySQL ODBC version 3.x
Avatar billede jens_as Nybegynder
10. juni 2005 - 20:25 #5
Ja ok tak for den hurtige hjælp var selv lige i bio hurtigt...

Øhm okay... Men hvis vi nu antager at wannafind (som min udbyder hedder) har PhpAdmin (som jeg tror de har) - hvor ligger jeg så databasen der op? Skal jeg downloade et program som laver access databsen om til en MySql eller hvad skal jeg?
Avatar billede busschou Praktikant
11. juni 2005 - 01:14 #6
Ja se det var så lige den ting jeg var i tvivl om
Jeg ved at man i den version af phpmyadmin som jeg har kan exporterer det hele
Men det ligner ikke man kan importere, så vidt jeg kan se
Måske kan du i Access eksportere til en sql som indeholder alle oplysninger... men igen er jeg ikke sikker desværre :o(
Avatar billede larsbachmanndk Nybegynder
11. juni 2005 - 01:18 #7
http://www.google.com/search?sourceid=navclient&hl=da&ie=UTF-8&oe=UTF-8&q=access2mysql

her er en liste over programmer der kan konvertere fra Access til MySQL.
men hvilken der er den bedste ved jeg ikke
Avatar billede jens_as Nybegynder
11. juni 2005 - 16:50 #8
Okay tak for det larsbachmanndak med linket fandt et andet program som gjorde det samme bare gratis - http://www.bullzip.com/ - men nu er det bare sådan at jeg har nogle kald til databasen som jeg ikke kand få til at virke... Hvis jeg poster dem vil i så hjælpe?

Mvh
/Jens
Avatar billede jens_as Nybegynder
11. juni 2005 - 17:02 #9
Har FX problemer med den her:

Verden = "Select ID, Dato, Type, Nyhed From Verden WHERE Dato = Date() ORDER BY Dato DESC, Id DESC"
Set VerdenRs = Conn.Execute (Verden)

Hva skal jeg ændre?
Avatar billede jens_as Nybegynder
11. juni 2005 - 17:03 #10
Ups - forkert - det var den her:

sql = "Select ID, Dato, Overskrift From Nyheder ORDER BY Dato DESC, Id DESC LIMIT 10"
Set Rs = Conn.Execute (sql)

Samme spørgsmål...
Avatar billede jens_as Nybegynder
11. juni 2005 - 17:05 #11
Skide godt klaret jens - jeg har selv fundet fejlen et andet sted på siden...
Avatar billede jens_as Nybegynder
13. juni 2005 - 17:23 #12
Er der nogen som kan knække den her nød?  (post i svar så jeg kan give point)

<%
sql = "Select ID, Dato, Overskrift From Nyheder WHERE Dato >= DateAdd('d',-7, Date()) Order By Dato Desc"
Set Rs = Conn.Execute (sql)
%>

/Jens
Avatar billede busschou Praktikant
13. juni 2005 - 19:45 #13
hvis nøden ligger i af mysql ikke har DateAdd så kan du evt lave den i asp delen jo
sql = "Select ID, Dato, Overskrift From Nyheder WHERE Dato >= "&DateAdd('d',-7, Date())&" Order By Dato Desc"
Avatar billede busschou Praktikant
13. juni 2005 - 19:47 #14
i mysql kan man benytte DateAdd
DATE_ADD(CURRENT_DATE(),INTERVAL -7 DAYS)
Læs evt mere om det her
http://dev.mysql.com/doc/mysql/en/date-and-time-functions.html
Avatar billede jens_as Nybegynder
14. juni 2005 - 17:17 #15
NOIA busschou... Tak for det.. - Min sætning ser nu således ud hvis andre vil bruge den:

sql = "Select ID, Dato, Overskrift From Nyheder WHERE Dato >= DATE_ADD(CURRENT_DATE(),INTERVAL -7 DAY) Order By Dato Desc"
Set Rs = Conn.Execute (sql)

Mange tak for hjælpen..

Mvh
/Jens
Avatar billede busschou Praktikant
14. juni 2005 - 17:20 #16
Det var så lidt da.. godt det virker :o)
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