Jag upptäckte att mitt ASP på min IIS (har nyligen bytt dator från engelskt 2k till en med svenska XP) skriver ut FALSKT i stället för FALSE vid en booleansk variabel. Detta får min databas att totalt spåra ut då dess SQL inte alls fattar vad FALSKT betyder....=( Jag vill itneheller skriva om alla ställen som variablerna självutvecklas på... Det är helt enkelt för många ställen...
Någon som vet hur man ändrar ASP till att skriva ut FALSE i stället för FALSKT som det gör nu.??=)
Tacksam för svar,
-- Rincewind
Jag upptäckte att mitt ASP på min IIS (har nyligen bytt dator från engelskt 2k till en med svenska XP) skriver ut FALSKT i stället för FALSE vid en booleansk variabel. Detta får min databas att totalt spåra ut då dess SQL inte alls fattar vad FALSKT betyder....=( Jag vill itneheller skriva om alla ställen som variablerna självutvecklas på... Det är helt enkelt för många ställen...
Någon som vet hur man ändrar ASP till att skriva ut FALSE i stället för FALSKT som det gör nu.??=)
Tacksam för svar,
-- Rincewind
Ledsen.. Men vet inte vad det skulle göra.. RS("kollumn")
????
om du ex ska kolla att din kolumn namn med ditt rs som heter rs är sann så blir det
<%If CBool("rs("namn") then%>
Detta är sant
<%Else%>
Detta är falskt
%End If%>
Omvänt blir det
<%If NOT CBool("rs("namn") then%>
Detta är falskt
<%Else%>
Detta är sant
%End If%>
Detta sätt är bättre än att skriva <%If rs("namn") = True Then%>
Okay.. Det låter bra.....
Men det är MÅÅÅÅNGA ställen som det sker på...
Det är ett gammalt projekt som jag nu tar upp igen och kollar på... Det var över 2 år sedan och det är nästan 150 filer med över 15000 rader kod i...
Inte en schanns att jag kommer ihåg alla post ställen osv...
Det går inte att ställa om ASP att använda sig av true/false i stället för sannt/falskt?
Om det vore så bra som med mysql...
Det är en ACCESS 2000 fil som är databasen....
Men seriöst.. måste jag gå igenom varje fil..?
Sedan så komer jag inte ihåg vad varje variabel heter. Så jag måste luska ut vad varje variabel gör.. och JUST precis på boolean variablerna ska jag köra CBool grejjen på...
Seriöst.. det e inte roligt...
Blir nog att plocka fram den gammla engelska win2k burken igen ur sin kista... Och konstatera att ASP har SERIÖSA brister...
hur ställer man om hela asp till att köra med true/false?
Det gör du inte.
Du får installera ett engelskspråkigt Windows... :/
Edit: enligt min uppfattning iaf. Men det är klart att det vore bra om jag har fel. Jag har själv trasslats med problemet en hel del, och för mig var det ett engelskspråkigt Windows som var det enda som kunde lösa problemet.
Jag skulle nog faktiskt inte dra mig för att (återigen) damma av den gamla klyschan "Tekniken är inte sämre än den som använder den". Typkonvertering i ASP är extremt viktigt, och det vet man, under förutsättning att man har lite koll och inte bara klagar på "att ASP suger" så fort det inte går ens egen väg.
Hade du typkonverterat, hade problematiken aldrig inträffat. Dessutom; om det nu är så krångligt att hitta alla variablar som är Booleans, så har du antagligen dålig kodstruktur. En ordentlig deklarationsrutin (i början av dokumentet måhända?) och en konsistent variabel-namngivning (Booleans brukar prefixas med "b" eller "bln", som t.ex. "bHasKey") gör att din arbete givetvis fortfarande blir tråkigt, men det blir inte svårt, och det är sannerligen inte ASP's fel.
Så mitt förslag är att sätta igång att typkonvertera dina variablar istället för att göra samma misstag nåsta gång igen, genom att smita runt problemet med en ominstallation. Det är inte direkt nåt man gör i en produktionsmiljö. "Öh, Herr Servertekniker, kan du installera om hela webbservern, för jag råkade klanta mig och inte typkonvertera?" ;)
Override, jag måste nog säga att det inte bara har med typkonvertering att göra. Jag jobbar mycket med xml / xsl, och då händer det att jag skriver xml-attribut till ett xml-dokument. If-satser och dylikt i XSL funkar inte riktigt som tänkt om det i ett xml-attribut står "Sant" istället för "True".
Om man endast använder ASP så är man safe om man typkonverterar i if-satser och dylikt, men så fort det ska till en strängrepresentation av ett boolskt värde, till exempelvis för xml-filer eller SQL-frågor så suger det att olika språkversioner returnerar olika saker.
Regional settings är också ett jädra härke, men det är en annan historia.
Override, jag måste nog säga att det inte bara har med typkonvertering att göra. Jag jobbar mycket med xml / xsl, och då händer det att jag skriver xml-attribut till ett xml-dokument. If-satser och dylikt i XSL funkar inte riktigt som tänkt om det i ett xml-attribut står "Sant" istället för "True".
I de fallen man jobbar med XML så är det för mig en självklarhet att använda 1 eller 0 som representanter för booelanska värden, inte strängkonverterade "True" eller "Sant". Det hade givetvis varit vansinne, och i dessa fall får man helt enkelt, med tanke på databärarens natur, specialhantera dessa fall.
Jag måste hålla med om att det är ett helvete att booleans skrivs ut som Sant/Falskt.
Behöver inte bara vara vid databasfrågor eller XML-filer. Räcker bara att man sätter ihop en Response.Redirect sträng och slänger in en boolean för att säga något till sidan man kommer till.
Är osmidigt att behöva If-satser varje gång man vill skriva ut en boolean.
Man vill ju att när en boolean görs till en sträng så ska man sen från den strängen direkt köra CBool för att få det till en boolean igen...
139 ms totalt · 3 externa anrop · v20260731065814-full.b746b907