execute (INSERT INTO) problem

Tags:    sql database

Hig Udvikleren.

Jeg har lavet tre tabler Gæst, værelse og Bookning. de kom ind i databasen uden problemer.
Tabellen Gæst fungeret fint med at execute og INSERT INTO og har testet

Men resten fungere ikke

Tabellen værelse viser dette

(
Msg 8152, Level 16, State 14, Line 9
String or binary data would be truncated.
The statement has been terminated.
)


Og tabellen Booking viser dette

(
Msg 110, Level 15, State 1, Line 13
There are fewer columns in the INSERT statement than values specified in the VALUES clause. The number of values in the VALUES clause must match the number of columns specified in the INSERT statement.

)




Fold kodeboks ind/udSQL kode 


Fold kodeboks ind/udSQL kode 



Kan i se hvad er fejlen?

På forhånd tak



Indlæg senest redigeret d. 11.01.2016 17:23 af Bruger #21294
5 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 20 karma
Sorter efter stemmer Sorter efter dato
create table Vaerelse
(
vaerelseId int iDentity primary key not null,
vaerelsetype varchar not null, // her mangler en størrrelse på feltet
pris decimal (5,0) not null,
nr int not null
);

vaerelsetype varchar: hvor mange karaktere er dette ??, du burde få en advarsel, da du oprettede tabellen valid værdi 0-255, prøv at give den en værdi på 25
skulle nok være
vaerelsetype varchar (25) not null,


>Og tabellen Booking viser dette
du fortæller den at der er 3 kollonner, men du sætter 4 ind
Fold kodeboks ind/udKode 


skal nok se sådan ud
Fold kodeboks ind/udKode 





Indlæg senest redigeret d. 11.01.2016 18:11 af Bruger #16075
Hvis vi oversætter fejlene til dansk bliver det måske tydeligere.

Den første:
Streng eller binær data ville blive trunkeret. ...
. Den siger altså at hvis den udførte denne statement ville en streng eller binær data blive trunkeret (klippet kort). Du har 3 værdier som du indsætter ('familie', 100, 12); i dit kodestykke.
Fold kodeboks ind/udSQL kode 

Den først er en streng, det er nok den brokker sig over. Hvorfor ville være nød til at fjerne noget af teksten i "familie"? Er der plads nok?

Den anden fejl siger:
Der er færre kolonner i din INSERT statement end værdier specificeret i din VALUES klausul. Antallet af værdier i din VALUES klausul skal matche antallet af kolonner specificeret i din INSERT statement


Din statement ser sådan her ud:
Fold kodeboks ind/udSQL kode 

Er der noget sted her hvor du ikke matcher antallet af kolonner med antallet af værdier?




Msg 137, Level 15, State 2, Line 16
Must declare the scalar variable "@lId".

Msg 137, Level 15, State 2, Line 16
Skal erklære skalar variabel "lId".

dvs du skal have defineret din variabel, og tildelt den en værdi, før du anvender den i din sql


iøvrigt giver det ikke nogle mening at disse 2 fk_gaestId, fk_vaerelseId har sammen værdi.





Efter det ændringer i har forslået klassen Vaerelse kørte fint, men klassen Booking virker ikke

jeg har prøvet at komme reference nøglerne med, men der kommer en fejlmeddelelsen frem

koden
Fold kodeboks ind/udSQL kode 



fejlmeddelelsen

Fold kodeboks ind/udSQL kode 





problemet løst (:


Tak alle sammen



t