🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: dk.edb.internet.webdesign.serverside.asp
42 messages
42 total messages Started by Jens R. Rasmussen Sun, 19 Jun 2011 19:07
DB-opslag mellem relaterede tabeller
#495
Author: Jens R. Rasmussen
Date: Sun, 19 Jun 2011 19:07
47 lines
2419 bytes
Hej/

Mit sp�rgsm�l er meget element�rt, men jeg kender desv�rre ikke
svaret.

Jeg har en Acess database med tabeller, der er indbydes
relaterede. En tabel hedder Stamdata og den indeholder bl.a.
feltet Formand. En anden tabel hedder Kunder, og den indeholder
bl.a. felterne Fornavn og Efternavn p� en lang r�kke personer. 
Indhold af feltet Formand i Stamdata er n�gle til tabellen
Kunder.

Ved genneml�b af Stamdata udv�lger jeg en r�kke formands id'er,
som jeg skal bruge til at finde Fornavn og Efternavn i Kunder.

Jeg har f�lgende kode:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open DSN
strSQL = "SELECT * FROM Stamdata ORDER By Saeson desc"
set rs = Conn.Execute(strSQL)
DO WHILE Not rs.eof
Response.write "Formand:" & rs("Formand") & "<br />"
..
rs.MoveNext
Loop
...

Se det giver mig en korrekt liste af formands-id'er, fx '17',
'23' og '138'. Men jeg skal jo ikke liste id'eerne men liste de
tilsvarende fornavne og efternavne, som findes i den anden tabel
(kunder).

Hvordan kan jeg under s�gningen i Stamdata samtidig s�ge i Kunde
for at finde nr. 17 for- og efternavn uden at �del�gge den
fortsatte s�gning i Stramdata?

mvh
   /Jens



-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#496
Author: Michael Weber
Date: Sun, 19 Jun 2011 19:38
46 lines
2676 bytes
Den 19-06-2011 21:07, Jens R. Rasmussen skrev:
> Hej/
>
> Mit sp�rgsm�l er meget element�rt, men jeg kender desv�rre ikke
> svaret.
>
> Jeg har en Acess database med tabeller, der er indbydes
> relaterede. En tabel hedder Stamdata og den indeholder bl.a.
> feltet Formand. En anden tabel hedder Kunder, og den indeholder
> bl.a. felterne Fornavn og Efternavn p� en lang r�kke personer.
> Indhold af feltet Formand i Stamdata er n�gle til tabellen
> Kunder.
>
> Ved genneml�b af Stamdata udv�lger jeg en r�kke formands id'er,
> som jeg skal bruge til at finde Fornavn og Efternavn i Kunder.
>
> Jeg har f�lgende kode:
>
> Set Conn = Server.CreateObject("ADODB.Connection")
> Conn.Open DSN
> strSQL = "SELECT * FROM Stamdata ORDER By Saeson desc"
> set rs = Conn.Execute(strSQL)
> DO WHILE Not rs.eof
> Response.write "Formand:"&  rs("Formand")&  "<br />"
> ..
> rs.MoveNext
> Loop
> ...
>
> Se det giver mig en korrekt liste af formands-id'er, fx '17',
> '23' og '138'. Men jeg skal jo ikke liste id'eerne men liste de
> tilsvarende fornavne og efternavne, som findes i den anden tabel
> (kunder).
>
> Hvordan kan jeg under s�gningen i Stamdata samtidig s�ge i Kunde
> for at finde nr. 17 for- og efternavn uden at �del�gge den
> fortsatte s�gning i Stramdata?


Du skal have fat i et sql-m�ssigt inner join.

Der er et eksempel her:
http://www.w3schools.com/sql/sql_join_inner.asp

P� ovenst�ende website, er der ogs� eksempler p� andre slags joins.
http://www.w3schools.com/sql/sql_join.asp
Re: DB-opslag mellem relaterede tabeller
#497
Author: Jens R. Rasmussen
Date: Sun, 19 Jun 2011 20:40
85 lines
4138 bytes
Michael Weber wrote in dk.edb.internet.webdesign.serverside.asp:
> Den 19-06-2011 21:07, Jens R. Rasmussen skrev: 
.
> > Jeg har en Acess database med tabeller, der er indbydes 
> > relaterede. En tabel hedder Stamdata og den indeholder bl.a. 
> > feltet Formand. En anden tabel hedder Kunder, og den indeholder 
> > bl.a. felterne Fornavn og Efternavn p� en lang r�kke personer. 
> > Indhold af feltet Formand i Stamdata er n�gle til tabellen 
> > Kunder. 
> > 
> > Ved genneml�b af Stamdata udv�lger jeg en r�kke formands id'er, 
> > som jeg skal bruge til at finde Fornavn og Efternavn i Kunder. 
> > 
> > Jeg har f�lgende kode: 
> > 
> > Set Conn = Server.CreateObject("ADODB.Connection") 
> > Conn.Open DSN 
> > strSQL = "SELECT * FROM Stamdata ORDER By Saeson desc" 
> > set rs = Conn.Execute(strSQL) 
> > DO WHILE Not rs.eof 
> > Response.write "Formand:"&  rs("Formand")&  "<br />" 
> > .. 
> > rs.MoveNext 
> > Loop 
> > ... 
> > 
> > Se det giver mig en korrekt liste af formands-id'er, fx '17', 
> > '23' og '138'. Men jeg skal jo ikke liste id'eerne men liste de 
> > tilsvarende fornavne og efternavne, som findes i den anden tabel
> > (kunder). 
> > 
> > Hvordan kan jeg under s�gningen i Stamdata samtidig s�ge i Kunde
> > for at finde nr. 17 for- og efternavn uden at �del�gge den 
> > fortsatte s�gning i Stramdata? 
>  
>  
> Du skal have fat i et sql-m�ssigt inner join. 
>  
> Der er et eksempel her: 
> http://www.w3schools.com/sql/sql_join_inner.asp 
>  
> P� ovenst�ende website, er der ogs� eksempler p� andre slags
joins. 
> http://www.w3schools.com/sql/sql_join.asp 

Tak Michael - s� l�rte jeg om joins. Det l�ste dog ikke helt mit
problem, da jeg ikke beskrev detaljerne i mine tabeller.

Se i Stamdata har jeg en r�kke felter: formand, naestformand,
kasserer osv. Og alle disse felter indeholder n�gler til tabellen
Kunder. Og jeg skal hente dem alle sammen - dvs. have rigtige navne
p� personerne.

Hvis jeg n�jes med formanden virker det perfekt at skrive:
strSQL = "SELECT * FROM Stamdata INNER JOIN Kunder ON
stamdata.formand=kunder.kundeid ORDER By Saeson desc"
.
Response.write "Formand:" & rs("fornavn") & rs("efternavn")

men hvis jeg pr�ver at tage n�stformanden med lykkes det ikke.

Hvis jeg skriver:
strSQL = "SELECT * FROM Stamdata INNER JOIN Kunder ON
stamdata.formand=kunder.kundeid OR
stamdata.naestformand=kunder.kundeid ORDER By Saeson desc"
...
Response.write "Formand:" & rs("fornavn") & rs("efternavn")
Response.write "N�stmand:" & rs("fornavn") & rs("efternavn")

bliver b�de formanden og n�stformanden udstyret med n�stformandens
navn.

Og hvis jeg isf. 'OR' skriver 'AND' bliver der ikke fundet noget
match :-(

kan du ogs� hj�lpe mig med denne n�d?

mvh
   /Jens

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#499
Author: Stig Johansen
Date: Mon, 20 Jun 2011 09:44
54 lines
2827 bytes
Jens R. Rasmussen wrote:

> Tak Michael - s� l�rte jeg om joins. Det l�ste dog ikke helt mit
> problem, da jeg ikke beskrev detaljerne i mine tabeller.
> 
> Se i Stamdata har jeg en r�kke felter: formand, naestformand,
> kasserer osv. Og alle disse felter indeholder n�gler til tabellen
> Kunder. Og jeg skal hente dem alle sammen - dvs. have rigtige navne
> p� personerne.
> 
> Hvis jeg n�jes med formanden virker det perfekt at skrive:
> strSQL = "SELECT * FROM Stamdata INNER JOIN Kunder ON
> stamdata.formand=kunder.kundeid ORDER By Saeson desc"
> .
> Response.write "Formand:" & rs("fornavn") & rs("efternavn")
> 
> men hvis jeg pr�ver at tage n�stformanden med lykkes det ikke.
> 
> Hvis jeg skriver:
> strSQL = "SELECT * FROM Stamdata INNER JOIN Kunder ON
> stamdata.formand=kunder.kundeid OR
> stamdata.naestformand=kunder.kundeid ORDER By Saeson desc"
> ...
> Response.write "Formand:" & rs("fornavn") & rs("efternavn")
> Response.write "N�stmand:" & rs("fornavn") & rs("efternavn")

Lidt kort, men du skal s�ge videre i joins.

1) Du skal tildele et alias, eks:
S = Stamdata
KF = Kunder(formand)
KN = Kunder(n�stformand).

Nu kan du skrive:
SQL= 
SELECT S.formand,KF.fornavn AS KFfornavn, KF.efternavn as KFefternavn,
KN.fornavn AS KNfornavn, KN.efternavn as KNefternavn 
FROM Stamdata S 
   INNER JOIN Kunder KF ON stamdata.formand=KF.kundeid 
   INNER JOIN Kunder KN ON stamdata.naestformand=KN.kundeid 
.... osv

Hvis der ikke altid findes relationer skal du muligvis ud i en LEFT OUTER
JOIN

Felterne burde nu kunne tilg�s med:

Response.write "Formand:" & rs("KFfornavn") & rs("KFefternavn")
Response.write "N�stmand:" & rs("KNfornavn") & rs("KNefternavn")


-- 
Med venlig hilsen
Stig Johansen
Re: DB-opslag mellem relaterede tabeller
#500
Author: Jens R. Rasmussen
Date: Mon, 20 Jun 2011 20:19
93 lines
4376 bytes
Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> Jens R. Rasmussen wrote: 
>  
> > Tak Michael - s� l�rte jeg om joins. Det l�ste dog ikke helt mit 
> > problem, da jeg ikke beskrev detaljerne i mine tabeller. 
> >  
> > Se i Stamdata har jeg en r�kke felter: formand, naestformand, 
> > kasserer osv. Og alle disse felter indeholder n�gler til tabellen 
> > Kunder. Og jeg skal hente dem alle sammen - dvs. have rigtige navne 
> > p� personerne. 
> >  
> > Hvis jeg n�jes med formanden virker det perfekt at skrive: 
> > strSQL = "SELECT * FROM Stamdata INNER JOIN Kunder ON 
> > stamdata.formand=kunder.kundeid ORDER By Saeson desc" 
> > . 
> > Response.write "Formand:" & rs("fornavn") & rs("efternavn") 
> >  
> > men hvis jeg pr�ver at tage n�stformanden med lykkes det ikke. 
> >  
> > Hvis jeg skriver: 
> > strSQL = "SELECT * FROM Stamdata INNER JOIN Kunder ON 
> > stamdata.formand=kunder.kundeid OR 
> > stamdata.naestformand=kunder.kundeid ORDER By Saeson desc" 
> > ... 
> > Response.write "Formand:" & rs("fornavn") & rs("efternavn") 
> > Response.write "N�stmand:" & rs("fornavn") & rs("efternavn") 
>  
> Lidt kort, men du skal s�ge videre i joins. 
>  
> 1) Du skal tildele et alias, eks: 
> S = Stamdata 
> KF = Kunder(formand) 
> KN = Kunder(n�stformand). 
>  
> Nu kan du skrive: 
> SQL=  
> SELECT S.formand,KF.fornavn AS KFfornavn, KF.efternavn as KFefternavn, 
> KN.fornavn AS KNfornavn, KN.efternavn as KNefternavn  
> FROM Stamdata S  
>    INNER JOIN Kunder KF ON stamdata.formand=KF.kundeid  
>    INNER JOIN Kunder KN ON stamdata.naestformand=KN.kundeid  
> ..... osv 
>  
> Hvis der ikke altid findes relationer skal du muligvis ud i en LEFT OUTER 
> JOIN 
>  
> Felterne burde nu kunne tilg�s med: 
>  
> Response.write "Formand:" & rs("KFfornavn") & rs("KFefternavn") 
> Response.write "N�stmand:" & rs("KNfornavn") & rs("KNefternavn") 
>  
>  
> --  
> Med venlig hilsen 
> Stig Johansen

Hej Stig og tak for din hj�lp. Det er pinligt s� lidt jeg ved, men m�ske vil
du b�re over og alligevel svare p� et par uddybende sp�rgsm�l til din kode?

1) N�r jeg laver de 3 f�rste aliasser
S=Stamdata
KF=Kunder(formand)
KN=Kunder(Naestformand)

s� skal jeg ikke have parenteserne og deres indhold med, vel?

2) I SELECT s�ger du f�rst p� S.formand. Her kunne godt st� * - eller
kolonnen Saeson - alts� S.saeson, ikk? Saeson er n�glen i Stamdata og det
felt som udskriften sidenhen skal sorteres efter.

3) De nye aliasser du indf�rer med AS g�r du kun for at lette min
udskrivning, ikk? For jeg kunne vel godt skrive rs("KF.fornavn") i stedet
for - alts� uden aliasser?

4) I FROM skriver du Stamdata S og i INNER JOIN skriver du Kunder KF. Det
kan jeg ikke lige intuitivt greje. Hvorfor skal b�de tabellen og dens
aliasser n�vner efter hinanden med mellemrum imellem? Er det er
sammenskrivning af
From Stamdata
From S
INNER JOIN Kunder ON stamdata.formand=KF.Kunderid
INNER JOIN KF     ON stamdata.formand=KF.Kunderid
.. ?

mvh 
   /Jens


-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#501
Author: Stig Johansen
Date: Tue, 21 Jun 2011 11:29
88 lines
4248 bytes
Jens R. Rasmussen wrote:

> Hej Stig og tak for din hj�lp. Det er pinligt s� lidt jeg ved, 

Intet er pinligt, kun at undlade at sp�rge.

> men m�ske 
> vil du b�re over og alligevel svare p� et par uddybende sp�rgsm�l til din
> kode?

Ja, men husk det er ud fra hvordan jeg 'plejer' at lave tingene.

> 1) N�r jeg laver de 3 f�rste aliasser
> S=Stamdata
> KF=Kunder(formand)
> KN=Kunder(Naestformand)
> 
> s� skal jeg ikke have parenteserne og deres indhold med, vel?

Jeg er ikke lige med p� hvad du mener med paranteser, men:
Nogle databaser vil have paranteser om flere joins, andre vil ikke.

Jeg husker ikke hvilke der VIL, og hvilke der IKKE vil, s� du m� pr�ve dig
frem.

> 2) I SELECT s�ger du f�rst p� S.formand. Her kunne godt st� * - eller
> kolonnen Saeson - alts� S.saeson, ikk? Saeson er n�glen i Stamdata og det
> felt som udskriften sidenhen skal sorteres efter.

Et generelt svar.
Der er 2 ting i dette sp�rgsm�l.
1) At bruge * (generelt)
2) 'Tvetydigheden'.

Overordnet er det *meget* d�rlig karma at bruge * hvis man kun skal bruge
eet felt.

Hvis Stamdata best�r af 100 felter, vil databasen returnere samtlige (dvs.
100 felter ) ved en select *.

Dvs. hvis du har 1000 records, vil der returneres 100.000 feltv�rdier,
hvorimod en Select formand FROM.. kun vil returnere dette ene felt dvs 1000
feltv�rdier.

'Tvetydigheden' handler om samme feltnavn i forskellige tabeller.

N�r du skal dobbelt joine Kunder, og bruge hhv. fornavn og efternavn, vil
databasen (uden alias) generere 2* fornavn og 2* efternavn, og derfor kan
man ikke finde 'fornavn'.

Derfor Alias, hvor jeg (og sikkert alle) bruger 1/2 bogstavs aliaser.

> 3) De nye aliasser du indf�rer med AS g�r du kun for at lette min
> udskrivning, ikk? For jeg kunne vel godt skrive rs("KF.fornavn") i stedet
> for - alts� uden aliasser?

Der m� jeg v�re svar skyldig, for som sagt er det 'plejer at g�re'.

'Plejer' er SQL compliant, og virker i de databaser jeg kender til, og har
ikke til hensigt at udforske 'spidsfindigheder'.

> 4) I FROM skriver du Stamdata S og i INNER JOIN skriver du Kunder KF. Det
> kan jeg ikke lige intuitivt greje. Hvorfor skal b�de tabellen og dens
> aliasser n�vner efter hinanden med mellemrum imellem? Er det er
> sammenskrivning af
> From Stamdata
> From S

Nej.
S er et alias til Stamdata, s� Stamdata S er (nogenlunde) det samme som
Stamdata AS S.

Men igen er der nogle databaser der vil have:
Stamdata AS S
og andre der vil have
Stamdata S

Igen kan jeg ikke huske hvem der vil have hvad, men det er p*sse irriterende
med disse sm� forskelle (som med 'HTML')

> INNER JOIN Kunder ON stamdata.formand=KF.Kunderid
> INNER JOIN KF     ON stamdata.formand=KF.Kunderid

Det er vist ikke noget jeg har skrevet...

