Avatar billede moore Nybegynder
22. november 2005 - 12:44 Der er 11 kommentarer og
1 løsning

Fra MSacess til MySQL

Hej

Har skiftet webhotel, og har først nu set at de kører med MySQL, og det aner jeg ca. intet om. Da jeg altid har brugt ms-access.

Jeg har følgende kode, som nu ikke vil virke.

  Set objConn = Server.CreateObject("ADODB.Connection")
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("db.mdb") & ";Persist Security Info=False;"
    objConn.Open(strConn)

Hvordan skal det så stå ????????

Håber i kan hjælpe
Avatar billede Slettet bruger
22. november 2005 - 12:47 #1
<%
SQLserveradr="[mysqlserver]"
SQLdatabase="[mysqldatabase]"
SQLlogin="[brugernavn]"
SQLpassword="password"

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

conStr = "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase
conStr = conStr & ";uid="& SQLlogin &";pwd="& SQLpassword & ";OPTION=3"

Conn.Open conStr
%>
Avatar billede arne_v Ekspert
22. november 2005 - 12:48 #2
du kan slå connection string op på www.connectionstrings.com

de oplysninger du skal angive må stå i dine papirer fra web hotellet

og hvis du har brugt Access specifik SQL så kan du risikere at skulel lave mange
rettelser
Avatar billede moore Nybegynder
22. november 2005 - 12:49 #3
takker. Men hvad skal man skrive i felter som

SQLserveradr="[mysqlserver]"
SQLdatabase="[mysqldatabase]"
SQLlogin="[brugernavn]"
SQLpassword="password"
Avatar billede Slettet bruger
22. november 2005 - 12:51 #4
De informationer du har fået fra dit webhotel :)
Avatar billede moore Nybegynder
22. november 2005 - 12:55 #5
Her er hvad der står på www.b-one.dk 's hjemmeside

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
Avatar billede moore Nybegynder
23. november 2005 - 10:13 #6
Hej igen

Har nu prøvet at ændre i koden, med de koder som mit webhotel har givet mig.

Nu får jeg dog følgende fejl. :

Error Type:
ADODB.Recordset.1 (0x80004005)
SQLState: 4 Native Error Code: 1064 [TCX][MyODBC]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 '' at line 1
/kalender/calendar.asp, line 133

Min asp kode ser sådan her ud.

Kan sige at linie 133, er linien hvor SQL sætningen bliver kørt.

<%
   
    Set objconn = Server.CreateObject("ADODB.Connection")
