Avatar billede wandaxp Praktikant
20. september 2006 - 22:52 Der er 14 kommentarer og
2 løsninger

SQL sætning fejler

Hvad er der galt i denne SQL streng?

Insert Into Diverse(Fabrikat, Varenr, Maal, Specifikationer, Indhold, Pris, Tilbud, Beskriv100, Beskriv, Vaegt, Disabled, Varetype1, Varetype2, Varetype3, Lager, LagerAntal, Leverandoer, Kolli, OpretDato) Values (1000, 'BLY13G', 'ca. 35 mm / 13 gram', Sand, '1 stk.', 5, 0, 'Bly på 13 gram.', 'Bly på 13 gram.', 13, Falsk, 1, 1, 1, 1, 25, '', '', '')

Jeg får denne fejl :
No value given for one or more required parameters.

Her er felternes egenskaber:

Fabrikat = Tal
varenr = tekst
Maal = Tekst
Specifikationer = Ja/nej
Indhold = Tekst
Pris = Tal
Tilbud = Tal
Beskriv100 = Tekst
Beskriv = Notat
Vaegt = Tal
Disabled = ja/Nej
varetype1 = Tal
varetype2 = Tal
varetype3 = Tal
Lager = Tal
lagerAntal = Tal
Leverandoer = Tekst
Kolli = Tal
opretDato = Dato og klokkeslet
Avatar billede softspot Forsker
20. september 2006 - 22:59 #1
Et hurtigt bud kunne være:

Insert Into Diverse(Fabrikat, Varenr, Maal, Specifikationer, Indhold, Pris, Tilbud, Beskriv100, Beskriv, Vaegt, [Disabled], Varetype1, Varetype2, Varetype3, Lager, LagerAntal, Leverandoer) Values (1000, 'BLY13G', 'ca. 35 mm / 13 gram', Sand, '1 stk.', 5, 0, 'Bly på 13 gram.', 'Bly på 13 gram.', 13, Falsk, 1, 1, 1, 1, 25, '')


da dato nok enten skal være en valid dato eller en NULL-værdi (hvis tabellen tillader det for dette felt) og Kolli skal være et tal eller NULL (igen hvis tabellen tillader det).

Så har jeg desuden sat disabled i [] bare fordi jeg er paranoid mht. engelske ord som lugter af noget der kunne være reserveret i databasen...
Avatar billede softspot Forsker
20. september 2006 - 23:01 #2
Alternativt mangler der nogle felter i din insert, som er påkrævede i tabellen (dvs. felter som ikke tillader NULL eller tomme strenge).
Avatar billede wandaxp Praktikant
20. september 2006 - 23:07 #3
Alle felter tillader null værdier undtagen varenr.

Dette giver samme fejl :

Insert Into Blink(Fabrikat, Varenr, Maal, [Specifikationer], Indhold, Pris, Tilbud, Beskriv100, Beskriv, Vaegt, [Disabled], Varetype1, Varetype2, Varetype3, Lager, LagerAntal, Leverandoer, Kolli, OpretDato) Values(1000, 'BLY13G', 'ca. 35 mm / 13 gram', Sand, '1 stk.', 5, 0, 'Bly på 13 gram.', 'Bly på 13 gram.', 13, Falsk, 1, 1, 1, 1, 25, '', '', '')
Avatar billede softspot Forsker
20. september 2006 - 23:11 #4
hvad med den SQL jeg viste - giver den samme fejl?
Avatar billede wandaxp Praktikant
20. september 2006 - 23:18 #5
Ja den giver stadig samme fejl og når jeg udelader Kolli og OpretDato men disse er begge også tilladt med NULL værdier
Avatar billede softspot Forsker
20. september 2006 - 23:30 #6
Hmm... mystisk... jeg spekulerede på om det kunne have noget med den danske notation for sand og falsk... prøv at benytte true og false i stedet (jeg er lige blank for andre alternativer, så jeg griber efter et strå :)).

Det lyder bare sært at alle felter tillader NULL (bort set fra varenr), men at der stadig mangler at blive tildelt en værdi til et af felterne. Prøv evt. at skrælle din insert helt ned til varenr og så put de enkelte felter på, hvor du så tester din insert hver gang der kommer et nyt felt på. På et eller andet tidspunkt må fejlen dukke op igen og så burde du have skudt dig ind på hvilket felt der er årsagen til fejlen.

Men først ville jeg nok lige kontrollere om ALLE felter rent faktisk også tillader NULL og at de felter du sætter til tomme strenge også tillader dette - det kunne jo være at der er smuttet et felt (eller to) i farten ;-)
Avatar billede softspot Forsker
20. september 2006 - 23:31 #7
Hvis den progressive test fejler allerede ved insert af varenr alene, så vil jeg vove den påstand at der er et felt som ikke tillader NULL eller tomme strenge...
Avatar billede wandaxp Praktikant
20. september 2006 - 23:46 #8
Den kan ikke lide sandt og falsk felterne samt kolli og Opretdato, hvad kan der være galt med dem?
Avatar billede eaglehill Nybegynder
20. september 2006 - 23:51 #9
Du skriver at kolli er et tal, men i dit insert-statement skriver du '' som værdi, skriv null eller 0 istedet. Opretdato bør enten være null eller en valid dato
Avatar billede softspot Forsker
20. september 2006 - 23:51 #10
Mht. sand/falsk, så kan det være det jeg nævnte tidligere med at du skal bruge de engelske versioner i stedet (true/false).

Kolli er et tal og det sætter du med en tom streng (hvilket ikke er et validt tal eller NULL).

OpdateDato er en dato og dem sætter man med #<datoen>#. I dit tilfælde skal der ikke sættes nogen dato og derfor er det lettest bare at udelade den fra din SQL-sætning, da den så vil få værdien NULL i databasen...
Avatar billede ldanielsen Nybegynder
21. september 2006 - 00:05 #11
hvis det er access, så skriv 0 i stedet for Falsk og -1 i stedet for Sand
Avatar billede wandaxp Praktikant
21. september 2006 - 00:43 #12
softspot og ldanielsen giv lige et svar, da disse 2 oplysninger lige var de perfekte for at få skidtet til at virke som det skulle :-)

1000 tak for hjælpen :-)
Avatar billede softspot Forsker
21. september 2006 - 09:10 #13
Velbekomme :)
Avatar billede ldanielsen Nybegynder
21. september 2006 - 12:34 #14
svar

Virker det i øvrigt ikke også med True/False som softspot foreslog?
Avatar billede wandaxp Praktikant
21. september 2006 - 22:58 #15
jo tildels, men det er mere bestemt af serveren sprog er jeg bange for, for det virker ikke på alle maskiner, i nogle tilfælde skal det hedde sand/falsk og andre på engelsk, så jeg tror den anden måde er for usikker at bruge som standard :-)
Avatar billede softspot Forsker
21. september 2006 - 23:06 #16
Ja, du har nok ret i at det afhænger af den driver som benyttes til at slå op i din access-database, så det er mere sikkert at bruge de numeriske repræsentationer for sand og falsk (omend knap så intuitive).

Tak for point :)
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