webForumDet fria alternativet

två tabeller öppna samtidigt?

ASP

25 svar · 569 visningar · startad av ampy

Medlem sedan feb. 20011 498 inlägg
Frågan#1

Kan man ha två tabeller öppna på en gång, kan man göra tex så här då:

SQL = "Select * From members WHERE username = '"&session("username")&"'"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic

SQL2 = "Select * From dagbok WHERE username = '"&session("username")&"'"
RecSet2.Open SQL, Connect, adOpenStatic, adLockOptimistic

Eller ska man göra det på något annat sätt?

Medlem sedan aug. 2001112 inlägg
#2

Japp det går...men...

varför hämtar du inte ut informationen i samma SQL sats?

Typ så här:

SELECT m.*, d.* From members m, dagbok d WHERE 
m.username = '"&session("username")&"' AND WHERE d.username2 = '"&session("username")&"'

@EchO

Medlem sedan feb. 20011 498 inlägg
#3

Felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e14' 

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'm.username = 'Andreas' AND WHERE d.username2 = 'Andreas''. 

/80/dagbok.asp, line 11

Rad 11:

SQL = "SELECT m.*, d.* From members m, dagbok d WHERE m.username = '"&session("username")&"' AND WHERE d.username2 = '"&session("username")&"'"
Medlem sedan juni 200032 967 inlägg
#4

WHERE skall bara förekomma en gång.

SQL = "SELECT m.*, d.* From members m, dagbok d WHERE m.username = '"&session("username")&"' AND d.username2 = '"&session("username")&"'"

Mvh,

Medlem sedan feb. 20011 498 inlägg
#5

På din tråd @nders fick jag följande felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers fel '80040e10' 

[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
Medlem sedan okt. 20005 273 inlägg
#6

Slriv ut SQL-satsen med

Response.Write SQL

då ser man lättare vad som är fel :)

Medlem sedan aug. 2001112 inlägg
#7

Jag råkade sätta in username2 istället för username...
Kontrollera så att du har rätt namn...

@EchO

Medlem sedan feb. 20011 498 inlägg
#8

Så här ser koden ut nu:

SQL = "SELECT m.*, d.* From members m, dagbok d WHERE m.username = '"&session("username")&"' AND d.username = '"&session("username")&"'"
Response.Write SQL
RecSet.Open SQL, Connect, adOpenStatic, adLockOpt
Felmeddelande:
SELECT m.*, d.* From members m, dagbok d WHERE m.username = 'Andreas' AND d.username = 'Andreas' 
Microsoft OLE DB Provider for ODBC Drivers fel '80040e10' 

[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
Medlem sedan juni 200032 967 inlägg
#9

Stämmer tabell och fältnamn? Dubbelkolla.

Medlem sedan feb. 20011 498 inlägg
#10

Kom på att kolumnen session("username") finns ju inte i tabellen dagbok, utan det är så här jag vill göra. I tabellen dagbok vill jag hämta alla poster som innehåller session("username") ur kolumnen skribent. Den första tabellen stämde alltså men hur ska jag göra i den andra tabellen?

Medlem sedan aug. 2001112 inlägg
#11

Testa med det här:
Det blir nog knas när du ska skriva ut username pga att de heter likadant i de två tabellerna...

SELECT m.username AS user1, d.username AS user2 From members m, dagbok d WHERE m.username = '"&session("username")&"' AND d.username = '"&session("username")&"'"

När du sedan ska skriva ut username använder du user1 istället...

Medlem sedan feb. 20011 498 inlägg
#12

Kan man inte skriva något i stil med det här?

SQL = "SELECT m.*, d.* From members m, dagbok d WHERE m.username = '"&session("username")&"' AND d.username = skribent = '"&session("username")&"'"

OBS!
Den koden ovan fungerade inte.

Medlem sedan aug. 2001112 inlägg
#13

Så kan du inte skriva!

Kan du visa hur dina tabeller ser ut...

Medlem sedan feb. 20011 498 inlägg
#14

Alltså jag vill hämta information från två olika tabeller. Den enda heter members och den andra heter dagbok. I tabellen dagbok så vill jag skriva ut de poster som innehåller session("username") i kolumnen skribent.

Hoppas du förstår bättre nu.

Medlem sedan mars 20015 287 inlägg
#15
SQL = "SELECT m.*, d.* From members m, dagbok d WHERE m.username = '"&session("username")&"' AND d.skribent = '"&session("username")&"'"
Medlem sedan feb. 20011 498 inlägg
#16

Tack så mycket solbulle. Denna kod har jag en bit under:

If Not RecSet.EOF Then
		
Do Until RecSet.EOF

RecSet("datum")

RecSet.MoveNext
Loop
Else
Response.Write "Inga meddelanden hittades."
End If

Jag vill att denna kod ska hämta från tabellen dagbok, hur ska man göra då?

Medlem sedan mars 20015 287 inlägg
#17

Det borde fungera, förutom att du ska väl göra något med:
RecSet("datum")

tex:

response.write RecSet("datum")

Där emellan kommer ju öppnandet av SQL-satsen o så men det förutsätter jag att du har redan!?!

Medlem sedan feb. 20011 498 inlägg
#18

Nu fick jag detta felmeddelande på en rad lite längre ner på sidan:

Undantag inträffade. 

/80/dagbok.asp, line 127

rad 127 ser ut så här:

<% If Session("username") = RecSet("username") Then%>

RecSet("username") hämtar jag ju från tabellen members, men den koden jag visade innan hämtar jag från dagbok och den funkar. Måste man inte skriva något så att servern vet att vilken tabell den ska ta ifrån eller sker det automatiskt?

Medlem sedan mars 20015 287 inlägg
#19

Jag tycker nog att du skall fått med dig det.

Det lättaste sättet att testa är nog att tillfälligt göra så att din If-sats inte körs och sen skriva ut och kolla värdet med:

response.write RecSet("username")

Medlem sedan feb. 20011 498 inlägg
#20

Då får jag detta felmeddelande:

Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.

264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)