Hej på er! En relationsdatabas designas inte på nåt speciellt sätt om man ska använda den mot asp. Gör en fråga i Access som visar vilka författarId har skrivit vilka nyhetsID. Kör sedan ett sql-uttryck från din applikation som hämtar info från frågan. Har suttit och läst på lite om det där med "joins". Är nog för trött nu för att riktigt fatta det hela... :-) Ska du använda dig av en join ska den se något sånt här:Relationsdatabaser
Har en fråga ang. ASP och relationsdatabaser.
Jag har letat efter en tutorial / artikel som beskriver hur man designar
en relationsdatabas (i Access) för åtkomst via ASP. Det är ju inga större
problem att hitta artiklar om hur man gör det i Access, men det jag
saknar är en artikel om relationsdatabaser inriktat på just ASP. Jag
skulle vilja bygga någon typ av applikation där registrerade användare
kan skriva en artikel om någonting och då ska man kunna se vad den
besökaren har publicerat tidigare om man vill. Detta löser man väl
lättast med någon typ av relationsdatabas, eller? En tabell med
författare med ID knutet till författarID i nyhetsdatabsen? Ja, ni förstås
säkert vart jag vill komma...
Jag kan inte riktigt få grepp om recordesets när jag vill ha info från
flera tabeller som är relaterade till varandra. Jag skulle helst vilja
hitta en svensk artikel om något liknande, men tar gärna emot alla
förslag jag kan få! Kanske kan någon tipsa om någon bra bok?
Tack på förhand!
/..Ronnie FaltinSv: Relationsdatabaser
Ett recordset populera mha en SQL-fråga tex
select a.namn, b.titel from person a, artikel b where a.ID = b.ID
recordsettet kommer då innehålla namn och titel som hämtas från två olika tabeller (person, artikel)
du använder recordsettet på samma sätt som om du skulle hämtat datat från en tabell...
Hoppas du blev lite klokare
// DavidSv: Relationsdatabaser
Sv: Relationsdatabaser
Löste dock mitt problem med följande rader:
Dim ReporterChoice
ReporterChoice = Request.Form("ReporterID")
%>
<%
Set Conn = Server.CreateObject("adodb.connection")
Conn.Open "Driver={Microsoft Access Driver (*.mdb)};" & "Dbq=d:\inetpub\wwwroot\db\news\news.mdb;" & "Uid=;" & "Pwd=;"
strSQL="SELECT * FROM tbl_medlemmar, tbl_nyheter WHERE id="& ReporterChoice &" AND reporterID="& ReporterChoice &""
set RS=Conn.Execute(strSQL)
("reporterChoice" är en variabel från en formulär-sida med en select som visar tillgängliga reporters).
Vet inte om detta är en puckad lösning, men det funkar iaf? :-)
Nu undrar jag bara hur man fixar så att man inte får ett felmeddelande om det visar sig att den valda reportern inte har skrivit några nyheter?
Nu får jag upp följande meddelande:
ADODB.Field fel '80020009'
Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats; åtgärden som programmet begärt kräver en aktuell post.
Jag har hoppat runt lite bland artiklar och inlägg i forumet och sett att man brukar använda:
If Not RS.EOF OR RS.BOF Then
lista all information
Else
Response.Write "Inga poster hittades"
End If
Vad är det som jag gör fel egentligen?
Tacksam för all hjälp jag kan få!
/..Ronnie FaltinSv: Relationsdatabaser
strSQL="SELECT * FROM tbl_nyheter LEFT JOIN tbl_medlemmar ON tbl_nyheter.reporterID = tbl_medlemmar.id WHERE tbl_nyheter.reporterID="& ReporterChoice
If satsen:
Dim fldID
If rsTemp.Eof Then
Response.Write "Medlemm har inte skrivit några nyheter!"
Else
Set fldID = rsTemp("ID")
Do Until rsTemp.Eof
Response.Write "ID:" & fldID.Value
Response.MoveNext
Loop
End if