-- 
Med venlig hilsen
Stig Johansen
Re: DB-opslag mellem relaterede tabeller
#353
Author: Jens R. Rasmussen
Date: Mon, 27 Jun 2011 20:20
43 lines
2549 bytes
Jeg har pr�vet men det g�r ikke s� godt :-(

Hvis jeg skriver
S = Stamdata 
KF = Kunder(formand)
KN = Kunder(naestformand)
...

f�r jeg fejlmeddelelseni 2. linje: "Typer stemmer ikke overens: 'Kunder'"

Hvis jeg undlader parenteserne og skriver
S = Stamdata 
KF = Kunder
KN = Kunder
strSQL= "SELECT S.formand, KF.fornavn AS KFfornavn, KF.efternavn as
KFefternavn, KN.fornavn AS KNfornavn, KN.efternavn as KNefternavn FROM
Stamdata S INNER JOIN Kunder KF ON stamdata.formand=KF.kundeid INNER JOIN
Kunder, KN ON stamdata.naestformand=KN.kundeid ORDER By Saeson desc"

f�r jeg fejlmeddelelsen "Der er en syntaksfejl, fordi der mangler en operator.
i foresp�rgselsudtrykket "stamdata.formand=KF.kundeid INNER JOIN Kunder"."

Da jeg langtfra er god til inner joins ved jeg ikke rigtigt hvad der er galt.
Ved du det, stig?

I stamdata har jeg fx
Saeson = 2010/2011
Formand = 85
...

Og i Kunder har jeg:
Kundid = 85
Fornavn = Niels
Efternavn = Nehrkorn
...
mvh
   /Jens

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#354
Author: Leif Neland
Date: Mon, 27 Jun 2011 23:53
32 lines
2459 bytes
Den 27-06-2011 22:20, Jens R. Rasmussen skrev:
> Jeg har pr�vet men det g�r ikke s� godt :-(
>
> Hvis jeg skriver
> S = Stamdata
> KF = Kunder(formand)
> KN = Kunder(naestformand)
> ...
>
> f�r jeg fejlmeddelelseni 2. linje: "Typer stemmer ikke overens: 'Kunder'"
>
> Hvis jeg undlader parenteserne og skriver
> S = Stamdata
> KF = Kunder
> KN = Kunder
> strSQL= "SELECT S.formand, KF.fornavn AS KFfornavn, KF.efternavn as
> KFefternavn, KN.fornavn AS KNfornavn, KN.efternavn as KNefternavn FROM
> Stamdata S INNER JOIN Kunder KF ON stamdata.formand=KF.kundeid INNER JOIN
> Kunder, KN ON stamdata.naestformand=KN.kundeid ORDER By Saeson desc"
>
> f�r jeg fejlmeddelelsen "Der er en syntaksfejl, fordi der mangler en operator.
> i foresp�rgselsudtrykket "stamdata.formand=KF.kundeid INNER JOIN Kunder"."
>
N�r du har sagt "FROM Stamdata S", er der derefter i s�tningen ikke 
nogen tabel, der hedder Stamdata; den hedder S.

Ego skal du ikke skrive "ON stamdata.formand=KF.kundeid" men "ON 
S.formand=KF.kundeid"

Leif
-- 
Bevar P2, luk P3, der er nok P3'er i forvejen.
Re: DB-opslag mellem relaterede tabeller
#355
Author: Jens R. Rasmussen
Date: Tue, 28 Jun 2011 09:02
62 lines
3605 bytes
Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp:
> Den 27-06-2011 22:20, Jens R. Rasmussen skrev: 
> > Jeg har pr�vet men det g�r ikke s� godt :-( 
> > 
> > Hvis jeg skriver 
> > S = Stamdata 
> > KF = Kunder(formand) 
> > KN = Kunder(naestformand) 
> > ... 
> > 
> > f�r jeg fejlmeddelelseni 2. linje: "Typer stemmer ikke overens: 'Kunder'" 
> > 
> > Hvis jeg undlader parenteserne og skriver 
> > S = Stamdata 
> > KF = Kunder 
> > KN = Kunder 
> > strSQL= "SELECT S.formand, KF.fornavn AS KFfornavn, KF.efternavn as 
> > KFefternavn, KN.fornavn AS KNfornavn, KN.efternavn as KNefternavn FROM 
> > Stamdata S INNER JOIN Kunder KF ON stamdata.formand=KF.kundeid INNER JOIN 
> > Kunder, KN ON stamdata.naestformand=KN.kundeid ORDER By Saeson desc" 
> > 
> > f�r jeg fejlmeddelelsen "Der er en syntaksfejl, fordi der mangler en operator. 
> > i foresp�rgselsudtrykket "stamdata.formand=KF.kundeid INNER JOIN Kunder"." 
> > 
> N�r du har sagt "FROM Stamdata S", er der derefter i s�tningen ikke  
> nogen tabel, der hedder Stamdata; den hedder S. 
>  
> Ego skal du ikke skrive "ON stamdata.formand=KF.kundeid" men "ON  
> S.formand=KF.kundeid" 
>  
> Leif 
> --  
> Bevar P2, luk P3, der er nok P3'er i forvejen.

Hej igen

har rettet som du skriver til:

S = Stamdata 
KF = Kunder
KN = Kunder

strSQL= "SELECT S.formand, KF.fornavn AS KFfornavn, KF.efternavn as KFefternavn,
KN.fornavn AS KNfornavn, KN.efternavn as KNefternavn FROM Stamdata S INNER JOIN
Kunder KF ON S.formand=KF.kundeid INNER JOIN Kunder, KN ON
S.naestformand=KN.kundeid ORDER By Saeson desc"
set rs = Conn.Execute(strSQL)

men f�r stadig samme fejlmeddelelse
<Der er en syntaksfejl, fordi der mangler en operator. i foresp�rgselsudtrykket
"S.formand=KF.kundeid INNER JOIN Kunder".>

Kan du se hvad det er for en operator der mangler?

mvh
  /Jens

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#356
Author: Leif Neland
Date: Tue, 28 Jun 2011 10:23
37 lines
2588 bytes
"Jens R. Rasmussen" <Jens.R.Rasmussen@uni-c.dk> skrev i en meddelelse 
news:4e0998a5$0$314$14726298@news.sunsite.dk...

> strSQL= "SELECT S.formand, KF.fornavn AS KFfornavn, KF.efternavn as 
> KFefternavn,
> KN.fornavn AS KNfornavn, KN.efternavn as KNefternavn FROM Stamdata S INNER 
> JOIN
> Kunder KF ON S.formand=KF.kundeid INNER JOIN Kunder, KN ON
> S.naestformand=KN.kundeid ORDER By Saeson desc"
> set rs = Conn.Execute(strSQL)
>
> men f�r stadig samme fejlmeddelelse
> <Der er en syntaksfejl, fordi der mangler en operator. i 
> foresp�rgselsudtrykket
> "S.formand=KF.kundeid INNER JOIN Kunder".>
>
> Kan du se hvad det er for en operator der mangler?
>

Ja, fejlen er lige der, hvor citatet i fejlmeddelelsen slutter.

"S.formand=KF.kundeid INNER JOIN Kunder, KN ON"

Der skal ikke v�re komma imellem Kunder og KN, sql tror du vil starte en ny 
s�tning eller noget; det er tivertfald forkert med komma der :-)

Leif

> mvh
>  /Jens
>
> -- 
> Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - P�dagogiske tutorials p� dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials 
Re: DB-opslag mellem relaterede tabeller
#357
Author: Jens R. Rasmussen
Date: Tue, 28 Jun 2011 12:22
77 lines
3642 bytes
Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp:
> "Jens R. Rasmussen" <Jens.R.Rasmussen@uni-c.dk> skrev i en meddelelse  
> news:4e0998a5$0$314$14726298@news.sunsite.dk... 
>  
> > strSQL= "SELECT S.formand, KF.fornavn AS KFfornavn, KF.efternavn as  
> > KFefternavn, 
> > KN.fornavn AS KNfornavn, KN.efternavn as KNefternavn FROM Stamdata S INNER  
> > JOIN 
> > Kunder KF ON S.formand=KF.kundeid INNER JOIN Kunder, KN ON 
> > S.naestformand=KN.kundeid ORDER By Saeson desc" 
> > set rs = Conn.Execute(strSQL) 
> > 
> > men f�r stadig samme fejlmeddelelse 
> > <Der er en syntaksfejl, fordi der mangler en operator. i  
> > foresp�rgselsudtrykket 
> > "S.formand=KF.kundeid INNER JOIN Kunder".> 
> > 
> > Kan du se hvad det er for en operator der mangler? 
> > 
>  
> Ja, fejlen er lige der, hvor citatet i fejlmeddelelsen slutter. 
>  
> "S.formand=KF.kundeid INNER JOIN Kunder, KN ON" 
>  
> Der skal ikke v�re komma imellem Kunder og KN, sql tror du vil starte en ny  
> s�tning eller noget; det er tivertfald forkert med komma der :-) 
>  
> Leif 
>  
> > mvh 
> >  /Jens 
> > 
> > --  
> > Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET? 
> > - P�dagogiske tutorials p� dansk 
> > - Kom godt i gang med koderne 
> > KLIK HER! => http://www.html.dk/tutorials  
>  
> 

jeg f�r desv�rre n�jagtig samme fejlmeddelelses med og uden komma :-( - s� der
m� v�re mindst en fejl mere i min s�tning.

Jeg har 2 databaser (access)Stamdata og Kunder, som ser s�dan ud:

Stamdata
saeson (n�glefelt)
Formand
Naestformand
...

fx med data 
saeson=2010/2011
formand = 111
...

og databasen kunder med
kundeid (n�glefelt)
fornavn
efternavn
...

fx 
kundeid=111,
fornavn = niels
efternavn = jensen
....

og det er navnenen p� formand, n�stformand, kasserer .... jeg forg�ves s�ger at
f� frem ved at give n�glekoderne til kunde-databsen, som jeg sl�r dem op i
stamdatabasen s�son for s�son.

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#358
Author: Leif Neland
Date: Tue, 28 Jun 2011 12:58
68 lines
3668 bytes
"Jens R. Rasmussen" <Jens.R.Rasmussen@uni-c.dk> skrev i en meddelelse 
news:4e09c797$0$315$14726298@news.sunsite.dk...
> Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp:
>> "Jens R. Rasmussen" <Jens.R.Rasmussen@uni-c.dk> skrev i en meddelelse
>> news:4e0998a5$0$314$14726298@news.sunsite.dk...
>>
>> > strSQL= "SELECT S.formand, KF.fornavn AS KFfornavn, KF.efternavn as
>> > KFefternavn,
>> > KN.fornavn AS KNfornavn, KN.efternavn as KNefternavn FROM Stamdata S 
>> > INNER
>> > JOIN
>> > Kunder KF ON S.formand=KF.kundeid INNER JOIN Kunder, KN ON
>> > S.naestformand=KN.kundeid ORDER By Saeson desc"
>> > set rs = Conn.Execute(strSQL)
>> >
>> > men f�r stadig samme fejlmeddelelse
>> > <Der er en syntaksfejl, fordi der mangler en operator. i
>> > foresp�rgselsudtrykket
>> > "S.formand=KF.kundeid INNER JOIN Kunder".>
>> >
>> > Kan du se hvad det er for en operator der mangler?
>> >
>>
>> Ja, fejlen er lige der, hvor citatet i fejlmeddelelsen slutter.
>>
>> "S.formand=KF.kundeid INNER JOIN Kunder, KN ON"
>>
>> Der skal ikke v�re komma imellem Kunder og KN, sql tror du vil starte en 
>> ny
>> s�tning eller noget; det er tivertfald forkert med komma der :-)
>>
>> Leif
>>
>> > mvh
>> >  /Jens
>> >
>> > --
>> > Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
>> > - P�dagogiske tutorials p� dansk
>> > - Kom godt i gang med koderne
>> > KLIK HER! => http://www.html.dk/tutorials
>>
>>
>
> jeg f�r desv�rre n�jagtig samme fejlmeddelelses med og uden komma :-( - s� 
> der
> m� v�re mindst en fejl mere i min s�tning.
>
> Jeg har 2 databaser (access)Stamdata og Kunder, som ser s�dan ud:

Underligt. N�r jeg klipper din s�tning ind i query-vinduet i Enterprise 
Manager f�r jeg fejlmeddelelsen
"Error in join expression.
Unable to parse query text."

Fjerner jeg kommaet, accepteres s�tningen, der omformatteres til

SELECT     S.formand, KF.fornavn AS KFfornavn, KF.efternavn AS KFefternavn, 
KN.fornavn AS KNfornavn, KN.efternavn AS KNefternavn
FROM         Stamdata S INNER JOIN
                      Kunder KF ON S.formand = KF.kundeid INNER JOIN
                      Kunder KN ON S.naestformand = KN.kundeid
ORDER BY Saeson DESC

Den kan naturligvis ikke k�res, da jeg ikke har oprettet tabellerne.

Leif
Re: DB-opslag mellem relaterede tabeller
#359
Author: Jens R. Rasmussen
Date: Tue, 28 Jun 2011 19:22
114 lines
5454 bytes
Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp:
> "Jens R. Rasmussen" <Jens.R.Rasmussen@uni-c.dk> skrev i en meddelelse  
> news:4e09c797$0$315$14726298@news.sunsite.dk... 
> > Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp: 
> >> "Jens R. Rasmussen" <Jens.R.Rasmussen@uni-c.dk> skrev i en meddelelse 
> >> news:4e0998a5$0$314$14726298@news.sunsite.dk... 
> >> 
> >> > strSQL= "SELECT S.formand, KF.fornavn AS KFfornavn, KF.efternavn as 
> >> > KFefternavn, 
> >> > KN.fornavn AS KNfornavn, KN.efternavn as KNefternavn FROM Stamdata S  
> >> > INNER 
> >> > JOIN 
> >> > Kunder KF ON S.formand=KF.kundeid INNER JOIN Kunder, KN ON 
> >> > S.naestformand=KN.kundeid ORDER By Saeson desc" 
> >> > set rs = Conn.Execute(strSQL) 
> >> > 
> >> > men f�r stadig samme fejlmeddelelse 
> >> > <Der er en syntaksfejl, fordi der mangler en operator. i 
> >> > foresp�rgselsudtrykket 
> >> > "S.formand=KF.kundeid INNER JOIN Kunder".> 
> >> > 
> >> > Kan du se hvad det er for en operator der mangler? 
> >> > 
> >> 
> >> Ja, fejlen er lige der, hvor citatet i fejlmeddelelsen slutter. 
> >> 
> >> "S.formand=KF.kundeid INNER JOIN Kunder, KN ON" 
> >> 
> >> Der skal ikke v�re komma imellem Kunder og KN, sql tror du vil starte en  
> >> ny 
> >> s�tning eller noget; det er tivertfald forkert med komma der :-) 
> >> 
> >> Leif 
> >> 
> >> > mvh 
> >> >  /Jens 
> >> > 
> >> > -- 
> >> > Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET? 
> >> > - P�dagogiske tutorials p� dansk 
> >> > - Kom godt i gang med koderne 
> >> > KLIK HER! => http://www.html.dk/tutorials 
> >> 
> >> 
> > 
> > jeg f�r desv�rre n�jagtig samme fejlmeddelelses med og uden komma :-( - s�  
> > der 
> > m� v�re mindst en fejl mere i min s�tning. 
> > 
> > Jeg har 2 databaser (access)Stamdata og Kunder, som ser s�dan ud: 
>  
> Underligt. N�r jeg klipper din s�tning ind i query-vinduet i Enterprise  
> Manager f�r jeg fejlmeddelelsen 
> "Error in join expression. 
> Unable to parse query text." 
>  
> Fjerner jeg kommaet, accepteres s�tningen, der omformatteres til 
>  
> SELECT     S.formand, KF.fornavn AS KFfornavn, KF.efternavn AS KFefternavn,  
> KN.fornavn AS KNfornavn, KN.efternavn AS KNefternavn 
> FROM         Stamdata S INNER JOIN 
>                       Kunder KF ON S.formand = KF.kundeid INNER JOIN 
>                       Kunder KN ON S.naestformand = KN.kundeid 
> ORDER BY Saeson DESC 
>  
> Den kan naturligvis ikke k�res, da jeg ikke har oprettet tabellerne. 
>  
> Leif 
>  
> 
M�rkeligt. Hvis jeg begynder helt forfra og KUN vil liste formanden i hver
s�son, s� skriver jeg og det virker perfekt:

strSQL= "SELECT Kunder.Fornavn, Kunder.Efternavn, Stamdata.Saeson FROM Stamdata
INNER JOIN Kunder ON Kunder.Kundeid = Stamdata.Formand ORDER BY Stamdata.Saeson
Desc"
set rs = Conn.Execute(strSQL)
If rs.eof then
  Response.write "Der er ingen gamle lukkede arrangementer i databasen>"
Else
  DO WHILE Not rs.eof
  Response.write "S�son:&nbsp;" & rs("Saeson") & "<br />"
  Response.write "Formand:&nbsp;" & rs("fornavn") & "&nbsp;" & rs("Efternavn") &
"<br />" 
  Response.write "<br />"
  rs.MoveNext
  Loop 
End if

Her f�r jeg en fin udskrift med
S�son 2011/2010:
Formand: Niels jensen

S�son 2020/209:
Formand: peter Hansen

osv.....

men nu vil jeg gerne have n�stformanden med, der ligesom formanden ligger i
Stamdatabasen under samme n�gle som formanden. Alts� Stamdatabasen ser s�ledes
ud

Saeson (n�gle), Formand, Naestformand, Kasserer, .....

Hvuilke �ndringer kr�ver det?

mvh
   /jens

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#360
Author: Leif Neland
Date: Wed, 29 Jun 2011 03:23
25 lines
2641 bytes
Den 28-06-2011 21:22, Jens R. Rasmussen skrev:
> men nu vil jeg gerne have n�stformanden med, der ligesom formanden ligger i
> Stamdatabasen under samme n�gle som formanden. Alts� Stamdatabasen ser s�ledes
> ud
>
> Saeson (n�gle), Formand, Naestformand, Kasserer, .....
>
> Hvuilke �ndringer kr�ver det?
>
> mvh
>     /jens
>
SELECT     S.formand, KF.fornavn AS KFfornavn, KF.efternavn AS 
KFefternavn, KN.fornavn AS KNfornavn, KN.efternavn AS KNefternavn
FROM         Stamdata S LEFT OUTER JOIN
                       Kunder KF ON S.formand = KF.kundeid LEFT OUTER JOIN
                       Kunder KN ON S.naestformand = KN.kundeid
ORDER BY Saeson DESC

Det giver s� mulighed for at der er Stamdata uden tilh�rende formand 
eller naestformand

Min enterprise manager finder ingen syntaxfejl; s� pr�v lige igen :-)

Leif
Re: DB-opslag mellem relaterede tabeller
#361
Author: Jens R. Rasmussen
Date: Wed, 29 Jun 2011 08:34
44 lines
3421 bytes
Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp:
> Den 28-06-2011 21:22, Jens R. Rasmussen skrev: 
> > men nu vil jeg gerne have n�stformanden med, der ligesom formanden ligger i 
> > Stamdatabasen under samme n�gle som formanden. Alts� Stamdatabasen ser s�ledes 
> > ud 
> > 
> > Saeson (n�gle), Formand, Naestformand, Kasserer, ..... 
> > 
> > Hvuilke �ndringer kr�ver det? 
> > 
> > mvh 
> >     /jens 
> > 
> SELECT     S.formand, KF.fornavn AS KFfornavn, KF.efternavn AS  
> KFefternavn, KN.fornavn AS KNfornavn, KN.efternavn AS KNefternavn 
> FROM         Stamdata S LEFT OUTER JOIN 
>                        Kunder KF ON S.formand = KF.kundeid LEFT OUTER JOIN 
>                        Kunder KN ON S.naestformand = KN.kundeid 
> ORDER BY Saeson DESC 
>  
> Det giver s� mulighed for at der er Stamdata uden tilh�rende formand  
> eller naestformand 
>  
> Min enterprise manager finder ingen syntaxfejl; s� pr�v lige igen :-) 
>  
> Leif

