ampyMedlem sedan feb. 20011 498 inlägg Har denna kod:
sql = "select id from gastbok where left(datum,10) = '" & Date - 1 & "' and sort = 'fakta' order by id asc"
Set rs = connect.execute(sql)
gastbok_id = rs("id")
Set rs = Nothing
När jag kör den koden på en vanlig .asp-sida så hittar den en massa poster. Men när jag kör den i Visual Basic så hittar den ingen post.
Hur kan det bli så?
Felmeddelandet jag får i VB är:
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.
nikoMedlem sedan juni 20022 599 inlägg Antagligen använder du olika datumformat på ASP-sidan och i VB-programmet.
Att göra strängjämförelser på datum av typen:
where left(datum,10) = '" & Date - 1 & "'
är som att spela rysk roulette. Du får helt olika resultat beroende på maskinens landsinställningar.
Är fältet datum av typen datum i databasen eller text?
ampyMedlem sedan feb. 20011 498 inlägg Fältet är tyvärr av typen text.
nikoMedlem sedan juni 20022 599 inlägg
Fältet är tyvärr av typen text.
Då får du ta ditt straff och formatera allt i programmet på samma sätt:
where left(datum,10) = '" & Left(Format(Date - 1, "yyyy-MM-dd") & "' ..
.. eller hur det nu ska vara?
Sen måste du göra samma sak på alla andra ställen i synnerhet när du gör INSERTS så att du inte får blandade format i DB:en. (Alternativet är att göra om fältet till datumtypen.)
ampyMedlem sedan feb. 20011 498 inlägg Jag har nu gjort om fältet till typ datetime men när jag skriver så här hittar den ändå inga poster:
...where left(datum2, 10) = '" & Date - 1 & "'...
Testade då att skriva så här:
...where date(datum2) = '" & Date - 1 & "'...
Men då får jag syntaxfel.
nikoMedlem sedan juni 20022 599 inlägg Vi talar Access, antar jag?
.. where datediff('d',datum2,#" & Date & "#)=1 ..
ampyMedlem sedan feb. 20011 498 inlägg Det är till en mysql-databas.
nikoMedlem sedan juni 20022 599 inlägg MySQL? Verkligen inte mitt favoritämne, men jag antar att man kanske kan skriva så här?
.. where (TO_DAYS('" & Format(Date, "yyyy-MM-dd") & "')-TO_DAYS(datum2))=1 ..
ampyMedlem sedan feb. 20011 498 inlägg Koden fungerade men konstigt nog så hittar den inga poster. :l
Jag är säker på att det finns poster från igår (2003-04-01).
nikoMedlem sedan juni 20022 599 inlägg
Jag är säker på att det finns poster från igår
Ja, men i så fall kan du kanske köra:
SELECT TO_DAYS('" & Format(Date, "yyyy-MM-dd") & "')-TO_DAYS(datum2) from gastbok where id= .. ?
för någon av dessa poster och se vad resultatet blir?
Jag tycker det borde bli "1".
ampyMedlem sedan feb. 20011 498 inlägg Det blir 0. :(
Värdet som finns i kolumnen datum2 i den posten jag valde ut är:
2003-04-01 16:59:22
Den borde ju ha hittat det?
nikoMedlem sedan juni 20022 599 inlägg Ja. I "min" MySQL så returnerar iaf:
SELECT TO_DAYS('2003-04-02')-TO_DAYS('2003-04-01 16:59:22') from tabell
garanterat 1.
Jag har alltså ingen förklaring på ditt problem. Tyvärr.
ampyMedlem sedan feb. 20011 498 inlägg Kom på felet. Var en miss av mig. :r
Hade även
sort = 'fakta'
med i sql-satsen av misstag.
@ndersMedlem sedan juni 200032 969 inlägg Tråden har egentligen ingenting att göra med Visual Basic, utan flyttas på studs, utan vidare dröjsmål, till mer lämpat forum.
Mvh,