Avatar billede jeg_var_gangsta Nybegynder
17. juli 2002 - 22:12 Der er 10 kommentarer og
1 løsning

Access -> MySQL : fejl?

Jeg er ved at flytte en pænt stor Access-database til MySQL... Herunder ses den ASP fil jeg har tænkt mig at benytte til det :)
--------------------------------------------
<%
' ----------- MYSQL DRIVER START
    SQLserveradr = "localhost"
    SQLdatabase = "db"
    SQLlogin = "login"
    SQLpassword = "password"

    Set mySQL = Server.CreateObject("ADODB.Connection")
    mySQL.Open "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase &";uid="& SQLlogin &";pwd="& SQLpassword
' ----------- MYSQL DRIVER END
' -----------
' ----------- ACCESS DRIVER START
    set myConn = Server.CreateObject("ADODB.Connection")

    conStr = "DRIVER={Microsoft Access Driver (*.mdb)};"
    conStr = conStr & "DBQ="&server.mappath("/")&"\sems.mdb"

    myConn.Open conStr
' ----------- ACCESS DRIVER END

set mail = myConn.Execute("SELECT * FROM mail")
while not mail.EOF
mySQL.Execute("INSERT INTO mail (d_subject, d_text, d_from, d_to, d_date, d_read) values ('"&replace(mail("d_subject"), "'", "_")&"', '"&replace(mail("d_text"), "'", "_")&"', '"&replace(mail("d_from"), "'", "_")&"', '"&replace(mail("d_to"), "'", "_")&"', '"&replace(mail("d_date"), "'", "_")&"', '"&replace(mail("d_read"), "'", "_")&"'")
mail.MoveNext
wend
mail.Close
set mail = Nothing
%>
--------------------------------------------
Og her kommer så fejlen:
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'

[TCX][MyODBC]You have an error in your SQL syntax near '' at line 1

/sql.asp, line 27


Nogen der kan hjælpe mig?

Andre løsninger til at flytte Access til MySQL modtages også, men de SKAL være gratis. Altså, hvis nogen af jer ligger inde med et ASP script eller noget...
Avatar billede jeg_var_gangsta Nybegynder
17. juli 2002 - 22:16 #1
PS jeg giver gerne flere points... :)
Avatar billede eagleeye Praktikant
17. juli 2002 - 22:25 #2
Prøv at skrive VALUES med stort...
Kolonne navne og table navne skal staves rigtigt med store og småbogstaver eller kan det give fejl...
Prøv et udskrive SQL sætningen så er et det tit lettere at se fejlen.
Avatar billede jeg_var_gangsta Nybegynder
17. juli 2002 - 22:28 #3
det er ligegyldigt om values er med stort, og alle kolonne- og tabelnavne er stavet rigtigt

Jeg har prøvet at udskrive SQL sætningen, men det giver omkring 200 poster hvilket ikke ligefrem gør det hele mere overskueligt.
Avatar billede eagleeye Praktikant
17. juli 2002 - 22:33 #4
Jeg ved ikke hvilken mySQL du bruger men jeg har også brug mySQL og der var det ikke ligegyldigt om det var store eller små i kolonne navne, men Ok, mySQL udvikler sig vel også bedre med tiden.. :)

Kan du prøve bare at udskrive en og så stopppe??
Eller kommer fejlen kun nogle gange?
Avatar billede eagleeye Praktikant
17. juli 2002 - 22:39 #5
der mangler vis en ) på values delen:


mySQL.Execute("INSERT INTO mail (d_subject, d_text, d_from, d_to, d_date, d_read) values ('"&replace(mail("d_subject"), "'", "_")&"', '"&replace(mail("d_text"), "'", "_")&"', '"&replace(mail("d_from"), "'", "_")&"', '"&replace(mail("d_to"), "'", "_")&"', '"&replace(mail("d_date"), "'", "_")&"', '"&replace(mail("d_read"), "'", "_")&"')")
Avatar billede jeg_var_gangsta Nybegynder
17. juli 2002 - 22:43 #6
eagleeye > nemlig, fandt selv lige ud af det, men nu er der en ny fejl...
Avatar billede eagleeye Praktikant
17. juli 2002 - 22:48 #7
Ok. hvilken fejl kode?
Avatar billede jeg_var_gangsta Nybegynder
17. juli 2002 - 22:51 #8
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'

[TCX][MyODBC]You have an error in your SQL syntax near '11/7-2002@22:31:14', '64')' at line 1

/sql.asp, line 40
Avatar billede jeg_var_gangsta Nybegynder
17. juli 2002 - 22:53 #9
jeg tror det er noget med nogle tegn i felterne den ikke kan forstå.. kæft hvor er det besværligt at flytte fra access til mysql!
tror jeg holder for i aften. Koden skal vist bare udarbejdes noget mere. Eagleeye, du får points.
Avatar billede eagleeye Praktikant
17. juli 2002 - 22:57 #10
Du skal ligge dato ind i formatet yyyy-mm-dd


Jeg har disse to finctioner som lave now om til yyyy-mm-dd hh:nn:ss så det kan ligges ind i en mySQL tabel:

function Two(S)
  two = CStr(S)
  while len(two)<2
    two = "0" & two
  wend
end function
function DatoTid()
  da = Two(Year(Now)) & "-" & Two(Month(Now)) & "-" & Two(Day(Now))
  ti = Two(Hour(Now)) & ":" & Two(Minute(Now)) & ":" & Two(Second(Now))
  Dato = da & " " & ti
end function

De kan så skrives om så de tager en data fra Access og laver om til mySQL format.
Avatar billede eagleeye Praktikant
17. juli 2002 - 22:59 #11
Med eller uden Tid...
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