/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Relationer?
Fra : Flemming Jensen


Dato : 15-10-02 18:16

Hej igen

Jeg er stødt på et problem jeg simpelthen ikke kan selv kan løse. Jeg bruger
følgende kode til at hente nogle tråde til et forum:

strSQL = "Select * FROM Entries WHERE EntrieID =
"&Request.Querystring("entrieid")&" AND Orginal = True "
SET rs = Conn.Execute(StrSQL)

Derfor kan jeg så skrive f.eks. emne ud, ved Reponse.Write(rs("emne"))
etc... Jeg har bl.a. også rs("brugernavn") som giver navnet på brugeren der
har skrevet tråden i forumet, men jeg vil også gerne kalde hans email
adresse frem, som ligger i en anden tabel, nemlig brugere og ikke entries
som trådene ligger i. Hvordan gør jeg det?

Det skal være noget med at den først finder brugernavnet med ovenstående
kode og bagefter kører "Brugere" tabellen i gennem efter poster som passer
på brugernavnet og derefter finder email adressen der passer til.

Håber det giver mening, ellers må jeg prøve igen.

Tak
__
Flemming Jensen



 
 
Flemming Jensen (15-10-2002)
Kommentar
Fra : Flemming Jensen


Dato : 15-10-02 18:25

Hej igen...

Jeg håber virkelig en eller anden kan forklare mig lidt om relationerne, for
jeg kan ikke helt lurer den selvom jeg selvfølgelig har læst en del om det
før jeg spurgte her.

Da det er muligt at skifte brugernavn på min side har jeg i min tabel over
tråde til forumet kun et felt som viser hvem der har skrevet tråden, nemlig
ID nummer. Hvis jeg kan lære hvordan relationerne virker, hvis det altså
overhovedet er muligt, kan jeg på den måde måske få den til at hente selve
brugernavnet i tabellen "Brugere" som altså passer på ID nummeret. Rimelig
smart ved dynamisk brugernavn.

Tak
__
Flemming Jensen





Jakob Andersen (15-10-2002)
Kommentar
Fra : Jakob Andersen


Dato : 15-10-02 19:27

"Flemming Jensen" <CyberOrc@tiscali.dk> wrote
> Derfor kan jeg så skrive f.eks. emne ud, ved Reponse.Write(rs("emne"))
> etc... Jeg har bl.a. også rs("brugernavn") som giver navnet på brugeren
der
> har skrevet tråden i forumet, men jeg vil også gerne kalde hans email
> adresse frem, som ligger i en anden tabel, nemlig brugere og ikke entries
> som trådene ligger i. Hvordan gør jeg det?

Det du skal bruge er en JOIN, der findes en ret god gennemgang af JOINS til
husbehov her:

<http://www.w3schools.com/sql/sql_join.asp>

--
Jakob Andersen



Flemming Jensen (15-10-2002)
Kommentar
Fra : Flemming Jensen


Dato : 15-10-02 20:38

Jakob Andersen skrev

Det du skal bruge er en JOIN, der findes en ret god gennemgang af JOINS til
> husbehov her:
>
> <http://www.w3schools.com/sql/sql_join.asp>

Tak for det. Virkede meget let, men så stødte jeg alligevel allerede på et
problem:

Det her virker fint:

strSQL = "SELECT * FROM Entries INNER JOIN Brugere ON
Entries.Brugernavn=Brugere.Brugernavn WHERE Entries.EntrieID =
"&Request.Querystring("entrieid")&" AND Orginal = True "

Hvor Entries.Brugernavn og Brugere.Brugernavn begge er tekst felter.
Problemet opstår hvis jeg, som jeg meget gerne vil, bruger ID. Der vil det
så blive til:

strSQL = "SELECT * FROM Entries INNER JOIN Brugere ON
Entries.BrugernavnID=Brugere.BrugerID WHERE Entries.EntrieID =
"&Request.Querystring("entrieid")&" AND Orginal = True "

På den måde er jeg sikret, da folk kan lave deres brugernavn om, men ikke
deres ID.

Jeg får følgende fejl med den kode:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access-driver] Datatyper i JOIN-udtrykket stemmer
ikke overens.

Det eneste jeg kan se, der kan være et problem, er, at Entries.BrugernavnID
er af typen Tal, hvorimod BrugerID er primærnøglen i brugere tabellen, og er
sat som autonummerering.

Hvis det er tilfældet at man ikke kan sætte to forskellige datatyper = med
hinanden, er der så ikke en mulighed for noget a la at tage en nummerisk
værdi af felterne og sammenligne dem?

Håber I kan hjælpe, men det plejer I jo også at kunne =)

Tak
__
Flemming Jensen



Flemming Jensen (15-10-2002)
Kommentar
Fra : Flemming Jensen


Dato : 15-10-02 21:00

Jeg prøvede lige at rette Brugere.BrugerID og Entries.BrugernavnID til samme
type. Altså så de begge var af typen tal, men fik stadig sammen fejl, så nu
forstår jeg slet ikke hvad det kan være. Men jeg har jo også lige lært om
JOIN for 20 minutter siden =)

__
Flemming Jensen



Jørn Andersen (15-10-2002)
Kommentar
Fra : Jørn Andersen


Dato : 15-10-02 21:30

On Tue, 15 Oct 2002 21:37:44 +0200, "Flemming Jensen"
<CyberOrc@tiscali.dk> wrote:

>Jeg får følgende fejl med den kode:
>
>Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
>[Microsoft][ODBC Microsoft Access-driver] Datatyper i JOIN-udtrykket stemmer
>ikke overens.
>
>Det eneste jeg kan se, der kan være et problem, er, at Entries.BrugernavnID
>er af typen Tal, hvorimod BrugerID er primærnøglen i brugere tabellen, og er
>sat som autonummerering.

Fremmednøglen (Entries.BrugernavnID) skal være af typen Langt heltal
for at matche en Autonummerering.

I øvrigt, hvis der går ged i relationerne (og hvis det er en Access
db), så kan det måske hjælpe at lave forespørgslen i QBE-gitteret i
databasen og så kigge på den genererede SQL. Denne kan så (næsten)
direkte kopieres over i ASP.

Good luck!

--
Jørn Andersen,
Brønshøj

Flemming Jensen (15-10-2002)
Kommentar
Fra : Flemming Jensen


Dato : 15-10-02 21:55

Jørn Andersen skrev

> Fremmednøglen (Entries.BrugernavnID) skal være af typen Langt heltal
> for at matche en Autonummerering.

Det er rigtigt. Men det væreste er, at jeg havde Entries.BrugernavnID
defineret af typen, tekst. Det er en flov fejl. Havde tjekket en masse
andet, men selvfølgelig ikke det, da jeg troede det jo var tal. Men tak for
det. Først da jeg læste dit svar, at jeg kom til at tænke over det. Lidt
dårlig fejl at lave, men okay, det er hvad der sker.

> I øvrigt, hvis der går ged i relationerne (og hvis det er en Access
> db), så kan det måske hjælpe at lave forespørgslen i QBE-gitteret i
> databasen og så kigge på den genererede SQL. Denne kan så (næsten)
> direkte kopieres over i ASP.

Det synes jeg egentlig godt jeg kan huske nu du siger det. Vi var lidt inde
på det på Handelsskolen. Tror endda jeg har et hæfte om Access et eller
andet sted :)

__
Flemming Jensen



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste