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!
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.
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.
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...
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...
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.
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".
:-)
263 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf