Avatar billede Slettet bruger
23. august 2003 - 13:16 Der er 17 kommentarer og
2 løsninger

SQL flere tabeller

Jeg er rimelig ny i ASP, men synes selv jeg er ved at få smag for det, dog har jeg nogle problemer med SQL udtrækket hvor den laver fejl, vil meget gerne have lidt hjælp.

Jeg har 5 tabeller og jeg skal bruge oplysninger fra alle fem, det jeg så vil er at opsætte SQL sætninger og afvikle dem og så tage de forskellige data, simpeltnok.

Jeg har sat det op som følger:

' SQL forespørgsel
SQLcap = "SELECT * FROM tblUser, Cap WHERE tblUser.MemberID = Cap.MemberID AND tblUser.Username = '" & session("Username") & "' ORDER BY Dato"
SQLask = "SELECT * FROM Asking INNER JOIN tblUser On Asking.MemberID = tblUser.MemberID WHERE PartyID = '" & session("PartyID") & "'"
SQLinv = "SELECT * FROM Invited INNER JOIN tblUser On Invited.MemberID = tblUser.MemberID WHERE PartyID = '" & session("PartyID") & "'"
SQLbar = "SELECT * FROM Bar INNER JOIN Barlinie ON Bar.BarID = Barlinie.BarID WHERE PartyID = '" & session("PartyID") & "'"

' Udfør forespørgsel
Set rs = Conn.Execute(SQLcap)
Set rsask = Conn.Execute(SQLask)
Set rsinv = Conn.Execute(SQLinv)
Set rsbar = Conn.Execute(SQLbar)
%>

Men det kan den ikke lide eller rettere den fejler ved udførsel af anden forespørgsel rsask, her skriver den følgenden:

Microsoft JET Database Engine (0x80040E07)
Data type mismatch in criteria expression.
/cap/party.asp, line 26

Hvad skal jeg gøre, eller hvordan skal jeg gøre for at det kommer til at virke, håber nogen har mere styr på SQL og ASP end mig pt.
Avatar billede Slettet bruger
23. august 2003 - 13:17 #1
Hvis PartyID er et tal så prøv:
SQLask = "SELECT * FROM Asking INNER JOIN tblUser On Asking.MemberID = tblUser.MemberID WHERE PartyID = " & session("PartyID")
Avatar billede Slettet bruger
23. august 2003 - 13:23 #2
Det hjalp ikke, desuden er det ikke i selve SQL statementen en fejler, men først når den skal afvikle, ikke at jeg ved om det så er afviklingen eller udførings processen den er gal med.
Avatar billede Slettet bruger
23. august 2003 - 13:25 #3
Fejler den ikke ved denne linie
Set rsask = Conn.Execute(SQLask)
Avatar billede Slettet bruger
23. august 2003 - 13:26 #4
jo, præcis den linie
Avatar billede Slettet bruger
23. august 2003 - 13:28 #5
Jamen så er der også noget galt i den sql jeg gav dig. Det kan være at Access ikek kan lide inner join? Så prøv som du gjorde i den første:
SQLask = "SELECT * FROM Asking,tblUser WHERE Asking.MemberID = tblUser.MemberID AND PartyID = " & session("PartyID")
Avatar billede Slettet bruger
23. august 2003 - 13:28 #6
når jeg sætter det ind du foreslog, skrievr den dette:

Microsoft JET Database Engine (0x80040E14)
Syntax error (missing operator) in query expression 'PartyID ='.
/cap/Party.asp, line 26
Avatar billede eagleeye Praktikant
23. august 2003 - 13:29 #7
Jo Access han INNER JOIN'e
Avatar billede Slettet bruger
23. august 2003 - 13:30 #8
Ja det tyder på at din Session("PartyID") er tom, prøv istedet for at udføre sætningen at sætte dette ind:
Response.Write sqlask
response.End
Avatar billede eagleeye Praktikant
23. august 2003 - 13:30 #9
Læs dog fejl teksten... "Data type mismatch in criteria expression"
Altså er der et problem med data typen og ikke Syntaxen...
Avatar billede Slettet bruger
23. august 2003 - 13:34 #10
bertie >> hvis jeg sætter teksten ind skriver den ingen ting

eagleeye >> tag d roligt, som jeg skrive er jeg ny i faget
Avatar billede Slettet bruger
23. august 2003 - 13:37 #11
Du skal sætte det ind efter du har sagt
SQLask = "SELECT * FROM Asking INNER JOIN tblUser On Asking.MemberID = tblUser.MemberID WHERE PartyID = " & session("PartyID")
Avatar billede Slettet bruger
23. august 2003 - 13:46 #12
så skriver den bare sql statementen
SELECT * FROM Asking, tblUser WHERE Asking.MemberID = tblUser.MemberID AND PartyID = ''
Avatar billede Slettet bruger
23. august 2003 - 13:51 #13
Det er fordi som jeg skrev tidligere at din session("partyID") er tom og så kan man ikke udføre sql'en, så du er nødt til at sørge fro at sessionen ikke er tom før du kan komme videre.
Avatar billede Slettet bruger
23. august 2003 - 13:54 #14
allright, det prøver jeg, tak for hjælpen indtil nu.
Avatar billede nielle Nybegynder
23. august 2003 - 13:59 #15
Jeg synes nu mere at fejlbeskeden tyder på at Asking.MemberID og tblUser.MemberID ikke er af samme type.

Hvis session("PartyID") ver tom ville der næppe komme en fejl ud af det siden at testen:

... WHERE PartyID = ''

- ikke ligefrem er ulovlig.
Avatar billede Slettet bruger
24. august 2003 - 01:00 #16
Jeg har fået det til at virke, dog ikke med det i sagde, men mere lidt af det Bertie sagde, plus at jeg lavede lidt om på det.
Avatar billede nielle Nybegynder
24. august 2003 - 07:27 #17
I såfald burde du have bedt bertie om at lægge et svar så du kunne give ham vare lidt af din points.
Avatar billede Slettet bruger
24. august 2003 - 13:10 #18
nielle>> Jeg(hun) har fået halvdelen af points så det er ok.
spacemanics>> Tak for points.
Avatar billede nielle Nybegynder
24. august 2003 - 21:54 #19
bertie -> cool :^)
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