Avatar billede lightbrain Nybegynder
27. juli 2002 - 11:34 Der er 12 kommentarer og
2 løsninger

SQL - where

Hej

Jeg har et script, som skal finde det nr., som en oprettet artikel har fået af databasen, men jeg er i tvivl om, hvordan man bruger "where" med flere oplysinger?

strSQL = "select * from artikel WHERE TITEL = '" & Request.form("titel") & "', forfatter = '" & Request.form("forfatter") & "', beskrivelse = '" & Request.form("beskrivelse") & "'"
set rs = Conn.execute(strSQL)
response.redirect ("tekst.asp?nr=" & rs("nr"))
Avatar billede stig3 Mester
27. juli 2002 - 11:36 #1
Hvis artiklen lige er blevet oprettet er det nemmere at tage den sidste post i db'en

Har du ikke et id-felt ?

Højeste id må jo så være den sidste post.
Avatar billede lightbrain Nybegynder
27. juli 2002 - 11:44 #2
Tja, men hvad så hvis flere opretter artikler på samme tid? Så får de nemlig hinandens nr. tildelt -> fejl.

Men hvordan får jeg min sql-sætning til at virke? Den siger:
Syntax error (comma) in query expression 'TITEL = 'Mad', forfatter = 'mig, beskrivelse = 'blabla''.
Avatar billede likedon Nybegynder
27. juli 2002 - 11:44 #3
kunne se ud som følgende altså kun ideen da jeg ikke lige har brugt dine variabler:

    strSQL = "SELECT thread.*, user.username, user.www, user.location, user.nr_posts, user.join_date, user.signature, user.active, user.rank, user.avatar, topic.subject, topic.locked, topic.priority, topic.nr_views FROM topic, user, thread WHERE user.user_id = thread.user_id AND topic.topic_id = thread.topic_id AND thread.topic_id=" & lngTopicID & " ORDER by thread.message_date ASC;"
Avatar billede likedon Nybegynder
27. juli 2002 - 11:45 #4
glem mit..
Avatar billede dover Nybegynder
27. juli 2002 - 11:45 #5
hvis der er risiko for at der bliver oprettet artikler samtidig kan der opstå problemer ved bare at tage det nyeste nr. Du kan ikke være sikker på at det er det rigtige id du får.

mht. sql'en kan du vel bare bruge AND

strSQL = "select * from artikel WHERE TITEL = '" & Request.form("titel") & "' AND forfatter = '" & Request.form("forfatter") & "'AND beskrivelse = '" & Request.form("beskrivelse") & "'"
set rs = Conn.execute(strSQL)


jeg ved ikke lige hvad det er for en applikation eller sprog du sidder med men ofte får man returneret nøglen når man opretter en post
Avatar billede likedon Nybegynder
27. juli 2002 - 11:48 #6
jeg vil henlede opmærksomheden på følgende link:
http://www.kamath.com/tutorials/tut004_autonum.asp

Hvis du henter id-nr samtidlig med at du opretter artiklen så skulle der ikke være noget problem
Avatar billede stig3 Mester
27. juli 2002 - 11:50 #7
Felere på samme tid...........

Dertil bruger man transactioner. BeginTrans og commit eller rollback.

Du kan jo heller ikke være 100% sikker på at en forfatter ikke opretter 2 artikler med samme titel og beskrivelse....
Avatar billede stig3 Mester
27. juli 2002 - 11:51 #8
Felere = Flere
Avatar billede lightbrain Nybegynder
27. juli 2002 - 11:53 #9
>Hvis du henter id-nr samtidlig...
Men det gør det heller ikke, for jeg henter nemlig nummeret to linier senere. Det har aldrig givet fejl. Fejlen opstod, da jeg blev kræsen og vil have at den søgte ("where") på to oplysinger i stedet for et.

>>dover
"And" virkede heller ikke - gav samme fejl.

>>forfatter ikke opretter 2 artikler
Men jeg har flere oplysinger, som jeg kan koble på - jeg forsøger bare at holde det simpelt.
Avatar billede lightbrain Nybegynder
27. juli 2002 - 11:55 #10
Det eneste, som jeg spørger efter, er:

Hvordan bruger man WHERE på mere end en oplysing?
Avatar billede stig3 Mester
27. juli 2002 - 11:55 #11
Har du prøvet at udskrive din SQL ?
Avatar billede stig3 Mester
27. juli 2002 - 11:58 #12
Man bruger AND imellem i Access og SQL Server
Avatar billede lightbrain Nybegynder
27. juli 2002 - 11:58 #13
Stop en halv - min fejl. Svaret 27/07-2002 11:45:31 fra dover virkede alligevel.
Avatar billede lightbrain Nybegynder
27. juli 2002 - 11:59 #14
Tak likedon for at gøre mig opmærksom på:
http://www.kamath.com/tutorials/tut004_autonum.asp
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