Avatar billede whels Nybegynder
11. maj 2005 - 22:59 Der er 11 kommentarer og
1 løsning

Fra access til Mysql

Hey champs

Som mange andre herinde har jeg skiftet webhotel og er blevet tvunget ud i af konvertere fra Access til Mysql - Dette er lykkedes fint.

Mit problem er at ASP-siderne er skrevet til access, ikke til Mysql. Jeg mener, at have rettet min connection jf. andre svar herinde, men jeg får stadig fejl på følgende linier:

<%
Dim nextfromkey
Dim prevfromkey
Dim initpage
Dim icount
initpage = Request.querystring("init")
If ( Request.querystring("key") = NULL) or ( Request.querystring("key") < 7 ) then
  nextfromkey = 7
 
  Set produkt = Server.CreateObject ("ADODB.Recordset")
  produkt.Open "SELECT * FROM products WHERE cat= "& Request.querystring("cat"), database
Else
 
  Set produkt = Server.CreateObject ("ADODB.Recordset")
  produkt.Open "SELECT * FROM products WHERE cat= "& Request.querystring("cat") &" and key >="& Request.querystring("key") , database
  nextfromkey = Request.querystring("key") + 6
End if
'produkt.pagesize = 6
%>

Nogen der kan hjælpe med omskrivningen?
Avatar billede nielle Nybegynder
11. maj 2005 - 23:07 #1
Hvordan lyder fejlbeskeden?
Avatar billede whels Nybegynder
11. maj 2005 - 23:09 #2
Når jeg åbner den i browseren kommer følgende:

Error Type:
ADODB.Recordset.1 (0x800A0E7D)
Invalid connection.
/produkter.asp, line 32
Avatar billede whels Nybegynder
11. maj 2005 - 23:10 #3
Ifølge min notesblok er det her linie 32

  produkt.Open "SELECT * FROM products WHERE cat= "& Request.querystring("cat"), database
Avatar billede nielle Nybegynder
11. maj 2005 - 23:11 #4
Et muligt problem kunne være at din app nu måske køre på en Linux boks og at tabelnavne derfor pludelig er casesensitive.
Avatar billede whels Nybegynder
11. maj 2005 - 23:15 #5
Men alle tabelnavne er også oprettet med småt i Mysql.... Det ser altså ud til at stemme overens med kaldet
Avatar billede nielle Nybegynder
11. maj 2005 - 23:17 #6
Det kan også tænkes at din connection - product hedder den vist - er åbnet på en forkert måde. Det skal se ud som noget i denne stil:

dim SQLserveradr, SQLdatabase, SQLlogin, SQLpassword

SQLserveradr = "localhost"
SQLdatabase = "database"
SQLlogin = "login"
SQLpassword = "password"

set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={MySql};server=" & SQLserveradr & ";database=" & SQLdatabase & ";uid=" & SQLlogin & ";pwd=" & SQLpassword
Avatar billede nielle Nybegynder
11. maj 2005 - 23:21 #7
Og i øvrigt eksekvere man sin SQL på denne måde:

SQL = "SELECT * FROM tabel WHERE key_id='" & Affiliate_ID & "'"
set rs = Conn.Execute(SQL)

Måske virker din notation også, men jeg har nu aldrig set den før:

produkt.Open "SELECT * FROM products WHERE cat= "& Request.querystring("cat"), database
Avatar billede whels Nybegynder
11. maj 2005 - 23:23 #8
Jeg har lavet connection som en includefil i starten - Den ser sådan ud:

<%
Dim objConn
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString="DRIVER={MySQL};SERVER=localhost;DATABASE=Min_DB;UID=Brugernavn;PWD=Pasword;"
objConn.Open
%>
Avatar billede nielle Nybegynder
11. maj 2005 - 23:40 #9
Den eneste ting mere jeg kan komme i tanke om er at MySQL er mere striks end Access mht. overholdelse af korrekt SQL syntaks. Prøv at ret:

produkt.Open "SELECT * FROM products WHERE cat= " & Request.querystring("cat"), database

- til:

produkt.Open "SELECT * FROM products WHERE cat=" & Request.querystring("cat"), database

(hint: der er fjernet et mellemrum).

- eller måske til:

produkt.Open "SELECT * FROM products WHERE cat='" & Request.querystring("cat") & "'", database

- i tilfælde af at attributten "cat" er en streng og ikke et tal.

G'nat :^)
Avatar billede nielle Nybegynder
11. maj 2005 - 23:42 #10
Hmm, du kalder din connection for objConn, men i dit kald:

produkt.Open "SELECT * FROM products WHERE cat= "& Request.querystring("cat"), database

- står der nu altså "database".
Avatar billede whels Nybegynder
12. maj 2005 - 21:32 #11
Du har ret nielle - Jeg har omdøbt objConn til database i includefilen - Det gav en del....

Der er dog stadig nogen af SQL kaldende som ikke er hels som de skal være.....
Jeg fixer dem anden vej - Opret et svar. Du skal ha' fortjente point
Avatar billede nielle Nybegynder
13. maj 2005 - 17:59 #12
Svar :^)
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