webForumDet fria alternativet

False = Falskt

ASP

35 svar · 1 610 visningar · startad av rincewind

Medlem sedan nov. 2003104 inlägg
Frågan#1

Hej.

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

Medlem sedan feb. 20032 027 inlägg
#2

rincewind skrev:

Hej.

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

Vad händer om du skriver CBool(RS("kolumn"))

Medlem sedan nov. 2003104 inlägg
#3

Ledsen.. Men vet inte vad det skulle göra.. RS("kollumn")
????

Medlem sedan maj 20018 027 inlägg
#4

Idén är väl att CBool ska konvertera postens boolska värde till "FALSKT"/"SANT" på svenska, då det körs i ett svenskt system.

Medlem sedan feb. 20032 027 inlägg
#5

rincewind skrev:

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%>

Medlem sedan nov. 2003104 inlägg
#6

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?

Medlem sedan feb. 20032 027 inlägg
#7

använd sökfunktionen i nån editor så behöver du bara göra en sök/ersätt på varje sida

Medlem sedan feb. 20032 027 inlägg
#8

Eftersom MySQL inte klarar true/false i klartext så har jag för vana att använda CBool då både access och mysql klarar det *litet tips bara*

Medlem sedan nov. 2003104 inlägg
#9

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...

Medlem sedan feb. 20032 027 inlägg
#10

Håll kvar tråden lite så kanske det finns nån mer avancerad här som har en bättre lösning

Medlem sedan nov. 2003104 inlägg
#11

Tack för hjälpen UlfT och WebbisNet ...

Ingen annan som har något förslag?

Medlem sedan mars 20023 561 inlägg
#12

Jag skulle använda 0 och 1 istället för SANT/TRUE och FALSKT/FALSE. Men det är ju bara jag. ;)

Medlem sedan nov. 2003104 inlägg
#13

va bra Josef..
men prblemet kvarstår...=) skadan är redan skedd... hur ställer man om hela asp till att köra med true/false?

Medlem sedan juni 200032 967 inlägg
#14

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.

Medlem sedan feb. 200112 078 inlägg
#15

Okej, vänta lite nu.

rincewind skrev:

Och konstatera att ASP har SERIÖSA brister...

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 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?" ;)

Medlem sedan juni 200032 967 inlägg
#16

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.

Mvh

Medlem sedan juni 2004533 inlägg
#17

Det finns inga genvägar i det här fallet, tyvärr. Det är bara att inse att koden är illa skriven ifrån början, och måste korrigeras.

Gör en funktion som du kan använda för konverteringen. Typ:

Function CBoolSql(blnValue)
	If blnValue Then
		CBoolSql = "1"
	Else
		CBoolSql = "0"
	End If
End Function

rincewind skrev:

Och konstatera att ASP har SERIÖSA brister...

Det går att skriva dålig kod i vilket språk som helst. Om du använder språket fel innebär det inte att det är fel på språket.

Visserligen har VBScript sina brister, men det är inte en brist i språket i det här fallet.

Medlem sedan feb. 200112 078 inlägg
#18

@nders skrev:

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.

/s

Medlem sedan sep. 2005114 inlägg
#19

Varför skulle man någonsin vilja koda med boolean som sträng?...
1 0 FTW.

Medlem sedan maj 200010 687 inlägg
#20

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...

267 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
139 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)