webForumDet fria alternativet

frågor om access och mySQL

ASP

48 svar · 2 325 visningar · startad av snowcat

Medlem sedan feb. 2007220 inlägg
Frågan#1

Hej
Det känns som jag har grävt ner mig i ett djupt hål och inte kan komma upp... så här är det: Jag har i fyra års tid jobbat på min sajt och tänkte inte från början att den skulle bli så stor som den nu har blivit.
Jag vet att jag måste byta mina accessdatabaser till MySQL, men har inte den minsta susning. Har letat efter lite tips och skall väl få till det tror jag.

Men mina frågor är:

  1. Hur mycket annan kod måste man ändra, jag har lite svårt för att tro att det "bara" är att konvertera så rockar allt sen..?

  2. Jag är "van" att skriva rätt in i mina accessdatabaser, jag skriver först i world-dokumentet (skriver om slott och personer) och sedan dunkar jag in koden i access och sänder upp den, eller så använder jag mig av de formulär jag gjort - HUR stor skillnad blir det på mitt sätt att jobba när jag bytt till MySQL? Jag är lite rädd för att allt skall bli så svårt så jag tappar lusten att fortsätta...
    Jjag vet nu att många kommer tycka att jag jobbar hemskt konstigt och krångligt men så är det.. så det är ingen vits i att ni påpekar vad dum jag är, för det vet jag redan.. :r

(troligen kom denna i fel tråd - byt gärna till rätt)

Medlem sedan juni 20019 519 inlägg
#2

1. Ända koden du behöver ändra är: Connection string på dina connection objekt. och kanske några av dina SQL frågor.

2. Du kommer nog få göra ett nytt gränssnitt för att posta in data i din MySQL databas. Eller om du har ett formulär i word så borde du kunna ändra om din kods connection objekt på denna med.

Medlem sedan feb. 2007220 inlägg
#3

jag har gjort formulären i asp, där jag har en rad för varje kolumn, fyller i och uppdaterar databasen med - den måste jag ändra alltså?

Kan man sitta hemma och labba först med sidan - som jag gör nu, jag har en db hemma och en likadan på servern - för att kolla och ordna att allt ser ok ut först, innan jag sänder upp det nya..?

Sen en annan fråga, jag har typ 12 accessdatabaser... men när man kikar på webbhotellen så står det att man får ha 1 st MySQL-databas. Skall man då lägga ihop alla mina små accessdatabaser i en stor mySQL-databas?
(snacka om att jag känner mig dum just nu :( )

(jag hade 6 rätt på Lotto i lördags, SYND att jag inte hade ett till så jag kunde anställa en utv. som gjorde allt detta åt mig - SAMT översatte hela sajten till engelska :P )

Medlem sedan mars 20083 inlägg
#4

Connect till databasen

Det ända som du måste ändra är connecten till Databasen. Så nogot större problem bör det inte vara. :e

Medlem sedan juni 20019 519 inlägg
#5

Tesla skrev:

Det ända som du måste ändra är connecten till Databasen. Så nogot större problem bör det inte vara. :e

SQL frågorna kan se annolunda ut från Access och MySQL. Så man skall nog räkna med att det kan vara lite mer problem än bara ändra connection strängen. Börja med det och kör igenom din kod. Om det är något som ger dig fel så är det bara att felsöka med MySQL manualen eller söka runt på nätet. Kan inte tänka mig det är så fruktansvärt mycket jobb.

Medlem sedan nov. 20017 144 inlägg
#6

Sen en annan fråga, jag har typ 12 accessdatabaser... men när man kikar på webbhotellen så står det att man får ha 1 st MySQL-databas. Skall man då lägga ihop alla mina små accessdatabaser i en stor mySQL-databas?

Du är inte dum, du har bara inte lärt dig vad som är skillnaden.

Att ha 12 stycken databaser är inte bra av olika orsaker, hade du gjort "rätt" ifrån början hade du även bara haft en(1) accessdatabas, med tabeller motsvarande dina behov på siten.
Men det är en risk när man börjar jobba med färdiga asp-script som kommer med "tillhörande" databas osv.

Har du en(1) databas så kan du joina ihop flera tabeller ifrån samma databas som du ställer mot varandra, ex göra sökningar, rapporter osv.

Har du 12 så är det nästan en omöjlighet.

MySql är ingen databas man bollar mellan servern och din dator utan bara den informationen som skall ligga i den.

Så du får snickra ett administrationsgränssnitt där du har möjlighet att lägga till och editera dina poster ifrån.

Själva sql-erna skijer sig inte så mycket åt syntaxmässigt, ibland i inbyggda funtioner (tex. datumfuntioner)
mysql använder limit 0,3 istället för top 3 för att hämta de tre översta raderna ur frågan osv. så lite skiljer sig syntaxen.
Även vissa datatyper finns inte i den ena och den andra. Så där bör du kolla upp lite noga. Ex. Boolean (sant/falskt) finns inte i mysql, men det fixar man ex. vis med enum eller bit. 1=sant, 0=falskt osv.

Men jag tycker du gör som du sa, skapa en paralell testsida där du börjar smyga in dina nya mysql-kopplingar så kan du switcha över när du tycker det funkar. Att migrera tabeller är ofta inget problem, det finns hjälp på nätet hur du överför datan ifrån access till mysql.
http://www.google.com/search?q=migrate+access+to+mysql

Återkom gärna om du har mer "handgripliga" tekniska frågor.

Lycka till!

Ps. Alla är barn i början...

Medlem sedan nov. 20017 144 inlägg
#7

Kuriosa:
Titta vad jag hitta: http://www.webforum.nu/showthread.php?t=22230
Det är 6 år sedan... vad gulligt.

Medlem sedan feb. 2007220 inlägg
#8

...nej jag vet inte ens hur jag skall börja
jag har läst en massa om olika verktyg man kan använda men..

är det helt fel med access? Hur mycket tål en accessdatabas egentligen??
kanske jag lika gärna kan ha kvar dem.

-------------------
den största accessdatabasen jag har är på 5,5 mb och den minsta på 220 kb.
- och så har jag som mest kanske 30-40 besökare samtidigt, det kanske räcker med mina accessdatabaser ändå?

Medlem sedan feb. 2007220 inlägg
#9

hej igen :)
nu håller jag på för fullt - jag har gjort en stor MySql-db av alla mina 13 accesser!

Men så har jag fått ett fel som jag inte kommer undan:

Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: 'DRIVER={MySQL ODBC 3'
/nina/historia/counter.asp, line 19

på linje 19 står:
Set RS = Connection.Execute("SELECT counter.fldPage, counter.fldCount, counter.oversattning FROM counter WHERE fldPage = '" & Page & "'")

Någon som har tid att hjälpa mig?

Medlem sedan juni 20019 519 inlägg
#10

Hur ser ditt "Connection" objekt ut?

Medlem sedan feb. 2007220 inlägg
#11
<%
Dim Connection, RS, Page, Counts 

Page=Request.ServerVariables("SCRIPT_NAME") 

Connection = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=min_db; UID=root; PASSWORD=nina; OPTION=3"

If Len(Session(Page)) = 0 Then
	Set RS = Connection.Execute("SELECT counter.fldPage, counter.fldCount, conter.oversattning FROM counter WHERE counter.fldPage = '" & Page & "'")
	If RS.EOF = TRUE Then
		Connection.Execute("INSERT INTO counter (fldPage, fldCount) VALUES ('"&Page&"', 0)")
	End If
	Set RS = Connection.Execute("SELECT counter.fldPage, counter.fldCount, conter.oversattning FROM counter WHERE fldPage = '" & Page & "'")
	Counts=RS("fldCount")+1
	Set RS =  Connection.Execute("UPDATE counter SET fldCount = fldCount + '1', fldCountold = fldCountold + '1' WHERE fldPage = '" & Page & "'")
	Session(Page) = "something"
	Connection.Close
Else
	Set RS = Connection.Execute("SELECT counter.fldPage, counter.fldCount, counter.oversattning FROM counter WHERE fldPage = '" & Page & "'")	
	Counts=RS("fldCount")
End If
Response.Write Counts 

 %>
Medlem sedan feb. 2007220 inlägg
#12

det här är en kod jag hittade på nätet för flera år sedan.
den räknar hur många som har varit inne på olika sidor. Jag fattar inget av den här koden så är det någon som har någon enklare så tipsa mig gärna :-)

Medlem sedan juni 20019 519 inlägg
#13

Du har nog klippt bort en hel del.. då din connection är en variabel och inte ett Connection objekt:

Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=min_db; UID=root; PASSWORD=nina; OPTION=3"
Medlem sedan feb. 2007220 inlägg
#14

:-)
Du är ju bara för bra!!
det funkade direkt, jag har suttit länge och flyttat runt på det där.

en fråga: vad betyder egentligen det där "OPTION=3" ?

måste man förresten ha med det där: "Dim Connection, RS, Page, Counts"
eller går det bra utan?

skall det vara i den här ordningen:

<%
Connection = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=min_db; UID=root; PASSWORD=nina; OPTION=3"
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open(Connection)
Set RecSet = Connect.Execute("SELECT slott.id, slott.namn FROM slotten order by slott.namn asc")
%>
Medlem sedan juni 20019 519 inlägg
#15

1. Aldrig använd mySQL :P
2. Ja.. du ska alltid skapar dina variabler innan du använder dom (dim:ar upp dom). Det går att köra utan men lär dig redan i början att det är det som gäller :)

Medlem sedan feb. 2007220 inlägg
#16

så då räcker det om man skriver
Dim Connection, RecSet
och inget mer? (förstår inte det där med säger du så så stämmer det säkert :-)

är det här i rätt ordning eller skall "set connect" komma före "connection"?

<%
Connection = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; DATABASE=min_db; UID=root; PASSWORD=nina; OPTION=3"
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open(Connection)
Set RecSet = Connect.Execute("SELECT slott.id, slott.namn FROM slotten order by slott.namn asc")
%>
Medlem sedan juni 20019 519 inlägg
#17

Jo.. "Set" på en variabel säger du att i din kod så skapar du ett objekt av typen "ADODB.Connection" till variabeln Connect. Och i objektet så har du en funktion som öppnar connection med strängen "Connection" .
Samma gäller Recset Conn.Execute retunera av typen RecordSet.

Du ska även ha med:

Dim Connection, RecSet[b], Connect[/b]

ALLA variabler du använder skall dim:as

Medlem sedan feb. 2007220 inlägg
#18

jättetack för all hjälp - jag uppskattar det verkligen skall du veta :-)
dagens ros till dig!

Medlem sedan jan. 20023 327 inlägg
#19

voigtann1 skrev:

2. Ja.. du ska alltid skapar dina variabler innan du använder dom (dim:ar upp dom). Det går att köra utan men lär dig redan i början att det är det som gäller :)

Ett sätt tvinga sig själv att göra/följa detta är att sätta:

<% Option Explicit %>

överst på dina sidor. Då måste du deklarera dina variabler. Om du missar en deklarering så får du ett felmeddelande.

Medlem sedan feb. 2007220 inlägg
#20

jo men vad är dom bra för?

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)