WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Problem vid konvertering från Access till MYSQL (https://www.wn.se/forum/showthread.php?t=1042920)

lammet 2010-07-14 11:59

Problem vid konvertering från Access till MYSQL
 
Hej.

Jag försöker flytta några classic ASP script från ACCESS till MYSQL.

Kör bland annat en kalender som fungerat finfint med Access men genererar felkod vid flytt till MYSQL.

Felet jag får är: [MySQL][ODBC 3.51 Driver][mysqld-5.1.48]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

Raden där felet uppstår:
SQL = "SELECT * From bokningarna WHERE Stdatum=#"&EventDate&"# AND Blokal='"&Blokal&"' AND #"&Sttid&"# Between Sttid and Sltid OR Stdatum=#"&EventDate&"# AND Blokal='"&Blokal&"' AND #"&Sltid&"# Between Sttid and Sltid OR Stdatum=#"&EventDate&"# AND Blokal='"&Blokal&"' AND #"&Sttid&"# <= Sttid and #"&Sltid&"# >= Sltid"
RecSet2.Open SQL, Connection

SQL frågan ska kolla om det redan finns en bokning detta klockslag och datum.

Så något syntax fel blir det men jag hittar inte detta tyvärr. Någon som ser vad felet kan vara?

M.v.h. Lammet

allstars 2010-07-14 12:07

# skall inte användas i mySQL.

Byt ut mot enkelfnutt, eg. '

Gällande RecSet2.Open hade jag hellre kört; Set RecSet2=Connection.Execute(SQL)

lammet 2010-07-14 12:12

Strålande..
 
Tack.

Det ser ut att fungera hur bra som helst.

Jag bugar och bockar.

M.v.h. Lammet

Conny Westh 2010-07-14 12:12

Använd det generella "ODBC Datetime Format" i stället för det som är native för varje databas:

http://msdn.microsoft.com/en-us/libr...4(SQL.90).aspx

These are examples of ODBC time and date constants:

{ ts '1998-05-02 01:23:56.123' }

{ d '1990-10-02' }

{ t '13:33:41' }

Då kommer ODBC självt att översätta datum och tidformaten så du som programmerare slipper bekymra dig om vilken databas du använder.


Dessa format funkar då oavsett vilken databas du anvönder när du kör ODBC. Använder du detta format så kommer koden att fungera både med Access, MS SQL-Server och MySQL utan kodändring.

Din kod skulle se ut ungefär så här då:
Citat:

SQL = "SELECT * From bokningarna WHERE Stdatum={ d " & EventDate & "} AND Blokal='" & Blokal & "' AND { t " & Sttid & "} Between Sttid and Sltid OR Stdatum={ d " & EventDate & "} AND Blokal='" & Blokal & "' AND { t " & Sltid & "} Between Sttid and Sltid OR Stdatum={ d " & EventDate & "} AND Blokal='" & Blokal & "' AND { t " & Sttid & "} <= Sttid and { t " & Sltid & "} >= Sltid"
RecSet2.Open SQL, Connection
Med reservation för att jag ej testkört koden....

lammet 2010-07-14 12:25

Tack Conny
 
Jag ska prova och se om det fungerar.

Återigen. Många bugningar och Bockningar.

M.v.h. Lammet


Alla tider är GMT +2. Klockan är nu 06:11.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson