EclipseMedlem sedan juli 20003 741 inlägg
Det finns en major bkackdraft med GetRows() och det är om man länkar ihop flera tabeller, man kanske får upp till 50 värden på en rad, och sedan kommer på att man missade en viktig post. Klämmer man in den så kanske man har oturen att posten hamnar i början av frågan...
...vilket gör att alla sidor som är beroende av den tabellen i olika typer av frågor *KAN* bli helt fel...
Genom att klämma in en enda post kan man ju förstöra en hel webbplats!
Ni som är kungar på området, hur gör ni... Eller hur gör ni inte!
---
OT
Denna webbplatsen funkar inte med Netscape.
http://www.design-gruppen.nu/
@ndersMedlem sedan juni 200026 914 inlägg
Lägger till fältet sist i selectlistan.
Jag specificerar alltså alla fält som skall hämtas. Fälten kommer ju ut i resultatet i den ordning de specificeras i listan.
Lägger du bara till sist, så är det ju ingen risk att du förstör andra referenser till arrayindex i applikationen.
Mvh,
------------------
All your base are belong to me.
spangoMedlem sedan juni 20006 147 inlägg
Inte för att jag ens kommer i närheten av asp under mina dagliga sysslor, men en bra variant vore väl att deklarera konstanter som motsvarar det index kolumnerna kommer att få i matrisen som kommer från getRows.
------------------
You can be a coward for a few minutes, or dead forever. /Rincewind
EclipseMedlem sedan juli 20003 741 inlägg
Jag tror det skulle fungera med SQL Server men jag tror inte det går med Access.
I SQL Server kan man "baklänges" fråga hur många tabeller som finns, vad dom heter, namnen på kolummerna och vad dom innehåller. Man kan alltså göra ett webbaserat administratinsverktyg (precis som phpMyAdmin) för att hantera själva databasen. Det fungerar inte med Access.
Nån guru på området kanske kan rätta mig på denna punkten för jag vill inte påstå att jag är supersäker på min sak...
EclipseMedlem sedan juli 20003 741 inlägg
@nders
Ahh! Smart ass igen! :-) Typiskt, jag brukar bara köra den slöa varianten med stjärnan... klart att det blir krångligt då!
Då ska jag bara säga till kunden att jag måste göra om lite, men det går fort... :-)
EclipseMedlem sedan juli 20003 741 inlägg
Det var inte *så* himmla jobbigt att göra om allt, det var snarare befriande!
Nu blir dokumantation och eventuell framtida underhåll osv mycket enklare.
Bättre sent än aldrig... Det känns bra!
EclipseMedlem sedan juli 20003 741 inlägg
While we're at it...
Jag frågade i en tidigare tråd om hur man kopplar ihop fyra tabeller och fick väl aldrig något riktigt bra svar på det.
Om någon känner sig manad ska jag inte hindra er att posta förslag!
Jag har förövrigt gjort om delar av projektet så jag tror jag slipper använda mig av den tekniken men man vet ju aldrig...
LarsGMedlem sedan dec. 200012 465 inlägg
select * from t1,t2,t3,t4
where t1.id = t2.id
and t2.id = t3.id
and t3.id = t4.id
------------------
essentitia preter non sans multiplicandum
EclipseMedlem sedan juli 20003 741 inlägg
Var det så enkelt!?
Varför håller man på och krånglar med inner join och left join då?
Det kanske finns fördelar i andra fall men då kan man kanske applicera tillvägagångssättet när det ger klara fördelar! Eller är jag helt plockad bakom en cirkusvagn...
LarsGMedlem sedan dec. 200012 465 inlägg
Om du enbart har inner join behöver man aldrig använda join-syntaxen, det går lika bra att skriva på det sättet som jag gjorde.
Däremot om du har minst en (left/right) outer join, så måste du använda en join i from listan.
------------------
essentitia preter non sans multiplicandum
EclipseMedlem sedan juli 20003 741 inlägg
Jaha... Ja, jag får nog experimentera lite med det där. Gör jag det kanske jag fattar varför man ska använda join över huvud taget!
Tack för koden i alla fall.
LarsGMedlem sedan dec. 200012 465 inlägg
Det tråkiga med join-syntaxen är att olika dbms tillåter olika saker. T.ex. så kräver access att man skriver
select * from ((t1 inner join t2 on t1.id = t2.id) inner join t3 on t2.id = t3.id) inner join t4 on t3.id = t4.d
medan mysql, däremot inte tillåter att man har med parenteser.
Enligt standard så kan man ha med parenteserna om man vill. Det är också så att Access kräver att man har med ordet inner eller outer vilket inte heller är enligt standard.
------------------
essentitia preter non sans multiplicandum
EclipseMedlem sedan juli 20003 741 inlägg
Wow...! Är detta nya rön eller har det varit så länge!?
Dessa aspekter har jag inte sett diskuteras i tidigare trådar, vilket därmed inte sagt att det inte har diskuterats.
Tack för dina inlägg!
EclipseMedlem sedan juli 20003 741 inlägg
Note!
Efter grundlige efterforskningar (trial en error eller blod, svett och tårar...) kan jag meddella att skillnaden mellan join och det andra, enklare sättet är att om man skriver JOIN LEFT behöver det andra tabellen ej finnas.
Använder man den andra varianten förutsätts att alla data redan finns.
Hajar ni!? Förmodligen är jag ensam i hela forumet att inte känna till detta men nu vet jag det i alla fall.
jag ville bara säga att det finns en skillnad och om man inte tar hänsyn till det blir det "either BOF or EOF, maybe the selected post is deleted".
:-)