Hej leif/

jeg pr�ver igen - men sig mig lige: Hvormange af aliaserne er n�dvendige og hvilke
er bare pladsbesparende? For i det jeg skrev f�r er der INGEN aliasser og det
virker (men kun for formanden :-(). Er det n�dvendigt med aliasser, n�r man fra 2
felter i samme record i Stamdatabaserecorden, skal ind i 2 forskellige records i
kundedatabasen? Alts� n�r jeg ud over formanden ogs� vil vise naestformandes navn?

Jens

Og m�ske har du fanget en fejl ved at jeg bruger INNER jopin for der e

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#362
Author: Leif Neland
Date: Wed, 29 Jun 2011 10:19
27 lines
2700 bytes
"Jens R. Rasmussen" <Jens.R.Rasmussen@uni-c.dk> skrev i en meddelelse 
news:4e0ae39f$0$313$14726298@news.sunsite.dk...
> jeg pr�ver igen - men sig mig lige: Hvormange af aliaserne er n�dvendige 
> og hvilke
> er bare pladsbesparende? For i det jeg skrev f�r er der INGEN aliasser og 
> det
> virker (men kun for formanden :-(). Er det n�dvendigt med aliasser, n�r 
> man fra 2
> felter i samme record i Stamdatabaserecorden, skal ind i 2 forskellige 
> records i
> kundedatabasen? Alts� n�r jeg ud over formanden ogs� vil vise 
> naestformandes navn?
>

Det er *n�dvendigt* at bruge alias p� tabeller, n�r n�r du bruger den samme 
tabel flere gange; hvordan skulle sql ellers vide, hvilken af de "instances" 
af tabellen, du mener.

Det er *n�dvendigt* at bruge alias p� felter i selects�tningen, hvis der er 
det samme feltnavn i flere tabeller.

Det er ikke n�dvendigt. men det kan �ge l�sbarheden at bruge alias p� 
tabelnavne, hvis de er lange eller komplicerede.
F.ex  drupal_cykelhandel_engros_leverand�rer AS L

Leif. 
Re: DB-opslag mellem relaterede tabeller
#363
Author: Stig Johansen
Date: Mon, 04 Jul 2011 11:51
29 lines
2362 bytes
Leif Neland wrote:

> Min enterprise manager finder ingen syntaxfejl; s� pr�v lige igen :-)

Leif,
Jeg har desv�rre ikke min 'infrastruktur' ved h�nden, men bem�rk at Jens
bruger Access, og du bruger 'Enterprise manager' (Query Analyzer?)

Jeg skrev lidt med paranteser, men kuh i overordnede vendinger, da jeg ikke
kan efterpr�ve det, med nogle databaser _vil_ have paranteser:

SELECT ......
FROM .....
(
(INNER/LEFT OUTER JOIN ....
(INNER/LEFT OUTER JOIN ....)
)
)

Mener i �vrigt ogs� at eks. MSSQL 7.0 ville have disse parenteser, muligvis
ogs� 6.5 (som i virkeligheden var MS's "k�b" af Sybase).

Men John, pr�v dig frem med paranteser, det burde v�re ligetil.

Leif har forklaret de korrekte syntakser for Alias'er, og begrundet dem.

-- 
Med venlig hilsen
Stig Johansen
Re: DB-opslag mellem relaterede tabeller
#364
Author: Stig Johansen
Date: Mon, 04 Jul 2011 12:04
15 lines
1993 bytes
Stig Johansen wrote:

> Mener i �vrigt ogs� at eks. MSSQL 7.0 ville have disse parenteser,
> muligvis ogs� 6.5 (som i virkeligheden var MS's "k�b" af Sybase).

Lavede en henvisning til:
http://technet.microsoft.com/en-us/library/cc917601.aspx

som forklarer visse forskelle mellem Access og MS SQLServer.

M�ske kan svaret findes der.

-- 
Med venlig hilsen
Stig Johansen
Re: DB-opslag mellem relaterede tabeller
#365
Author: Jens R. Rasmussen
Date: Mon, 04 Jul 2011 19:52
79 lines
4573 bytes
Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> Stig Johansen wrote: 
>  
> > Mener i �vrigt ogs� at eks. MSSQL 7.0 ville have disse parenteser, 
> > muligvis ogs� 6.5 (som i virkeligheden var MS's "k�b" af Sybase). 
>  
> Lavede en henvisning til: 
> http://technet.microsoft.com/en-us/library/cc917601.aspx 
>  
> som forklarer visse forskelle mellem Access og MS SQLServer. 
>  
> M�ske kan svaret findes der. 
>  
> --  
> Med venlig hilsen 
> Stig Johansen

Undskyld det sene svar - jeg har v�ret v�k et par dage. Men er nu
tilbage. Endnu mere opsat p� at f� problemet l�st.

For at indkredse fejlen vil jeg nu i f�rste omgang kun liste formanden
gennem tiderne (alts� glem naestformand, kasserer...). Og det g�r fint
n�r jeg skriver:

1)
strSQL= "SELECT Kunder.Fornavn, Kunder.Efternavn, Stamdata.Saeson FROM
(Stamdata INNER JOIN Kunder ON Kunder.Kundeid = Stamdata.Formand) ORDER
BY Stamdata.Saeson Desc"
set rs = Conn.Execute(strSQL)
  DO WHILE Not rs.eof
  Response.write "S�son:&nbsp;" & rs("Saeson") & "<br />"
  Response.write "Formand:&nbsp;" & rs("fornavn") & "&nbsp;" &
rs("Efternavn") & "<br />" 
  Response.write "<br />"
  rs.MoveNext
  Loop 

bem�rk at jeg endnu ikke bruger aliasser. Som sagt kommer der et
perfekt side ud med formandens navn gennem tiderne.

2) Nu vil jeg s� pr�ve at f� samme resultat - stadig KUN formanden -
men med brug af aliasser.

Hvis jeg skriver
KF = kunder(formand) f�r jeg syntaksfejlen "Der opstod en Microsoft
VBScript-k�rselsfejl (0x800A000D) Typer stemmer ikke overens: 'Kunder'"
Alts� holder jeg mig til aliasdefinitionen
KF = Kunder, som ikke giver nogen syntaksfejl.

3) N�r jeg s� i SQL-s�tningen fors�ger at erstatte alle kunder.xx med
KF.xx - alts� skriver:
strSQL= "SELECT KF.Fornavn, KF.Efternavn, Stamdata.Saeson FROM
(Stamdata INNER JOIN Kunder ON KF.Kundeid = Stamdata.Formand) ORDER BY
Stamdata.Saeson Desc"
f�r jeg fejlmeddelelsen: "Microsoft JET Database Engine (0x80040E14)
Der er en syntaksfejl i JOIN-handlingen."

4) Og g�r jeg skridtet videre og ogs� erstatter Kunder med KF, alts�
skriver: 
KF = Kunder
strSQL= "SELECT KF.Fornavn, KF.Efternavn, Stamdata.Saeson FROM
(Stamdata INNER JOIN KF ON KF.Kundeid = Stamdata.Formand) ORDER BY
Stamdata.Saeson Desc"

