Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Access database locale instellingen

Pagina: 1
Acties:

  • Tonne
  • Registratie: Januari 2000
  • Laatst online: 10:23
Ik heb een probleem met een systeem dat jarenlang goed gedraaid heeft.
Ik heb voor de locale de volgende instellingen:
adoCon.Properties("Locale Identifier") = 1043
Session.LCID=1043
SetLocale(1043)

Het systeem is een windows server 2008 US 64 bit. Met daarop een engelstalige 64 bits access database engine.
http://www.microsoft.com/...oad/details.aspx?id=13255
Later vervangen door een nederlandstalige 64 bits office 2010

Voorheen was het systeem een windows server 2003 US 32bit. Met daarop een (waarschijnlijk nederlandstalige) 32 bits ms office, waar de odbc connectie vandaan kwam.

Net zoals voorheen worden decimalen in komma's vanuit de sql naar de odbc connectie gestuurd.
Een voorbeeld:
INSERT INTO Lessen (Naam, Instructeur, Type, Datum, Starttijd, Eindtijd, Opmerkingen, [Aantal uren], Post, [Te Betalen]) VALUES ('1265','2','2','4-12-2012','10:30','12:00','','1,5','4','67,5');

Maar nu gaat het mis, zowel met de datum als met de komma's. 4-12 wordt 12-4 en dus 12 april

Het is een vrij uitgebreid systeem met veel asp bestanden. Het is veel werk om alles aan te passen.

Ergens gaat het mis met de landinstellingen.Welke landinstellingen kunnen dit zijn? De asp staat op 1043, dus nederlands. Ook de odbc instellingen staan op 1043, dus nederlands (voor beide zie boven).

Ik wil dus instellen dat de komma's het decimaalteken zijn en de datum in het formaat dd-mm-yyyy moet worden gelezen. Maar hoe?

  • joppybt
  • Registratie: December 2002
  • Laatst online: 10:34
Probeer eens op de server onder Regional and Language' settings je gewenste instellingen te maken en dan onder het tabblad 'Administrative' de knop 'Copy settings' te drukken. Deze neemt de instellingen over naar het 'system account' wat mogelijk ook voor IIS geldt.

Misschien dat je IIS moet herstarten.

  • Tonne
  • Registratie: Januari 2000
  • Laatst online: 10:23
Ben via een bevriende systeembeheerder achter het euvel gekomen. Het is inderdaad iets in de instellingen wat niet naar de system account gaat.
We hebben dit nu handmatig in de registry aangepast, maar best kans dat het op bovenstaande manier gemakkelijker op te lossen is. Bedankt in elk geval!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Het is natuurlijk wel een enorme WTF dat wat er in je SQL queries staat kan breken met taalinstellingen...

https://niels.nu


  • joppybt
  • Registratie: December 2002
  • Laatst online: 10:34
Hydra schreef op vrijdag 23 november 2012 @ 10:01:
Het is natuurlijk wel een enorme WTF dat wat er in je SQL queries staat kan breken met taalinstellingen...
Dat komt omdat hij bedragen (Te Betalen) als tekst! ('67,5') in de query stopt. Dat is verder ook vragen om problemen. Dat moet natuurlijk als 67.5 (zonder quotes en dan altijd met punt)

Nog beter is natuurlijk om dit via bind-variabelen te doen.

  • Hydra
  • Registratie: September 2000
  • Laatst online: 06-10 13:59
Nee, dat heeft er op zich niks mee te maken. Een dergelijke technische koppeling zou niet taalafhankelijk moeten zijn. Het is ook belachelijk dat de datums verkeerd lopen en die moeten wel gewoon tussen quotes.

https://niels.nu


  • Tonne
  • Registratie: Januari 2000
  • Laatst online: 10:23
Dit was het eerste ding dat ik in asp heb gemaakt, dus wat ik lees over de query met punt geeft aan waar het probleem door ontstaan is.

Wat wel belangrijk is, is dat in de asp de taalinstellingen op nederlands staan. Dus dat de asp met rekenen ook een komma genereert. Die 67,5 is het resultaat van 45*1,5.

Voor de datum had ik ook de iso-notatie yyyy-mm-dd kunnen gebruiken las ik ergens, dan gaat het ook niet verkeerd.
Pagina: 1