[SQL] OS taal zorgt voor niet functioneren query

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 27-07-2024
Ik heb een vervelend probleem. Op mijn eigen laptop heb ik een programma ontwikkeld. Ik heb windows 7 32 bit Engels. Access Nederlandse versie. En een industrieel programma in het engels waar ik via een ODBC verbinding de gegevens uit mijn database haal.

Afijn, alles werk op mijn laptop en geen problemen.

Een collega van mijn moet nu met het project verder dus ik wil een test opstellingen maken. Het enigste verschil is een Windows 7 32bit Nederlandse editie.

In eerste instatie had ik al problemen met de tijd notatie maar dit kon ik eenvoudig oplossen om dit om te zetten naar verenigde staten.

Vervolgens had ik nog steeds problemen. Ik krijg een melding dat hij een parameter verwacht bij een bepaalde query ofwel hij accepteerd het gedeelte in de where gedeelte niet. Zie hieronder de code:

code:
1
2
strSQL = "SELECT Line_id, Line_Name FROM t_Line WHERE Active="&True&""
Set rst = conn.Execute(strSQL)


Deze code werkt wel op mijn Engelse OS. Nu heb ik er een tekstbox tussen gezet en als ik de string strSQL print. Dan geeft hij aan bij Active=Waar.

Andere query's die leterlijk tekst of integers vergelijken werken allemaal perfect. Het is puur dat het systeem ergens een vertaal slag maakt. Weet iemand of dit op te lossen is met een bepaalde instelling?

Het zou toch vreemd zijn dat je gebonden bent aan je OS taal of je code werkt of niet.

Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 11-09 10:47
Je kunt in plaats van "True" / "Waar" ook gebruik maken van de integer variant. Als het goed is is in Access True -1 en False moet dan 0 zijn. Dan heb je dus geen last meer van de lokale taalinstellingen.

Acties:
  • 0 Henk 'm!

  • Serpie
  • Registratie: Maart 2005
  • Laatst online: 01-07-2023
Waarom is active een string en geen boolean?

Doe gewoon
SELECT Line_id, Line_Name FROM t_Line WHERE Active=True

Of:
SELECT Line_id, Line_Name FROM t_Line WHERE Active <> 0

Acties:
  • 0 Henk 'm!

  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 27-07-2024
Aa, nu dat je het zo zegt is het beter om inderdaad -1 te gebruiken. Dit lost me probleem direct op.

@serpie de true is gewoon een command of hoe je het ook mag noemen binnen het systeem waar ik in programmeer. Het werkte dus heb het zo overal gebruikt. True of False zegt meer dan -1. Alleen -1 werkt op andere OS taal.

Acties:
  • 0 Henk 'm!

  • Serpie
  • Registratie: Maart 2005
  • Laatst online: 01-07-2023
eatualive schreef op dinsdag 24 juli 2012 @ 11:25:
Aa, nu dat je het zo zegt is het beter om inderdaad -1 te gebruiken. Dit lost me probleem direct op.

@serpie de true is gewoon een command of hoe je het ook mag noemen binnen het systeem waar ik in programmeer. Het werkte dus heb het zo overal gebruikt. True of False zegt meer dan -1. Alleen -1 werkt op andere OS taal.
Voor compatibility is het vergelijken met <>0 beter dan met -1, de true is niet in elke taal -1 (soms 1) maar de false is wel altijd 0.

Acties:
  • 0 Henk 'm!

  • eatualive
  • Registratie: Juni 2005
  • Laatst online: 27-07-2024
Serpie schreef op dinsdag 24 juli 2012 @ 11:30:
[...]


Voor compatibility is het vergelijken met <>0 beter dan met -1, de true is niet in elke taal -1 (soms 1) maar de false is wel altijd 0.
Bedankt voor de tip ga het direct implementeren.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Je lost een lokaal probleem op met een globale oplossing; je gaat toch niet de "machine culture*" (om 't zo maar even te zeggen en verwarring met locale/lokaal te voorkomen) omzetten naar een andere "culture*" alleen maar om je applicatie werkend te krijgen?
* Lees: locale.

Wat je moet doen is gebruik maken van Parametrized Queries; dan heb je én 't gezeik met datums niet én het true/waar/vero/prawda//... <-> false/onwaar/falso/fałsz//... gedoe niet (of, om maar wat anders te verzinnen, het gedoe met 1,23 v.s. 1.23).

Disclaimer: De chinese tekens zijn op basis van best-guess en wat google translate gestoei :P

[ Voor 49% gewijzigd door RobIII op 24-07-2012 16:58 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1