F�r jeg fejlen "Microsoft Jet-databasemotoren kan ikke finde
inputtabellen eller foresp�rgslen "KF". Kontroller, at den findes, og
at navnet er stavet korrekt. "

Det er sikkert min alias-syntaks der er skrupsk�r. kan I gennemskue
fejlene?

p� forh�nd tak
   /jens

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#366
Author: Leif Neland
Date: Mon, 04 Jul 2011 20:22
73 lines
4360 bytes
Den 04-07-2011 21:52, Jens R. Rasmussen skrev:

>
> For at indkredse fejlen vil jeg nu i f�rste omgang kun liste formanden
> gennem tiderne (alts� glem naestformand, kasserer...). Og det g�r fint
> n�r jeg skriver:
>
> 1)
> strSQL= "SELECT Kunder.Fornavn, Kunder.Efternavn, Stamdata.Saeson FROM
> (Stamdata INNER JOIN Kunder ON Kunder.Kundeid = Stamdata.Formand) ORDER
> BY Stamdata.Saeson Desc"
> set rs = Conn.Execute(strSQL)
>    DO WHILE Not rs.eof
>    Response.write "S�son:&nbsp;"&  rs("Saeson")&  "<br />"
>    Response.write "Formand:&nbsp;"&  rs("fornavn")&  "&nbsp;"&
> rs("Efternavn")&  "<br />"
>    Response.write "<br />"
>    rs.MoveNext
>    Loop
>
> bem�rk at jeg endnu ikke bruger aliasser. Som sagt kommer der et
> perfekt side ud med formandens navn gennem tiderne.
>
> 2) Nu vil jeg s� pr�ve at f� samme resultat - stadig KUN formanden -
> men med brug af aliasser.
>
> Hvis jeg skriver
> KF = kunder(formand) f�r jeg syntaksfejlen "Der opstod en Microsoft
> VBScript-k�rselsfejl (0x800A000D) Typer stemmer ikke overens: 'Kunder'"
> Alts� holder jeg mig til aliasdefinitionen
> KF = Kunder, som ikke giver nogen syntaksfejl.

M� vi lige f� den s�tning?

>
> 3) N�r jeg s� i SQL-s�tningen fors�ger at erstatte alle kunder.xx med
> KF.xx - alts� skriver:
> strSQL= "SELECT KF.Fornavn, KF.Efternavn, Stamdata.Saeson FROM
> (Stamdata INNER JOIN Kunder ON KF.Kundeid = Stamdata.Formand) ORDER BY
> Stamdata.Saeson Desc"
> f�r jeg fejlmeddelelsen: "Microsoft JET Database Engine (0x80040E14)
> Der er en syntaksfejl i JOIN-handlingen."

Du fort�ller ikke at KF er alias til Kunder
Det skal v�re "... INNER JOIN Kunder KF on KF.Kundeid..."

>
> 4) Og g�r jeg skridtet videre og ogs� erstatter Kunder med KF, alts�
> skriver:
> KF = Kunder
Her s�tter du en asp-variabel KF lig en asp-variabel, der hedder Kunder. 
Det har intet med den streng, du sender til SQL.

> strSQL= "SELECT KF.Fornavn, KF.Efternavn, Stamdata.Saeson FROM
> (Stamdata INNER JOIN KF ON KF.Kundeid = Stamdata.Formand) ORDER BY
> Stamdata.Saeson Desc"


>
> F�r jeg fejlen "Microsoft Jet-databasemotoren kan ikke finde
> inputtabellen eller foresp�rgslen "KF". Kontroller, at den findes, og
> at navnet er stavet korrekt. "
Ja, du bruger en tabel, der hedder KF, der ikke findes.
Du bruger ikke Kunder. Samme fejl som i 3.

> Det er sikkert min alias-syntaks der er skrupsk�r. kan I gennemskue
> fejlene?
>
Ja til begge dele :-)

Leif
-- 
Bevar P2, luk P3, der er nok P3'er i forvejen.
Re: DB-opslag mellem relaterede tabeller
#367
Author: Leif Neland
Date: Mon, 04 Jul 2011 20:41
39 lines
3288 bytes
Den 04-07-2011 21:52, Jens R. Rasmussen skrev:

>
> 2) Nu vil jeg s� pr�ve at f� samme resultat - stadig KUN formanden -
> men med brug af aliasser.
>
> Hvis jeg skriver
> KF = kunder(formand) f�r jeg syntaksfejlen "Der opstod en Microsoft
> VBScript-k�rselsfejl (0x800A000D) Typer stemmer ikke overens: 'Kunder'"
> Alts� holder jeg mig til aliasdefinitionen
> KF = Kunder, som ikke giver nogen syntaksfejl.
>

Oh! �h! Ak!

Det er g�et op for mig, hvor din vildfarelse best�r :-)

 > KF = kunder(formand)

Her pr�ver du at s�tte asp-variablen KF lig resultatet af en 
asp-funktion, der hedder kunder, med parametren variablen formand. 
Ingenting af dette eksister (sandsynligvis). S�tningen er det rene vr�vl :-)

Asp ved ikke, hvad der er af felter eller tabeller i databasen.
asp/webserveren og sqlserveren/processen er helt adskilte processer, og 
kan ligge p� hver sin maskine i hvert sit land.

I asp bygger du en tekststreng, du kaster i hovedet p� sql-serveren, og 
f�r data tilbage.

Alt hvad der foreg�r i asp f�r du kalder set rs = Conn.Execute(strSQL)
er sql-serveren irellevant (bortset fra at asp skal logge p� sql-serveren).

Har du ikke et v�rkt�j, et ide, s� du kan skrive dit query, se 
tabellerne grafisk, og f� resultatet?

