Avatar billede lyngedrengen Nybegynder
10. juli 2002 - 22:33 Der er 5 kommentarer og
1 løsning

Indsættelse af tomme datafelter

Hejsa!

Ved at udfylde en form med diverse parametre skal man kunne indsætte en ny record i min db. Det går også fint, men KUN hvis man udfylder alle felter - det er ikke givet, at man skal/kan gøre det og hvad gør jeg så?

Min SQL ser således ud:

Navn = Request.Form("Navn")
  placering = Request.Form("placering")
  fodt = Request.Form("fodt")
  vaegt = Request.Form("vaegt")
  prehfk = Request.Form("prehfk")
  starthfk = Request.Form("starthfk")
  nummer = Request.Form("nummer")
  kontraktslut = Request.Form("kontraktslut")
  nationalitet = Request.Form("nationalitet")
  beskrivelse = Request.Form("beskrivelse")
 
 
  SQL = "Insert Into spillere (Navn, placering, fodt, vaegt, prehfk, starthfk, nummer, beskrivelse, kontraktslut, nationalitet) Values('"&Navn&"', '"&placering&"','"&fodt&"', '"&vaegt&"','"&prehfk&"','"&starthfk&"','"&nummer&"','"&beskrivelse&"','"&kontraktslut&"','"&nationalitet&"')"

  Conn.Execute(SQL)


Der er også en mulighed for at Update en record og der har jeg løst det med IF THEN:

Dim Navn, placering,fodt,vaegt,starthfk,nummer, id

  id = Request.Form("id")
  Navn = Request.Form("Navn")
  placering = Request.Form("placering")
  fodt = Request.Form("fodt")
  vaegt = Request.Form("vaegt")
  starthfk = Request.Form("starthfk")
  nummer = Request.Form("nummer")
 
 

  SQL = "Update Spillere Set Navn = '"&Navn&"'"
  IF placering <> "" THEN
  SQL = SQL & ", Placering = '"&placering&"'"
  END IF
  IF starthfk <> "" THEN
  SQL = SQL & ", starthfk = '"&starthfk&"'"
  END IF
  SQL = SQL & ", fodt = '"&fodt&"'"
  SQL = SQL & ", vaegt = '"&vaegt&"'"
  SQL = SQL & ", nummer = '"&nummer&"'"
  SQL = SQL & "Where ID = "&id&""

  Set RS = Conn.Execute(SQL)


Men er det virkelig det smarteste og hvorledes løser jeg problemet med at indsætte en ny rekord (den øverste SQL).

Håber der er nogen, der kan hjælpe :-)
Avatar billede eagleeye Praktikant
10. juli 2002 - 22:36 #1
Du skal inde i Access for de kolonne som må være tomme sætte "TilladNull længde" til Ja
Avatar billede lyngedrengen Nybegynder
10. juli 2002 - 22:50 #2
Wauw - det var hurtigt! :-)

Tak for svaret - det virker fint sålænge det er tekstfelter, men hvordan tillader jeg NULL i dato og talfelter (kunne i hvertfald ikke lige se, hvorledes...)
Avatar billede eagleeye Praktikant
10. juli 2002 - 22:54 #3
Ja det er rigtigt, tal kan ikke sætte til Null. Du kan sætte en default værdi for tallet via din SQL sætning.

nummer = Request.Form("nummer")
if nummer = "" then
  nummer = 0
end if
Avatar billede lyngedrengen Nybegynder
10. juli 2002 - 22:58 #4
...og det samme skal så gælde for dato?
Avatar billede lyngedrengen Nybegynder
10. juli 2002 - 23:01 #5
Jeg har ændret datofeltet til et tekstfelt - får alligevel ikke brug for at benytte dataene i det som datoer.

Mange tak for hjælpen - håber du kan bruge pointene ;-)
Avatar billede eagleeye Praktikant
10. juli 2002 - 23:08 #6
mine mail kommer lidt bagud her i aften... men du kan udelade Dato fra SQL så bliver den tom i databsen, den skal man ikke sætte til tilladnull længde. Hvis du udelader den fra SQL'en så bliver dato feltet tomt.

Det bliver noget i stil med det du har:

IF placering <> "" THEN
  SQL = SQL & ", Placering = '"&placering&"'"
END IF


IF datofelt <> "" THEN
  SQL = SQL & ", datokolonne= '"&datafelt&"'"
END IF
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