Toon posts:

[ASP] Access/mssql boolean

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik moet een website maken die met asp op zowel access als mssql kan werken. Nu kan ik bij access wel true/false ingeven maar bij mssql kan dit niet :(

Nu heb ik wat onderzoek gedaan en nu staat op de ene site die ik tegen kom dat je er een functie voor moet maken die als het access is een true of een flase geeft en als het mssql is een 1 of een 0 terug geeft. Op andere sites stond weer dat het true/false veld van access 1, 0, "1", "0", true. false, "true" en "false" kan oppakken en het goed verwerken.

dus kan iemand mij hier vertellen wat mssql en access aankunnen met booleans?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 13:23

gorgi_19

Kruimeltjes zijn weer op :9

Ik gok dat je het eea met parametrized queries wel kan oplossen en dan een boolean / bittype te kiezen. SQL Server kent namelijk geen ondersteuning voor echte boolean, alleen voor bit's (wat in principe dezelfde uitwerking heeft)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
Verwijderd schreef op 10 juni 2004 @ 20:36:
Op andere sites stond weer dat het true/false veld van access 1, 0, "1", "0", true. false, "true" en "false" kan oppakken en het goed verwerken.
Werkend met 0 en 1 ben ik in access / sqlserver nog geen problemen tegen gekomen...

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op 10 juni 2004 @ 20:36:
Ik moet een website maken die met asp op zowel access als mssql kan werken. Nu kan ik bij access wel true/false ingeven maar bij mssql kan dit niet :(

Nu heb ik wat onderzoek gedaan en nu staat op de ene site die ik tegen kom dat je er een functie voor moet maken die als het access is een true of een flase geeft en als het mssql is een 1 of een 0 terug geeft. Op andere sites stond weer dat het true/false veld van access 1, 0, "1", "0", true. false, "true" en "false" kan oppakken en het goed verwerken.

dus kan iemand mij hier vertellen wat mssql en access aankunnen met booleans?
Misschien een lullige opmerking, maar het typen van deze topicstart duurt langer dan het te proberen...Of je moet 1 van beide niet bij de hand hebben (gehad).

Ontopic: Bij mijn weten werken 0 en 1 prima bij allebei (ja...getest! :Y) )

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


Verwijderd

RobIII schreef op 10 juni 2004 @ 22:39:
[...]
Misschien een lullige opmerking, maar het typen van deze topicstart duurt langer dan het te proberen...Of je moet 1 van beide niet bij de hand hebben (gehad).
Dat geeft meestal geen garantie dat het ook altijd gaat werken. Goed programmeerwerk begint met goed researchwerk ;)

  • nescafe
  • Registratie: Januari 2001
  • Laatst online: 24-05 21:00
In access betekent True = -1. In de praktijk converteert access het wel (als je een veld op 1 zet wordt ie true) maar in vba geldt bijvoorbeeld:

code:
1
2
3
4
5
6
7
True = True
CInt(True) = -1
CInt(Not False) = -1
(True = 1) = False
CBool(-1) = True
CBool(1) = True
CBool(0) = False


Je zult deze problemen het minst tegenkomen als je gebruik maakt van parameterized queries, zoals gorgi_19 al heeft gezegd.

[edit]
Zie je meteen wat ie met Not uitvoert:
code:
1
2
3
4
CInt(Not -1) = 0
CInt(Not 0) = -1
CInt(Not 1) = -2
CInt(Not 2) = -3



edit:

Ik denk dus dat als je in je code vergelijkingen wilt uitvoeren, je het beste kan zorgen dat je met het datatype bool werkt of anders CBool() toepassen.

[ Voor 37% gewijzigd door nescafe op 10-06-2004 23:28 ]

* Barca zweert ook bij fixedsys... althans bij mIRC de rest is comic sans


Verwijderd

Topicstarter
RobIII schreef op 10 juni 2004 @ 22:39:
[...]

Misschien een lullige opmerking, maar het typen van deze topicstart duurt langer dan het te proberen...Of je moet 1 van beide niet bij de hand hebben (gehad).

Ontopic: Bij mijn weten werken 0 en 1 prima bij allebei (ja...getest! :Y) )
Ik probeer gewoon ff alles op een rijtje te krijgen voordat ik begin met programmeren anders moet ik zo alles weer gaan aanpassen :)

Ok bedankt voor jullie replies, ik heb nu een goed beeld van hoe ik dit moet oplossen.

Door middel van jullie replies ben ik op de volgende conclusies gekomen:

bij querys waarbij je iets moet selecteren waar een bepaalde waarde true of false is 1/0 gebruiken bv

select username where user_activated = 1

Bij form velden een functie gebruiken
code:
1
2
3
4
5
6
7
Function Boolean(abool)
  If abool Then
    Boolean = 1
  Else
   Boolean = 0
  End If
End Function


user_active = Boolean(Request.Form("active") = "on")

en vervolgens de waarde die de functie Boolean terug geeft in een query

insert into table (active) values (" & user_active & ")

tot nu toe werkt alles op die manier met zowel access als mssql :)
Pagina: 1