Leif
-- 
Bevar P2, luk P3, der er nok P3'er i forvejen.
Re: DB-opslag mellem relaterede tabeller
#368
Author: Jens R. Rasmussen
Date: Mon, 04 Jul 2011 20:43
95 lines
5347 bytes
Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp:
> Den 04-07-2011 21:52, Jens R. Rasmussen skrev: 
>  
> > 
> > For at indkredse fejlen vil jeg nu i f�rste omgang kun liste formanden 
> > gennem tiderne (alts� glem naestformand, kasserer...). Og det g�r fint 
> > n�r jeg skriver: 
> > 
> > 1) 
> > strSQL= "SELECT Kunder.Fornavn, Kunder.Efternavn, Stamdata.Saeson FROM 
> > (Stamdata INNER JOIN Kunder ON Kunder.Kundeid = Stamdata.Formand) ORDER
> > BY Stamdata.Saeson Desc" 
> > set rs = Conn.Execute(strSQL) 
> >    DO WHILE Not rs.eof 
> >    Response.write "S�son:�"&  rs("Saeson")&  "<br />" 
> >    Response.write "Formand:�"&  rs("fornavn")&  "�"& 
> > rs("Efternavn")&  "<br />" 
> >    Response.write "<br />" 
> >    rs.MoveNext 
> >    Loop 
> > 
> > bem�rk at jeg endnu ikke bruger aliasser. Som sagt kommer der et 
> > perfekt side ud med formandens navn gennem tiderne. 
> > 
> > 2) Nu vil jeg s� pr�ve at f� samme resultat - stadig KUN formanden - 
> > men med brug af aliasser. 
> > 
> > Hvis jeg skriver 
> > KF = kunder(formand) f�r jeg syntaksfejlen "Der opstod en Microsoft 
> > VBScript-k�rselsfejl (0x800A000D) Typer stemmer ikke overens: 'Kunder'"
> > Alts� holder jeg mig til aliasdefinitionen 
> > KF = Kunder, som ikke giver nogen syntaksfejl. 
>  
> M� vi lige f� den s�tning? 
>  
> > 
> > 3) N�r jeg s� i SQL-s�tningen fors�ger at erstatte alle kunder.xx med 
> > KF.xx - alts� skriver: 
> > strSQL= "SELECT KF.Fornavn, KF.Efternavn, Stamdata.Saeson FROM 
> > (Stamdata INNER JOIN Kunder ON KF.Kundeid = Stamdata.Formand) ORDER BY 
> > Stamdata.Saeson Desc" 
> > f�r jeg fejlmeddelelsen: "Microsoft JET Database Engine (0x80040E14) 
> > Der er en syntaksfejl i JOIN-handlingen." 
>  
> Du fort�ller ikke at KF er alias til Kunder 
> Det skal v�re "... INNER JOIN Kunder KF on KF.Kundeid..." 
>  
> > 
> > 4) Og g�r jeg skridtet videre og ogs� erstatter Kunder med KF, alts� 
> > skriver: 
> > KF = Kunder 
> Her s�tter du en asp-variabel KF lig en asp-variabel, der hedder Kunder.
> Det har intet med den streng, du sender til SQL. 
>  
> > strSQL= "SELECT KF.Fornavn, KF.Efternavn, Stamdata.Saeson FROM 
> > (Stamdata INNER JOIN KF ON KF.Kundeid = Stamdata.Formand) ORDER BY 
> > Stamdata.Saeson Desc" 
>  
>  
> > 
> > F�r jeg fejlen "Microsoft Jet-databasemotoren kan ikke finde 
> > inputtabellen eller foresp�rgslen "KF". Kontroller, at den findes, og 
> > at navnet er stavet korrekt. " 
> Ja, du bruger en tabel, der hedder KF, der ikke findes. 
> Du bruger ikke Kunder. Samme fejl som i 3. 
>  
> > Det er sikkert min alias-syntaks der er skrupsk�r. kan I gennemskue 
> > fejlene? 
> > 
> Ja til begge dele :-) 
>  
> Leif 
> --  
> Bevar P2, luk P3, der er nok P3'er i forvejen.

tak leif - det virker.

Jeg troede, at jeg f�rst skulle oprette et alias ved at skrive
KF = Kunder 
f�r jeg kom til sql-s�tningen

Nu har jeg sl�jfet det og i SQL-s�tningen gjort som du p�peger (skrive
Kunder KF). Det er �benbart f�rst i sql-s�tningen at jeg definerer mit
alias p� denne m�de.

Nu vil jeg s� fors�ge at f� naestformanden med. jeg h�ber ikke jeg skal
ulejlige dig igen. men tak itv.

/Jens

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#369
Author: Leif Neland
Date: Mon, 04 Jul 2011 20:54
23 lines
2512 bytes
Den 04-07-2011 22:43, Jens R. Rasmussen skrev:

>
> Jeg troede, at jeg f�rst skulle oprette et alias ved at skrive
> KF = Kunder
> f�r jeg kom til sql-s�tningen

Nej, du sender en komplet s�tning til sql-serveren.
>
> Nu har jeg sl�jfet det og i SQL-s�tningen gjort som du p�peger (skrive
> Kunder KF). Det er �benbart f�rst i sql-s�tningen at jeg definerer mit
> alias p� denne m�de.
>
> Nu vil jeg s� fors�ge at f� naestformanden med. jeg h�ber ikke jeg skal
> ulejlige dig igen. men tak itv.

itv?

Anyway, den s�tning har du ogs� f�et tidligere :-)

Leif
-- 
Bevar P2, luk P3, der er nok P3'er i forvejen.
Re: DB-opslag mellem relaterede tabeller
#370
Author: Jens R. Rasmussen
Date: Mon, 04 Jul 2011 20:59
36 lines
3184 bytes
> Oh! �h! Ak! 
>  
> Det er g�et op for mig, hvor din vildfarelse best�r :-) 
>  
>  > KF = kunder(formand) 
>  
> Her pr�ver du at s�tte asp-variablen KF lig resultatet af en  
> asp-funktion, der hedder kunder, med parametren variablen formand.  
> Ingenting af dette eksister (sandsynligvis). S�tningen er det rene vr�vl :-) 
>  
> Asp ved ikke, hvad der er af felter eller tabeller i databasen. 
> asp/webserveren og sqlserveren/processen er helt adskilte processer, og  
> kan ligge p� hver sin maskine i hvert sit land. 
>  
> I asp bygger du en tekststreng, du kaster i hovedet p� sql-serveren, og  
> f�r data tilbage. 
>  
> Alt hvad der foreg�r i asp f�r du kalder set rs = Conn.Execute(strSQL) 
> er sql-serveren irellevant (bortset fra at asp skal logge p� sql-serveren). 

Jeg har klart misforst�et det Stig skrev allerf�rst i denne lange tr�d. Jeg
troede han bad mig skrive dette :-(

> Har du ikke et v�rkt�j, et ide, s� du kan skrive dit query, se  
> tabellerne grafisk, og f� resultatet? 

N� - men det lyder som du har et link til et s�dant v�rkt�j?

mvh
   /jens

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#371
Author: Leif Neland
Date: Mon, 04 Jul 2011 21:15
11 lines
2309 bytes
Den 04-07-2011 22:59, Jens R. Rasmussen skrev:
>> >  Har du ikke et v�rkt�j, et ide, s� du kan skrive dit query, se
>> >  tabellerne grafisk, og f� resultatet?
> N� - men det lyder som du har et link til et s�dant v�rkt�j?
>

Hedder det ikke Access? :-)

Leif
-- 
Bevar P2, luk P3, der er nok P3'er i forvejen.
Re: DB-opslag mellem relaterede tabeller
#372
Author: Jens R. Rasmussen
Date: Mon, 04 Jul 2011 22:22
62 lines
4093 bytes
Nu gik det lige s� godt og jeg troede jeg kunne klare resten selv. Det kan jeg
desv�rre ikke. �v :-(

I min accessbase "Stamdata" har jeg felterne pr. record
N�glefelt = Saeson = fx 2010/2011
Formand = fx 117
Naestformand = fx 85
Kasserer .... osv.

I min Accessdatabase "Kunder" har jeg tilsvarende felterne i hver record
N�glefelt = kundeid = fx 117
Fornavn = fx jens
Efternavn = fx rasmussen
osv....

Efter meget m�je og besv�r har Stig og Leif hjulpet mig til at f� listet formanden
fra alle s�soner ved at skrive:

strSQL= "SELECT KF.Fornavn AS KFfornavn, KF.Efternavn AS KFefternavn,
Stamdata.Saeson FROM Stamdata INNER JOIN Kunder KF ON KF.Kundeid=Stamdata.Formand
ORDER BY Stamdata.Saeson Desc"
set rs = Conn.Execute(strSQL)
  DO WHILE Not rs.eof
  Response.write "S�son:&nbsp;" & rs("Saeson") & "<br />"
  Response.write "Formand:&nbsp;" & rs("KFFornavn") & "&nbsp;" & rs("KFEfternavn")
& "<br />"
  Response.write "<br />"
  rs.MoveNext
  Loop 

Og dette virker eksemplarisk!

Mit n�ste trin er ogs� at f� n�stformand med i listningen. Fra Stamdata er det et
sideordnet felt til Formand - mens det i kunder er en anden record.

Jeg har pr�vet at udvide strSQL-s�tningen til:
strSQL= "SELECT KF.Fornavn AS KFfornavn, KF.Efternavn AS KFefternavn, KN.Fornavn
AS KNfornavn, KN.Efternavn AS KNefternavn, Stamdata.Saeson FROM Stamdata INNER
JOIN Kunder KF ON KF.Kundeid=Stamdata.Formand INNER JOIN Kunder KN ON
KN.Kundeid=Stamdata.Naestformand ORDER BY Stamdata.Saeson Desc"

Men det giver mig fejlmeddelelsen: Der er en syntaksfejl, fordi der mangler en
operator. i foresp�rgselsudtrykket "KF.Kundeid=Stamdata.Formand INNER JOIN Kunder
KN ON KN.Kundeid=Stamdata.Naestformand".

Inspireret af Stig har jeg fors�gt at s�tte diverse parentser uden held. Det giver
andre fejlmeddelelser - s� enten er det en anden fejl eller ogs� har jeg ikke ramt
den korrekte parentes-s�tning.

mvh
  /Jens

Puha - det er s�rme sv�rt.




-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#373
Author: Leif Neland
Date: Tue, 05 Jul 2011 06:27
45 lines
3839 bytes
Den 05-07-2011 00:22, Jens R. Rasmussen skrev:
> Mit n�ste trin er ogs� at f� n�stformand med i listningen. Fra Stamdata er det et
> sideordnet felt til Formand - mens det i kunder er en anden record.
>
> Jeg har pr�vet at udvide strSQL-s�tningen til:
> strSQL= "SELECT KF.Fornavn AS KFfornavn, KF.Efternavn AS KFefternavn, KN.Fornavn
> AS KNfornavn, KN.Efternavn AS KNefternavn, Stamdata.Saeson FROM Stamdata INNER
> JOIN Kunder KF ON KF.Kundeid=Stamdata.Formand INNER JOIN Kunder KN ON
> KN.Kundeid=Stamdata.Naestformand ORDER BY Stamdata.Saeson Desc"
>
> Men det giver mig fejlmeddelelsen: Der er en syntaksfejl, fordi der mangler en
> operator. i foresp�rgselsudtrykket "KF.Kundeid=Stamdata.Formand INNER JOIN Kunder
> KN ON KN.Kundeid=Stamdata.Naestformand".
>

Enten er der en "Doh'"-oplevelse, vi mangler; et eller andet vi overser, 
eller ogs� er access ikke sql.
B�de sqlmanager og mysql accepterer queriet.
Jeg har endda lavet tabellerne i en testdb, se resultatet her:

http://gupl.dk/62414/


> Inspireret af Stig har jeg fors�gt at s�tte diverse parentser uden held. Det giver
> andre fejlmeddelelser - s� enten er det en anden fejl eller ogs� har jeg ikke ramt
> den korrekte parentes-s�tning.
>
Kan du ikke arbejde i tabellerne direkte med access, s� burde du kunne 
f� lavet dit query i gui point-and-click, og s� f� set queryet som 
access vil have det.

http://www.techonthenet.com/access/queries/joins1.php
http://www.techonthenet.com/access/queries/view_sql.php

>
> Puha - det er s�rme sv�rt.

Ja, hvis access ikke opf�rer sig som standard sql kan det v�re tungt at 
hj�lpe...

Jeg har ikke access p� mine maskiner

Leif
-- 
Bevar P2, luk P3, der er nok P3'er i forvejen.
Re: DB-opslag mellem relaterede tabeller
#374
Author: Leif Neland
Date: Tue, 05 Jul 2011 06:39
36 lines
3624 bytes
Den 05-07-2011 00:22, Jens R. Rasmussen skrev:

> Jeg har pr�vet at udvide strSQL-s�tningen til:
> strSQL= "SELECT KF.Fornavn AS KFfornavn, KF.Efternavn AS KFefternavn, KN.Fornavn
> AS KNfornavn, KN.Efternavn AS KNefternavn, Stamdata.Saeson FROM Stamdata INNER
> JOIN Kunder KF ON KF.Kundeid=Stamdata.Formand INNER JOIN Kunder KN ON
> KN.Kundeid=Stamdata.Naestformand ORDER BY Stamdata.Saeson Desc"
>
> Men det giver mig fejlmeddelelsen: Der er en syntaksfejl, fordi der mangler en
> operator. i foresp�rgselsudtrykket "KF.Kundeid=Stamdata.Formand INNER JOIN Kunder
> KN ON KN.Kundeid=Stamdata.Naestformand".
>
En �kvivalent s�tning er
SELECT KF.Fornavn AS KFfornavn, KF.Efternavn AS KFefternavn,
KN.Fornavn AS KNfornavn, KN.Efternavn AS KNefternavn, Stamdata.Saeson 
FROM Stamdata,Kunder KF,Kunder KN
WHERE KF.Kundeid=Stamdata.Formand AND KN.Kundeid=Stamdata.Naestformand 
ORDER BY Stamdata.Saeson Desc

Men den laver sqlmanager om til inner join med det samme.

Pr�v med
SELECT     KF.Fornavn AS KFfornavn, KF.Efternavn AS KFefternavn, 
KN.Fornavn AS KNfornavn, KN.Efternavn AS KNefternavn, Stamdata.Saeson
FROM         Stamdata LEFT OUTER JOIN
                       Kunder KF ON KF.Kundeid = Stamdata.Formand LEFT 
OUTER JOIN
                       Kunder KN ON KN.Kundeid = Stamdata.Naestformand
ORDER BY Stamdata.Saeson DESC

S� f�r du ogs� de begivenheder, hvor der ikke er formand eller 
n�stformand p�; det er det sikreste...

Leif
-- 
Bevar P2, luk P3, der er nok P3'er i forvejen.
Re: DB-opslag mellem relaterede tabeller
#377
Author: Leif Neland
Date: Tue, 05 Jul 2011 10:24
27 lines
2906 bytes
Den 05-07-2011 12:41, Stig Johansen skrev:
> Leif Neland wrote:
>
>> Den 05-07-2011 00:22, Jens R. Rasmussen skrev:
>>>
>>> Puha - det er s�rme sv�rt.
>>
>> Ja, hvis access ikke opf�rer sig som standard sql kan det v�re tungt at
>> hj�lpe...
>>
>> Jeg har ikke access p� mine maskiner
>
> He - Leif :-)
>
> Nej, Access opf�rer sig ikke _altid_ sql compliant, men har forskellige
> spidsfindigheder.
>
> Men n�r du skriver et 'gui', s� har jeg et 'general sql query tool' liggende
> et eller andet sted p� en vmware.

