Avatar billede md_craig Nybegynder
02. juli 2002 - 22:56 Der er 15 kommentarer og
1 løsning

ASP/SQL Hjælp

Hej... jeg har fælgende kode... men det virker ikke... men hvad er der galt.. ifølge min SQL viden så skulle det kunne lade sig gøre at blande update og select... men helt hvordan det skal skrives her ved jeg ikke
--------------------------------------------------------
Dim cn, SQL, URL, Hits, ID

Hits = Request.QueryString("Hits") + 1
URL = Request.QueryString("URL")
ID = Request.QueryString("ID")

set cn = server.createobject("ADODB.Connection")
cn.open = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("data.mdb")

SQL = "UPDATE Links SET Hits=((SELECT Hits FROM Links WHERE Link_ID = " & ID & ") + 1) WHERE Link_ID = " & ID & ";"

  Response.Write SQL

cn.execute(SQL)
cn.Close
set cn = Nothing

  Response.redirect URL
--------------------------------------------------------

den SQL den skal exekvere ser således ud:
--------------------------------------------------------
UPDATE Links SET Hits=((SELECT Hits FROM Links WHERE Link_ID = 35) + 1) WHERE Link_ID = 35;
--------------------------------------------------------
Avatar billede eagleeye Praktikant
02. juli 2002 - 22:59 #1
Hvis jeg forstår dig ret så vil du ligge en til Hits hvor link_id = ID (35), så kan du bare gøre sådan her:

SQL = "UPDATE Links SET Hits=Hits+ 1 WHERE Link_ID = " & ID & ";"
Avatar billede curriculum Nybegynder
02. juli 2002 - 23:04 #2
Du kan ikke execute to SQL'er på een gang :(
Kør først:
strSQL = "SELECT Hits FROM Links ..."
objRs = cn.Execute(strSQL)

intHits = objRs("Hits")
...

str1SQL = "UPDATE Links SET Hits = intHits +1 WHERE Link_ID = " & ID & ";"

Forstår du mit forslag ?
Avatar billede md_craig Nybegynder
02. juli 2002 - 23:11 #3
curriculum >>> Jeg sider med en SQL bog her foran mig... det skulle kunne lade sig gøre...

eagleeye >>> jo tak... men det ville nu være fikst hvis jeg kunne få lavet en flettet SQL.. så jeg viste hvordan man gjorde det til en anden gang... men jeg bruger dit... takker
Avatar billede eagleeye Praktikant
02. juli 2002 - 23:15 #4
Er din bog til Access?

Jeg har prøvet dit forslag og den giver: Operation must use an updateable query.
Avatar billede md_craig Nybegynder
02. juli 2002 - 23:17 #5
eagleeye >>> Det er en SQL bog til arbejde med "SQL databaser", altså de typer af databaser hvor man bruger SQL til at trække værdier ud... og der må Access da falde under...
Avatar billede eagleeye Praktikant
02. juli 2002 - 23:17 #6
Kan jeg svare?
Avatar billede eagleeye Praktikant
02. juli 2002 - 23:20 #7
Både og, det er ikke en ren SQL database.
Eksvis kan du ikke i Access havde to SQL sætniger i samme SQL-streng adskildt med ; som man kan i MSSQL/MySQL:

"SELECT * FROM tabel;UPDATE counters SET tabel_c=tabel_c+1 WHERE ID=22;"
Avatar billede eagleeye Praktikant
02. juli 2002 - 23:22 #8
LOL.... mail er så forsinket at jeg lige har fået mailen at du har oprette dette spørgsmål, selvom jeg har fået mails med dine andre kommentare :)
Avatar billede md_craig Nybegynder
02. juli 2002 - 23:24 #9
OK... det er da træls... så fik Access et knæk... men det vil så givet kunne gøres med en mySQL database fx ???

Nå men man må lære hver dag... det ville desvære bare simplificere noget af det fremtidige jeg skal til at lave hvis den ville godtage Flettet SQL sætninger...
Avatar billede eagleeye Praktikant
02. juli 2002 - 23:25 #10
Men man kan godt havde SELECT  i  SELECT:

"SELECT * FROM tabel WHERE ID =(SELECT ID FROM tabel2 WHERE ID3=344;)"
Avatar billede md_craig Nybegynder
02. juli 2002 - 23:28 #11
Nåhh... så må det andet vel også kunne lade siggøre på en eller anden måde... for det du har der er en Flettet SQL
Avatar billede eagleeye Praktikant
02. juli 2002 - 23:30 #12
Jeg har ikke lige adgang til mySQL lige i øjeblikket, men jeg ville tro det var muligt. I princippet skulle der ikke være noget galt med det.

Jeg ville dog tro at SELECT skulle afsluttes med ; også selv om det står inde i ():
strSQL = "UPDATE Links SET Hits=(SELECT Hits FROM Links WHERE Link_ID = 2;) + 1 WHERE Link_ID = 2;"
Avatar billede md_craig Nybegynder
02. juli 2002 - 23:34 #13
FX så er et af eksemplerne fra bogen:

INSERT INTO Medlemmer (Nr, Efternavn, Telefon) SELECT Spnr, Spnavn, Tlfnr FROM Spillere WHERE Spnr NOT IN ( SELECT Nr FROM Medlemmer);

eller

UPDATE Medlemmer SET Telefon=(SELECT Telefon FROM Medlemmer WHERE Efternavn = 'Olsen' AND Forbogstav = 'G') WHERE Efternavn = 'Poulsen' AND WHERE Forbogstav = 'P';
Avatar billede md_craig Nybegynder
02. juli 2002 - 23:37 #14
Det kunne godt tænkes.... jeg har desvære heller ikke selv adgang til mySQL

men nu kan du se de eksempler jeg har givet... og der er der ikke ; i slutningen...
Avatar billede eagleeye Praktikant
02. juli 2002 - 23:41 #15
Ok. Ja det kan jeg se. Jeg kan stadig ikke få det til at virke med Access, med SELECT inde i UPDATE.
Avatar billede md_craig Nybegynder
02. juli 2002 - 23:45 #16
Nå... men lad vær med at arbejde i det... jeg har givet op... du kan jo altid rode med det hvis du får brug for det... og det kan jeg også...

men takker...
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