objconn.Open "Driver={MySql};Server=localhost;Database=thomasknielsen_;UID=thomasknielsen_;PASSWORD=moore1"
   

    For iWeek = 1 To iRows
      Response.Write "<TR VALIGN=TOP>"
      For iDay = 1 To iColumns
    ' Checks to see if there is a day this month on the date being written
    If aCalendarDays((iWeek-1)*7 + iDay) > 0 then
      dtOnDay = DateSerial(Year(dtCurrentDate), Month(dtCurrentDate), aCalendarDays((iWeek-1)*7 + iDay))

      ' Checks to see if the day being printed is today
      If dtOnDay = dtToday Then
        Response.Write "<TD HEIGHT=55 CLASS='calCurrentDay'>"
      Else
          Response.Write "<TD HEIGHT=55 CLASS='calOtherDay'>"
      End If

      ' Checks to see the type of calendar (editable or non-editable)
      If (bolEditable) then
          strPage = "updateCalendar_form.asp?currentDate=" & dtOnDay
      Else
          strPage = "viewDay.asp?currentDate=" & dtOnDay
      End If

      ' Checks for a message on the day being written
      strSQL = "SELECT * FROM calendar WHERE calendarDate = #" & dtOnDay & "#"
      Set objRS = objConn.Execute(strSQL)
      If NOT objRS.EOF Then
        dailyMsg = objRS("calendarText")
      Else
        dailyMsg = ""
      End If
      Set objRS = Nothing

      ' Checks to see if the message is too long to be displayed in the mini date box
          If (Trim(dailyMsg) = Trim(Left(dailyMsg, intCharToShow))) Then
      Else
        dailyMsg = Trim(Left(dailyMsg, intCharToShow-4)) & " ..."
          End If

      Response.Write ("<A HREF=""" & strPage & """>&nbsp;" & aCalendarDays((iWeek-1)*7 + iDay) & "<BR>&nbsp;&nbsp;" & FormatStr(dailyMsg) & "</A>")
    Else
      Response.Write ("<TD HEIGHT=50 CLASS='calNotDay'>&nbsp;")
    End IF

    Response.Write "</TD>"
      Next
      Response.Write "</TR>"
    Next

    objConn.Close
    set objConn = Nothing
%>
Avatar billede arne_v Ekspert
24. november 2005 - 12:00 #7
jeg tror ikke at MySQL kan lide ## omkring datoer
Avatar billede moore Nybegynder
25. november 2005 - 09:14 #8
Har nu prøvet at fjerne de ## omkring datoer. Men det hjalp heller ikke.
Giver snart op på den her kode.
Avatar billede moore Nybegynder
25. november 2005 - 09:15 #9
Nu får jeg følgende fejl.. da jeg fjernede de ##

ADODB.Recordset.1 (0x80004005)
SQLState: S Native Error Code: 1146 [TCX][MyODBC]Table 'thomasknielsen_.calendar' doesn't exist
Avatar billede arne_v Ekspert
25. november 2005 - 10:11 #10
det er vel til at tage og føle på - tabellen eksisterer ikke
Avatar billede moore Nybegynder
25. november 2005 - 10:19 #11
Har ændret lidt i koden.. og får nu følgende fejl.

Sun ONE ASP VBScript runtime (0x800A01A8)
Object required: 'Open'

Og min kode ser sådan her ud nu.


<%

   
    ConnString ="Driver={MySQL};SERVER=localhost;DATABASE=thomasknielsen_;UID=thomasknielsen_;PASSWORD=x"
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = server.CreateObject("ADODB.recordset")
Conn.Open ConnString
   

    For iWeek = 1 To iRows
      Response.Write "<TR VALIGN=TOP>"
      For iDay = 1 To iColumns
    ' Checks to see if there is a day this month on the date being written
    If aCalendarDays((iWeek-1)*7 + iDay) > 0 then
      dtOnDay = DateSerial(Year(dtCurrentDate), Month(dtCurrentDate), aCalendarDays((iWeek-1)*7 + iDay))

      ' Checks to see if the day being printed is today
      If dtOnDay = dtToday Then
        Response.Write "<TD HEIGHT=55 CLASS='calCurrentDay'>"
      Else
          Response.Write "<TD HEIGHT=55 CLASS='calOtherDay'>"
      End If

      ' Checks to see the type of calendar (editable or non-editable)
      If (bolEditable) then
          strPage = "updateCalendar_form.asp?currentDate=" & dtOnDay
      Else
          strPage = "viewDay.asp?currentDate=" & dtOnDay
      End If

      ' Checks for a message on the day being written
    ' objRS.Open "SELECT * FROM calendar WHERE calendarDate =  '& dtOnDay & '", objconn
   
   
    sql = "SELECT calendarDate, calendarText FROM calendar ORDER BY calendarDate DESC"

   
   
   
    'sql = "SELECT calendarDate, CalendarText FROM calendar WHERE calendarDate = #" & DATETIME & "#"

    RS.Open sql, Conn, 1, 2 

'response.write "SELECT * FROM calendar WHERE calendarDate = #" & DATETIME & "#"
'Set objRS = objConn.Execute(strSQL)
     
      If NOT RS.EOF Then
        dailyMsg = RS("calendarText")
      Else
        dailyMsg = ""
      End If
      Set RS = Nothing

      ' Checks to see if the message is too long to be displayed in the mini date box
          If (Trim(dailyMsg) = Trim(Left(dailyMsg, intCharToShow))) Then
      Else
        dailyMsg = Trim(Left(dailyMsg, intCharToShow-4)) & " ..."
          End If

      Response.Write ("<A HREF=""" & strPage & """>&nbsp;" & aCalendarDays((iWeek-1)*7 + iDay) & "<BR>&nbsp;&nbsp;" & FormatStr(dailyMsg) & "</A>")
    Else
      Response.Write ("<TD HEIGHT=50 CLASS='calNotDay'>&nbsp;")
    End IF

    Response.Write "</TD>"
      Next
      Response.Write "</TR>"
    Next

    objConn.Close
    set objConn = Nothing
%>
Avatar billede moore Nybegynder
03. december 2005 - 17:59 #12
Fandt en anden løsning....
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
Computerworld tilbyder specialiserede kurser i database-management

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