Avatar billede jens_k Nybegynder
31. marts 2003 - 20:54 Der er 17 kommentarer og
1 løsning

Opret Boolean felt via ALTER

Hej

Hvordan opretter jeg en kolonne via SQL ALTER i en Access database, hvor Typen skal være "Boolean" og Default value skal være "False".

Jens K
Avatar billede al1407 Nybegynder
31. marts 2003 - 20:57 #1
ALTER TABLE tabel ADD boolfield TINYINT(1) DEFAULT '0';

MySQL (som SQL'et ovenfor er skrevet til) har ikke nogen specifik Boolean felttype, men TINYINT kan bruges med 0 og 1 for hhv. False og True ...

Du kan også bruge Enum ..

ALTER TABLE tabel ADD boolfield ENUM('false', 'true') DEFAULT 'false';

Det er op til dig selv .. hvad du finder bedst ..
Avatar billede al1407 Nybegynder
31. marts 2003 - 21:02 #2
Note: med ENUM vil 'false' og 'true' have hhv. 0 og 1 som Integer værdi.
Dvs. du kan bruge ..

.. SET boolfield='false' - ELLER -
.. SET boolfield=0

hvad du nu synes ...
Avatar billede al1407 Nybegynder
31. marts 2003 - 21:05 #3
baah .. jeg stener ... du skrev Access ...

Så kan du bruge:

ALTER TABLE tabel ADD boolfield BOOLEAN DEFAULT 'false'

så vidt jeg husker ...

Ellers kan du bruge INTEGER istedet ...
Avatar billede jens_k Nybegynder
31. marts 2003 - 21:08 #4
Det giver en fejl:

"Der er en syntaksfejl i feltdefinitionen. "

Min ASP kode ser således ud:

<%
'//Opret Kolonne
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("/database/new.mdb")
Conn.Execute("ALTER TABLE Documents ADD boolfield BOOLEAN DEFAULT 'false'")
Conn.Close
%>


Det er i den linie som hedder conn.execute der kommer fejl.

Jens K
Avatar billede jens_k Nybegynder
31. marts 2003 - 21:09 #5
Det skal være et afkrydsnings felt. Kan ikke bruge et numeric felt til noget.

Jens K
Avatar billede al1407 Nybegynder
31. marts 2003 - 21:11 #6
Prøv med LOGICAL istedte for Boolean ...

Afkrydsningsfelt .. om du gemmer 0/1 eller false/true kan vel for dig være ligemeget ? .. Jeg plejer som regel at benytte mig af en TINYINT i MySQL (svarer til Byte i VbScript ..)
Avatar billede jens_k Nybegynder
31. marts 2003 - 21:13 #8
al1407. Jeg har læst det som står derinde, men det løser ikke rigtig mit problem..
Avatar billede al1407 Nybegynder
31. marts 2003 - 21:14 #9
Prøv at søge på 'alter table' i Access' hjælpesystem .. der kan du finde den præcise syntax på hvordan du gør ...
Avatar billede jens_k Nybegynder
31. marts 2003 - 21:15 #10
al1407 når jeg bruger LOGICAL så kommer der ikke nogen fejl.

Men den mangler at sætte format til at være "True/False"

Hvordan får jeg den til det ?

Jens K
Avatar billede al1407 Nybegynder
31. marts 2003 - 21:16 #11
Hmm .. jeg er ikke 100% sikker på at du KAN lave det via SQL ... altså i kode ...
Avatar billede al1407 Nybegynder
31. marts 2003 - 21:18 #12
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/lr30b_20.asp

Det ser ud til at det er de data typer du har at gøre godt med når du bruger CREATE/ALTER TABLE ...
Avatar billede al1407 Nybegynder
31. marts 2003 - 21:19 #13
Nææ!

http://www.experts-exchange.com/Databases/MS_Access/Q_10297633.html

ALTER TABLE ADD boolfield YESNO DEFAULT 'false'
Avatar billede al1407 Nybegynder
31. marts 2003 - 21:20 #14
*Hvad skulle man gøre uden Google.com*
Avatar billede jens_k Nybegynder
31. marts 2003 - 21:33 #15
Hehe al1407..

Det virker desværre ikke, det er det samme som at bruge LOGICAL.

Hvis du prøver at køre den selv..

Så kan du se at den opretter feltet med typen "YES/NO" som den skal, men der står desværre ikke noget i feltet format (Hvis du tager design view)

Hvis du opretter feltet via Design View, så er man tvunget til at vælge noget i Format, default valuen i format er (Yes/No) hvilket er den som jeg skal bruge.

Det kan da ikke passe at man ikke kan sætte Format til at være noget, når man altså vil oprette en Boolean Type.

Jens K
Avatar billede al1407 Nybegynder
31. marts 2003 - 21:39 #16
Jeg har desværre ikke mulighed for at afprøve det selv, da jeg sidder på en computer uden Office (et Soldaterhjem i Haderslev) ... :/

Jeg tror ikke det er muligt så :/
Avatar billede jens_k Nybegynder
31. marts 2003 - 21:41 #17
Hehe..

Jeg sidder også i Haderslev..

Jeg troede kersernen var lukket..

Jens K
Avatar billede al1407 Nybegynder
31. marts 2003 - 21:51 #18
What are the odds ;o) ...

Nej nej .. Telegraf regimentet holder stadig til i Haderslev :)
Jeg er normalt på Antvorskov Kaserne/Slagelse, men har været på sygehjælper kursus i Haderslev i sidste uge .. til og med i morgen :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester