Avatar billede aabo Nybegynder
17. juli 2006 - 11:56 Der er 5 kommentarer og
1 løsning

SQL forspørgelse

Jeg har brug hjælp til at lave en sql forspørgelse.

Den skal tjekke en sql tabel igennem. Tabellen indeholder 4 kolonner.

Den skal tjekke om kollonne nr 1 = "xxx" og hvis de passer sammen skal den læse kollone nr 2,3,4.

Hvis de ikke passer sammen, skal den oprette en row med "xxx" i kollonne nr 1.

Det haster lidt, derfor det højre point tal

På forhånd tak
Avatar billede softspot Forsker
17. juli 2006 - 12:07 #1
Det er vel næsten nød til at gøres i to trin og det ville være lettest hvis man kunne se hvad for noget kode du har i forvejen.

Grundliggende må det være noget i stil med dette (men skal nok justeres lidt alt efter hvilken database og serversprog du bruger - dette er VBS og access/ms sql server):

kolonnevaerdi = "xxx"
sql = "SELECT * FROM tabel WHERE kolonne1 = " & kolonnevaerdi
set rs = conn.Execute(sql)
if rs.eof then
  rs.close
  conn.Execute("INSERT INTO tabel(kolonne1) VALUES('" & kolonnevaerdi & "')"
  sql = "SELECT * FROM tabel WHERE kolonne1 = " & kolonnevaerdi
  set rs = conn.Execute(sql)
end if

if not rs.eof then
  ' Så kan kolonnerns værdier aflæses i rs...
else
  ' Så er der sket en fejl og den skal sikkert meddeles til brugeren...
end if

rs.close
conn.close
Avatar billede aabo Nybegynder
17. juli 2006 - 13:42 #2
1000 tak. Det var det der skulle til, dog skulle der lige byttes rundt på de 2 if sætninger.

Smid et svar, og du får dine velfortjente point
Avatar billede softspot Forsker
17. juli 2006 - 14:00 #3
Det med at bytte rundt forstod jeg ikke lige (den først SELECT undersøger om der er en række der matcher og den anden indlæser den nye der lige er oprettet - hvs den første SELECT ikke fandt noget), men hvis du kan bruge det, så er det fint med mig :)

Velbekomme :)
Avatar billede softspot Forsker
17. juli 2006 - 14:07 #4
Øhm... den skal vist lige uddybes :)

Den først if-sætning checker om der er noget i resultatet af den første SELECT og hvis der ikke er så opretter den rækken og indlæser den nye række, så den sidste if altid burde hoppe ind i if-delen af if-then-else sætningen til sidst...

Jeg ved ikke om det blev mere tydeligt at det, men du har jo fundet ud af det, så der skal nok ikke bruges mere krudt på det :)
Avatar billede aabo Nybegynder
17. juli 2006 - 14:28 #5
Den blev ved med at oprette en post i DB, selvom der fandtes en i forvejen, og det holdt den op med at jeg byttede rundt på dem.

Jeg er ikke den store programmerings haj, så hvorfor det skulle byttes rundt kan jeg ikke svare på.

endnu engang tak for hjælpen
Avatar billede softspot Forsker
17. juli 2006 - 14:35 #6
Hmm... det lyder mystisk, men som sagt hvis du har fået det til at fungere, så er det jo det vigtigste.

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