Det nytter vel ikke med et "general" tool, hvis access opf�rer sig 
nonstandard.

Men hvis man har en access-database, har man s� ikke access? Der er jo 
et gui, s� vidt jeg kan se af de links, jeg har lagt tidligere i tr�den.

Leif
Re: DB-opslag mellem relaterede tabeller
#375
Author: Stig Johansen
Date: Tue, 05 Jul 2011 10:41
35 lines
3023 bytes
Leif Neland wrote:

> Den 05-07-2011 00:22, Jens R. Rasmussen skrev:
>>
>> Puha - det er s�rme sv�rt.
> 
> Ja, hvis access ikke opf�rer sig som standard sql kan det v�re tungt at
> hj�lpe...
> 
> Jeg har ikke access p� mine maskiner

He - Leif :-)

Nej, Access opf�rer sig ikke _altid_ sql compliant, men har forskellige
spidsfindigheder.

Men n�r du skriver et 'gui', s� har jeg et 'general sql query tool' liggende
et eller andet sted p� en vmware.

Et s�dant v�rkt�j er uundv�rligt, da det netop viser hvad der sker som f�lge
af diverse s�tninger.

Du kender QA, s� lad mig n�jes med at sige det er en 'ASP-QA', dog primitiv,
og best�r kun af databasevalg same et textarea, analogt med QA.

Det vil v�re lidt besv�rligt at finde og poste, men hvis vi kan lave den
aftale at du (eller andre (Jens)) vil l�gge kildeteksten tilg�ngelig, s� er
jeg villig til at bruge et par timer p� at finde det frem.

(Besv�rligt, da materialet ligger p� en Win2K vmware, og jeg skriver fra en
Linux vmware, og det er ikke ligetil at copy/paste;)

-- 
Med venlig hilsen
Stig Johansen
Re: DB-opslag mellem relaterede tabeller
#376
Author: Stig Johansen
Date: Tue, 05 Jul 2011 10:43
10 lines
2151 bytes
Stig Johansen wrote:

PS:
Hvis Jens l�gger eksempeldata i CSV filer (eller xls-filer), kunne jeg godt
overtales til at dissekere problemstillingen, men jeg 'gider' ikke bruge
tid p� at fabrikere tabeller/data.

-- 
Med venlig hilsen
Stig Johansen
Re: DB-opslag mellem relaterede tabeller
#378
Author: Stig Johansen
Date: Tue, 05 Jul 2011 11:39
71 lines
4402 bytes
Leif Neland wrote:

> Den 05-07-2011 12:41, Stig Johansen skrev:
>> Leif Neland wrote:
>>
>>> Den 05-07-2011 00:22, Jens R. Rasmussen skrev:
>>>>
>>>> Puha - det er s�rme sv�rt.
>>>
>>> Ja, hvis access ikke opf�rer sig som standard sql kan det v�re tungt at
>>> hj�lpe...
>>>
>>> Jeg har ikke access p� mine maskiner
>>
>> He - Leif :-)
>>
>> Nej, Access opf�rer sig ikke _altid_ sql compliant, men har forskellige
>> spidsfindigheder.
>>
>> Men n�r du skriver et 'gui', s� har jeg et 'general sql query tool'
>> liggende et eller andet sted p� en vmware.
> 
> Det nytter vel ikke med et "general" tool, hvis access opf�rer sig
> nonstandard.
> 
> Men hvis man har en access-database, har man s� ikke access? Der er jo
> et gui, s� vidt jeg kan se af de links, jeg har lagt tidligere i tr�den.

Nej til det f�rste.
Man kan sagtens bruge Access(database) uden at have Access(programmet).

Access(programmet) har en 'query builder', men den fabrikerer de nok v�rste
t�nkelige SQL'er du nogensinde vil se.

Hvis du kigger p� det, s� hav en af de der poser klar, der sidder i
flys�derne, som man ogs� kan bruge til kryds og bolle ;)

Bruger man ren ODBC/ADO eller lign, s� opf�rer den sig 'tiln�rmelsesvist'
som en 'rigtig database', men Access har intet GUI til en ren 'Query
analyzer'.

Hint: Jeg har 'rodet' med databaseuafh�ngige systemer siden ca. '95, s� hvis
jeg ikke mente der var behov for et s�dat 'query tool', s� havde jeg ikke
brugt tid p� at skrive det ;-)

Hint2: Jeg har nogle andre tools, men de k�rer kun lokalt, og vil kr�ve
kopiering fra og tilbage fra serveren.

Hint3: MS K�bte Open Access (integeret kontorpakke) og videreudviklede den.
De 'k�bte' senere (en licens til?) sybase, som er en decideret database.
MS's udfordring er at 'merge' disse to afarter, og rygter vil vide, at med
'god behandling' benyttes samme engine som til MS SQLServer (fra og med
Access 2K).

Access er ikke noget jeg bruger, men er typisk gratis tilg�ngeligt p�
diverse webhoteller.

Performancewise kan den sagtens m�le sig med andre 'databaser', hvis man
alts� behandler den 'p�nt'.

Dvs. Optimerede SQL-compliant SQL.

Myten om langsomheden opst�r n�r man bruger alt andet end (fast) forward
read-only cursors.

'fast' er i den forbindelse relateret til MS SQLServer, hvor det virkelig
sparker r�v, men er nok ikke implementeret i Access.

-- 
Med venlig hilsen
Stig Johansen
Re: DB-opslag mellem relaterede tabeller
#379
Author: Stig Johansen
Date: Tue, 05 Jul 2011 11:41
8 lines
2017 bytes
Stig Johansen wrote:

PS:
Jeg ved ikke hvorn�r jeg kigger forbi igen, da kun er engang imellem.

-- 
Med venlig hilsen
Stig Johansen
Re: DB-opslag mellem relaterede tabeller
#380
Author: Leif Neland
Date: Tue, 05 Jul 2011 12:47
15 lines
2741 bytes
Den 05-07-2011 13:39, Stig Johansen skrev:

> Access(programmet) har en 'query builder', men den fabrikerer de nok v�rste
> t�nkelige SQL'er du nogensinde vil se.
>
> Hvis du kigger p� det, s� hav en af de der poser klar, der sidder i
> flys�derne, som man ogs� kan bruge til kryds og bolle ;)

