webForumDet fria alternativet

skapa en tabell

ASPur ASP

18 svar · 564 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Hur skapar man en tabell genom kod. Tabellen ska se ut så här:

ID - Räknare
medlem - Text
medlem_id - Tal
datum - Datum/Tid
rubrik - PM
text - PM
godkann - Text

Tabellen ska heta artiklar.

Tabellen ska skapas i en access-databas. Hoppas någon kan skriva koden för detta.

Medlem sedan mars 20007 896 inlägg
#2
CREATE TABLE [tabellnamn] (
     [fältnamn1] [fälttyp] [NULL/NOT NULL], 
     [fältnamn2] [fälttyp] [NULL/NOT NULL], 
     PRIMARY KEY([fält])
);

Där har du strukturen, så det är bara att lägga till dina egna fält... :)

Medlem sedan feb. 20011 498 inlägg
#3

Man ska skriva fälttyperna på engelska va?

Medlem sedan mars 2002777 inlägg
#4

medlem_id - Tal --> int(5)
datum - Datum/Tid --> datetime
rubrik - PM --> memo
godkann - Text --> text(50)

RED: Glömde räknaren:

ID - Räknare --> ID counter(10)

Medlem sedan feb. 20011 498 inlägg
#5

Har du gjort denna kod:

<% 
sql = "CREATE TABLE [artiklar] ([ID] [counter(10)], [medlem] [TEXT(50)] [NOT NULL], [medlem_id] [INT(5)] [NOT NULL], [datum] [DATETIME] [NOT NULL], [rubrik] [MEMO] [NOT NULL], [text] [MEMO] [NOT NULL], [godkann] [TEXT(50)] [NOT NULL])"

Connect.execute(sql)
%>

Då får jag

Microsoft JET Database Engine fel '80040e14'

Syntaxfel i fältdefinition.

/80/Default.asp, line 382

vad är felet?

Medlem sedan mars 2002777 inlägg
#6

Är jag inte helt ute och turnerar ska du inte ha [...] runt fälttypen och attribten null/not null. Och använder du NOT NULL måste du väl ange ett defaultvärde?

Medlem sedan feb. 20011 498 inlägg
#7

Hur anger man ett defaultvärde då?

Medlem sedan juni 200032 969 inlägg
#8

Och använder du NOT NULL måste du väl ange ett defaultvärde?

Nej.

Medlem sedan feb. 20011 498 inlägg
#9

Men om jag skriver så här:

<% 
sql = "CREATE TABLE [artiklar] ([ID] counter(10), [medlem] TEXT(50) NOT NULL, [medlem_id] INT(5) NOT NULL, [datum] DATETIME NOT NULL, [rubrik] MEMO NOT NULL, [text] MEMO NOT NULL, [godkann] TEXT(50) NOT NULL)"

Connect.execute(sql)
%>

Så får jag detta felmeddelande:

Microsoft JET Database Engine fel '80040e14'

Syntaxfel i CREATE TABLE-instruktion.

/80/Default.asp, line 383

Medlem sedan mars 2002777 inlägg
#10

Ursprungligen av @nders

Och använder du NOT NULL måste du väl ange ett defaultvärde?

Nej.

Hittar access på ett eget då eller?

Medlem sedan juni 200032 969 inlägg
#11

Nej, vad ska du ha defaultvärdet till?
Access måste inte ha ett defaultvärde till not null-kolumner, men däremot måste varje post få ett värde vid insert.

ampy, prova:

<% 
sql = "CREATE TABLE [artiklar] ([ID] counter NOT NULL, [medlem] TEXT(50) NOT NULL, [medlem_id] INT NOT NULL, [datum] DATETIME NOT NULL, [rubrik] MEMO NOT NULL, [text] MEMO NOT NULL, [godkann] TEXT(50) NOT NULL)"

Connect.execute(sql)
%>

Mvh,

Medlem sedan feb. 20011 498 inlägg
#12

Koden funkar nu @nders. Men hur ska jag göra så att kolumnen ID blir primärnyckeln?

Medlem sedan juni 200032 969 inlägg
#13

Det borde gå bra att i sin CREATE TABLE-instruktion använda PRIMARY KEY.

sql = "CREATE TABLE [artiklar] ([ID] counter NOT NULL PRIMARY KEY, .....

Om du inte vill skapa om tabellen får du använda ALTER TABLE på något sätt. Det är inte en syntax jag har i huvudet, så prova att söka här på wF. Jag vet att ALTER TABLE diskuterats ett flertal tillfällen.

Mvh,

Medlem sedan mars 20007 896 inlägg
#14

Jag vet inte om ampy har fått det att fungera nu, men PRIMARY KEY ska enligt SQL-standarden ( Väl? ) stå sist i frågan;

CREATE TABLE minTabell (
     mittFält COUNTER NOT NULL, 
     mittAndraFält TEXT NULL, 
     PRIMARY KEY(mittFält)
);

ALTER TABLE fungerar så här:

ALTER TABLE [tabell] ADD [fältnamn] [typ] [NULL/NOT NULL]

Exempel:

ALTER TABLE minTabell ADD mittTredjeFält INT NOT NULL
Medlem sedan juni 200032 969 inlägg
#15

Primary Key måste väl ändå skrivas i anslutning till det fält man önskar göra till primärnyckel?

Medlem sedan dec. 200012 464 inlägg
#16

@nders: Nej
Spin: Nej

Medlem sedan juni 200032 969 inlägg
#17

LarsG, förklara gärna. :)

*sitter som på nålar*

Medlem sedan dec. 200012 464 inlägg
#18

Jaså, är det så spännande

Om det bara är en kolumn i primärnyckeln så kan man skriva

create table ogrish (aleb int primary key);

Det är också tillåtet att skriva

create table ogrish (aleb int,primary key(aleb))

Om man har flera kolumner i primärnyckeln så måste man använda den senare varianten

create table ogrish (aleb int, bleb dec,primary key(aleb,bleb))
Medlem sedan juni 200032 969 inlägg
#19

Om du har lust får du gärna fortsätta på det inlägget. ;)

Jo, det är klart det är intressant. Jag som är självlärd har inte så bra koll på hur saker och ting fungerar, utan har mest ett hum om hur man kan göra. I detta fall verkade jag humma lite fel... ;)

Red: nu hade du visst fortsatt. :)

Mvh,

133 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)