Avatar billede knock Nybegynder
12. september 2007 - 15:31 Der er 21 kommentarer

Access til MYSQL Boolean

Hej.
Hvis jeg i min access db har et felt som er skriftet med "boolean" / yes/no, true/false - hva hedder den så i MySQL? :S
Avatar billede pidgeot Nybegynder
12. september 2007 - 15:32 #1
Man bruger normalt TINYINT(1), og så 0 for falsk og 1 for sand.

Der er også en datatype der hedder BIT, men den er (i visse versioner) blot mappet til TINYINT(1), og du vilfaktisk skulle behandle dem på samme måde.
Avatar billede knock Nybegynder
12. september 2007 - 15:35 #2
Hmm,
sql = "Select * from afstemning where SlutDato>=date() and spg=true"
set rs = Conn.execute(sql)

den siger fejl i den linje, fordi SPG netop skal være den her true / false.
Den er lige nu som tinyint(1), men det fungerer ikke.

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 ') and spg=true' at line 1
Avatar billede pidgeot Nybegynder
12. september 2007 - 17:03 #3
Læs lige det jeg skriver en gang til. ;)

Man bruger ikke teksterne true og false, man bruger tallene 0 og 1. Hvis du vil have med teksterne, skal du lave en ENUM, men så skal du selv konvertere mellem det og noget din ASP kan bruge, og det bliver noget rod.
Avatar billede knock Nybegynder
13. september 2007 - 00:15 #4
Ja, men selvom jeg ændrer true til 1 , så vil den ikke?
Avatar billede pidgeot Nybegynder
13. september 2007 - 10:13 #5
Jeg gætter på at date() skulle hente den aktuelle dato? Det hedder CURDATE() i MySQL.

Skal du have tidspunktet med, bruger du NOW().
Avatar billede knock Nybegynder
14. september 2007 - 11:21 #6
Altså hva snakker du om nu?
Der ikke dato, eller tid.
Det er true eller false, som jeg har.
den skal kun vise en afstemning hvis den er TRUE, ikke andre.
Og I access hedder formatet "YES/NO", mit enkelte spørgsmål er hvad den hedder i mysql.
Avatar billede pidgeot Nybegynder
14. september 2007 - 11:25 #7
...ja, men dit problem i den query er primært SlutDato>=date(). I MySQL er DATE() en funktion til at tage datoen fra en DATETIME-værdi, men måden du bruger den på tyder på du vil have fat i den aktuelle dato.
Avatar billede knock Nybegynder
14. september 2007 - 11:33 #8
Kig fejlen.
[MySQL][ODBC 3.51 Driver][mysqld-5.0.27-standard]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 ') and spg=true' at line 1
den viser kun spg=true der... Så kan ikk se datoen er med i fejlen :D
Avatar billede pidgeot Nybegynder
14. september 2007 - 11:35 #9
...kig min besked og bemærk højre-parantesen. MySQL forventer en værdi der.
Avatar billede knock Nybegynder
14. september 2007 - 11:38 #10
Jeg forstår ikke din mening.
Problemet et IKKE dato.
JEg har styr på det med datoen, jeg ved det kun er SPG problemet er, da jeg testet det før i Access ?
Avatar billede pidgeot Nybegynder
14. september 2007 - 11:42 #11
Access <> MySQL. Date() uden en parameter er *ikke* gyldigt i MySQL, og fejlen ser sådan ud fordi den når til og med venstreparantesen - men da der ikke er nogen værdi, er det en syntaksfejl og derfor er der en højreparantes med i fejlbeskeden.

Se selv http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html#function_date hvis du STADIG ikke tror mig.

Det er fair nok at være i tvivl om visse ting nogle gange, men når man gentagne gange får at vide at fejlen er et helt bestemt sted, så er man nødt til at acceptere det.
Avatar billede michael_stim Ekspert
14. september 2007 - 11:44 #12
hehe
Avatar billede knock Nybegynder
14. september 2007 - 11:49 #13
hehe, jeg forstår dig bare ikk :D

"...kig min besked og bemærk højre-parantesen. MySQL forventer en værdi der."
hvlken højreparanteS?
Avatar billede pidgeot Nybegynder
14. september 2007 - 11:50 #14
Højreparantesen i din fejlbesked.
Avatar billede knock Nybegynder
14. september 2007 - 11:52 #15
nåår haha, jeg sover da stadig :D
Men hvad gør jeg med den, fordi du har ret i, at det kun er datoen jeg interesseret i, og ikke dato+tiden...
den skal vel være date i mysql? men spg, hva skal den være ?
Avatar billede michael_stim Ekspert
14. september 2007 - 11:53 #16
Select * from afstemning where SlutDato>=date(<-- Her stopper eksekveringen af scriptet, fordi der forventes noget andet end der står. I dette tilfälde ingenting.
Avatar billede pidgeot Nybegynder
14. september 2007 - 11:54 #17
For at få den aktuelle dato: CURDATE().

Til spg: Brug 1 (true virker måske nok i dette tilfælde, men det er trods alt et talfelt, så det er blot nemmer for dig selv at bruge 1).
Avatar billede knock Nybegynder
14. september 2007 - 12:13 #18
det fungerer :)
men
sql="insert into afstemning(spg, overskrift, slutdato, startdato) values(true,'" & strSpg & "', '" & slutdato & "', '" & dato & "')"
conn.execute(sql)

hvorfor står der bare
0000-00-00 00:00:00
ved startdato og
0000-00-00
ved slutdato? :S
Avatar billede pidgeot Nybegynder
14. september 2007 - 12:46 #19
Du bruger nok forkert datoformat. Du skal bruge åååå-mm-dd hh:mm:ss (naturligvis kun den første del hvis dit felt kun er DATE, fremfor DATETIME).
Avatar billede knock Nybegynder
16. september 2007 - 00:49 #20
Jamen date og datetime er de rigtige i databasen. Problemet er jo Spg=1/true/yes. :S?
Avatar billede knock Nybegynder
16. september 2007 - 00:50 #21
jeg helt væk :D Jeg sover.

Mente bare, date og date time er sat i dben, den indsætter bar ik
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