10. juni 2005 - 12:52Der 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"
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"
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")
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)
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
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?
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(
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?
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"
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.