19. maj 2008 - 14:15Der er
8 kommentarer og 1 løsning
False bliver til Falsk
Jeg har en variabel som i et com-object tildeles værdien False. Værdien sendes i et array sammen med andre oplysninger tilbage til det kaldende asp-program.
Nu er værdien skiftet til Falsk. Hvorfor? Er der nogen der har et bud?
Fejlen kan ikke rettes med et hack da problemet findes mange steder desuden er det kun tilfældet ved bestemte kodeid'er.
Det er givetvis kun et problem, hvis der er tale om en streng-sammenligning.
Jeg kan ikke lige gennemskue hvordan det skal blive rettet uden at du enten skal rette COM-komponenten, ASP-koden der bruger COM-komponenten, eller sproget på serveren. Det sidste er jeg lidt usikker på, hvordan skal gøres i praksis (ud over regionale indstillinger). Det er heller ikke en farbar vej efter min mening, da det vil være en alt for risikabel manøvre ifht. sideeffekter - for ikke at tale om symptombehandling! :)
Jeg ville nok sørge for at rette ASP-koden, så der ikke sker en strengkonvertering af den boolske værdi, f.eks. ved at benytte funktionen cbool() på de værdier der skal sammenlignes med det returnerede array. På den måde vil VBScript undlade at foretage typekonvertering i baggrunden og din kode bliver mere robust...
Jeg har tendens til at være enig med solle i at LCID bør prøves som et alternativ til at ændre indstillingerne for maskinen, da ændring af regionale indstillinger som nævnt har konsekvenser for ALLE applikationer på maskinen. Desuden vil problemet opstå igen, hvis du flytter din applikation til en anden server - hvis den ikke har de rigtige indstillinger. Ydermere er det ikke sikkert at en ændring af regionale indstillinger er en mulighed på den server der flyttes til. Det er bedre at vælge en lokal ændring frem for en global ændring, da det er lettere at overskue konsekvenserne af en lokal løsning... :)
Problemet findes kun på localhost. Applikationerne kører på 3 andre "rigtige" serverer uden problemer. Mine kolleger der ingen problemer har på localhost har samme regionale indstillinger som jeg nu har ændret til.
At sætte session.LCid=1033 er måske en brugbar teoretisk løsning men idet jeg har rigtig mange scripts og begrænsede resourcer ikke muligt i praksis.
LCID kan evt. sættes i global.asa på Session_OnStart, så burde den vel bestå lige så længe som session og blive sat hvis session udløber - det er da vist en relativt billig løsning... :)
Tak for point :)
Synes godt om
Ny brugerNybegynder
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.