Er det ikke bare at den omformulerer queryet til det, som serveren udf�rer?

F.ex. laver sql'en i enterprise manager ..from a,b where a.key=b.key om 
til join on a.key=b.key, og logiske udtryk "pakkes ud", svhh bliver
a and (b or c) til (a and b) or (a and c).

Leif
Re: DB-opslag mellem relaterede tabeller
#381
Author: Jens R. Rasmussen
Date: Tue, 05 Jul 2011 15:49
28 lines
2984 bytes
Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp:
> Pr�v med 
> SELECT     KF.Fornavn AS KFfornavn, KF.Efternavn AS KFefternavn,  
> KN.Fornavn AS KNfornavn, KN.Efternavn AS KNefternavn, Stamdata.Saeson 
> FROM         Stamdata LEFT OUTER JOIN 
>                        Kunder KF ON KF.Kundeid = Stamdata.Formand LEFT  
> OUTER JOIN 
>                        Kunder KN ON KN.Kundeid = Stamdata.Naestformand 
> ORDER BY Stamdata.Saeson DESC 
>  
> S� f�r du ogs� de begivenheder, hvor der ikke er formand eller  
> n�stformand p�; det er det sikreste... 

fejlmeddelelsen er den 'klassiske', som jeg f�r hver gang:

Microsoft JET Database Engine (0x80040E14)
Der er en syntaksfejl, fordi der mangler en operator. i foresp�rgselsudtrykket
"KF.Kundeid = Stamdata.Formand LEFT OUTER JOIN Kunder KN ON KN.Kundeid =
Stamdata.Naestformand".

Desv�rre :-(
  /Jens

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#382
Author: Jens R. Rasmussen
Date: Tue, 05 Jul 2011 15:56
23 lines
2691 bytes
Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> Stig Johansen wrote: 
>  
> PS: 
> Hvis Jens l�gger eksempeldata i CSV filer (eller xls-filer), kunne jeg godt 
> overtales til at dissekere problemstillingen, men jeg 'gider' ikke bruge 
> tid p� at fabrikere tabeller/data. 
>  
> --  
> Med venlig hilsen 
> Stig Johansen

S� gerne - jeg har 2 xls-filer klar - en med Stamdata og en med Kunder.
Hvordan f�r du dem, f�r jeg kan vist ikke attache dem her i konferencen, vel?

mvh
  /jens

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#383
Author: Stig Johansen
Date: Wed, 06 Jul 2011 09:47
38 lines
3474 bytes
Leif Neland wrote:

> Den 05-07-2011 13:39, Stig Johansen skrev:
> 
>> Access(programmet) har en 'query builder', men den fabrikerer de nok
>> v�rste t�nkelige SQL'er du nogensinde vil se.
>>
>> Hvis du kigger p� det, s� hav en af de der poser klar, der sidder i
>> flys�derne, som man ogs� kan bruge til kryds og bolle ;)
> 
> Er det ikke bare at den omformulerer queryet til det, som serveren
> udf�rer?

Nej ikke s�dan.

Access er ikke en client/server l�sning, mere et integreret produkt.

'Programmet' er ikke en gui p� linie med EM/QA, mere 'et kan alting produkt'
incl. forms/vbscript osv.. n�rmest en af de der slags 4. generations
udviklingsv�rkt�jer.


Programmet Access er ikke gratis eller frit tilg�ngeligt, det var ikke
engang en del af 'office pakken' men kostede klejner ed siden af.

Men n�r vi snakker brugen af Access (databasen), s� h�nger det sammen med,
at selve 'jetmotoren', som de kalder det, er en del af enhver windows
installation.

Det betyder at alle med windows har mulighed for at bygge, vedligeholde og
bruge Access 'databaser'.

Derfor henviste jeg til et 'general query tool', som vha. ASP kan udf�re
disse opgave uagtet man ikke har 'programmet' Access.

-- 
Med venlig hilsen
Stig Johansen
Re: DB-opslag mellem relaterede tabeller
#384
Author: Stig Johansen
Date: Wed, 06 Jul 2011 09:56
29 lines
2905 bytes
Jens R. Rasmussen wrote:

> S� gerne - jeg har 2 xls-filer klar - en med Stamdata og en med Kunder.
> Hvordan f�r du dem, f�r jeg kan vist ikke attache dem her i konferencen,
> vel?

Jeg g�r ud fra du har en hjemmeside, s� l�g dem der, og giv et link.

Nu vil jeg ikke komme ind p� infrastrukturelle omst�ndigheder i detaljer,
men der hvor jeg normalt har adgang, er der af en eller anden mystisk grund
sp�rret for NNTP.

Det betyder jeg kan l�se vha. html.dk/google groups, men du f�r mig aldrig
til at _skrive_ via disse interfaces.

Da jeg 'kun' har office 97, vil jeg nok foretr�kke at de bliver lagt som CSV
filer - "file save as..."

Hvis du g�r det, kan jeg i ro og mag kigge p� det, og vende tilbage n�r tid
er.

Det lyder nok lidt kryptisk, men det handler om, at mine skriblerier foreg�r
fra en vmware, der ligger p� en lille usb-disk, s� den har jeg med n�r jeg
kigger forbi kn�gten (aht NNTP).


-- 
Med venlig hilsen
Stig Johansen
Re: DB-opslag mellem relaterede tabeller
#385
Author: Leif Neland
Date: Wed, 06 Jul 2011 11:34
27 lines
3104 bytes
"Jens R. Rasmussen" <Jens.R.Rasmussen@uni-c.dk> skrev i en meddelelse 
news:4e133281$0$308$14726298@news.sunsite.dk...
> Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp:
>> Pr�v med
>> SELECT     KF.Fornavn AS KFfornavn, KF.Efternavn AS KFefternavn,
>
> fejlmeddelelsen er den 'klassiske', som jeg f�r hver gang:
>
> Microsoft JET Database Engine (0x80040E14)
> Der er en syntaksfejl, fordi der mangler en operator. i 
> foresp�rgselsudtrykket
> "KF.Kundeid = Stamdata.Formand LEFT OUTER JOIN Kunder KN ON KN.Kundeid =
> Stamdata.Naestformand".
>
> Desv�rre :-(
>  /Jens

Hvad siger den s� til
SELECT KF.Fornavn AS KFfornavn, KF.Efternavn AS KFefternavn,
KN.Fornavn AS KNfornavn, KN.Efternavn AS KNefternavn, Stamdata.Saeson
FROM Stamdata,Kunder KF,Kunder KN
WHERE KF.Kundeid=Stamdata.Formand AND KN.Kundeid=Stamdata.Naestformand
ORDER BY Stamdata.Saeson Desc

Hvis det virker, s� m� du leve med at der *skal* v�re b�de formand og 
n�stformand. :-)
Re: DB-opslag mellem relaterede tabeller
#387
Author: Stig Johansen
Date: Thu, 07 Jul 2011 09:52
13 lines
2248 bytes
Jens R. Rasmussen wrote:

> S� gerne - jeg har 2 xls-filer klar - en med Stamdata og en med Kunder.
> Hvordan f�r du dem, f�r jeg kan vist ikke attache dem her i konferencen,
> vel?

Jeg lavede en reply vha Google, men det oprettede en ny tr�d.

Svaret p� 'alle dine problemer' findes i den tr�d 16:20 i g�r.

-- 
Med venlig hilsen
Stig Johansen
Re: DB-opslag mellem relaterede tabeller
#393
Author: Jens R. Rasmussen
Date: Thu, 07 Jul 2011 21:10
25 lines
3005 bytes
Leif Neland wrote in dk.edb.internet.webdesign.serverside.asp:
> Hvad siger den s� til 
> SELECT KF.Fornavn AS KFfornavn, KF.Efternavn AS KFefternavn, 
> KN.Fornavn AS KNfornavn, KN.Efternavn AS KNefternavn, Stamdata.Saeson 
> FROM Stamdata,Kunder KF,Kunder KN 
> WHERE KF.Kundeid=Stamdata.Formand AND KN.Kundeid=Stamdata.Naestformand 
> ORDER BY Stamdata.Saeson Desc 
>  
> Hvis det virker, s� m� du leve med at der *skal* v�re b�de formand og  
> n�stformand. :-) 

Hurra. Det virker, Leif. Tak for det. Selvf�lgelig er det fortsat en
'interessant' g�de hvorfor jeg ikke kunne bruge joins - alts� hvad der var
galt. Men lige nu vil jeg gl�de mig over at vi kom i m�l. Nu burde det ikke
v�re nogen sag at udvide dette til kasserer, sekret�r, ...
Tak nok en gang.

mvh den taknemmelige
   /Jens

-- 
Vil du l�re at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
 - P�dagogiske tutorials p� dansk
 - Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
Re: DB-opslag mellem relaterede tabeller
#394
Author: Stig Johansen
Date: Fri, 08 Jul 2011 08:55
40 lines
3272 bytes
Jens R. Rasmussen wrote:

> Hurra. Det virker, Leif. Tak for det. Selvf�lgelig er det fortsat en
> 'interessant' g�de hvorfor jeg ikke kunne bruge joins - alts� hvad der var
> galt. 

Paranteserne - du, paranteserne (i Access).

> Men lige nu vil jeg gl�de mig over at vi kom i m�l. Nu burde det 
> ikke v�re nogen sag at udvide dette til kasserer, sekret�r, ...

Fra mit andet indl�g:
....
SELECT 
KF.Fornavn AS KFfornavn, KF.Efternavn AS KFefternavn,
KN.Fornavn AS KNfornavn, KN.Efternavn AS KNefternavn,
KS.Fornavn AS KSfornavn, KS.Efternavn AS KSefternavn,
S.Saeson 
FROM 
(( Stamdata S
INNER JOIN Kunder KF ON KF.Kundeid=S.Formand )
INNER JOIN Kunder KN ON KN.Kundeid=S.Naestformand)
INNER JOIN Kunder KS ON KS.Kundeid=S.Kasserer
ORDER BY S.Saeson Desc
....
Her er kasserer med, men ikke sekret�r.

Opstiller du det p� den m�de burde det v�re ligetil at tilf�je sekret�r med
tilh�rende paranteser.

Hint i ASP:
SQL = 'SELECT' + _
          'KF...osv' + _
          osv.

Ved at bruge flere linier, f�r man et meget bedre overblik over SQL'et.

-- 
Med venlig hilsen
Stig Johansen
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads