Skulle velat lära mig php fast det vill då fan inte funka.
Ska testa igen nån gång, men tills dess kör jag Apache, ASP och MySQL. Inget fel med det.
PHP eller ASP
24 svar · 655 visningar · startad av Mizzy · sida 2 av 2
niko skrev:
ptha skrev:
Filsystem tillåter bara att det finns max 1 session som skriver mot samma fil samtidigt. Det skulle bli väldigt paradoxalt ifall två sessioner skrev samtidigt.
Var har du fått det ifrån?? Windows har inget emot att flera processer/trådar skriver till samma fil samtidigt så länge som ingen av dem låst filen exklusivt. I fallet med tex Access är det sen databasdrivisarnas uppgift att se till att tex enskilda poster låses så att datan inte blir korrupt men det innebär så klart inte att hela databasen är låst av en enda användare.
Om man använder ditt långsökta resonemang så klarar ju egentligen ingen databas mer än en användare åt gången eftersom det ju aldrig kan finnas mer än en skrivinstruktion i CPU:n åt gången.
Fast frågan är ju lätt avgjord med ett experiment: Lägg dig i en loop och öppna Access-connections tills ADO:n protesterar och se vad du kommer upp till. Jag kommer upp till 64 st. Hur många kommer du upp till?
Att två sessioner skriver mot samma fil är omöjligt. Anledningen till att det går i Windows är enkel: man använder mutex. (fungerar som en flagga för att tala om ifall objectet är öppet eller inte). Men då skriver du inte SAMTIDIGT en process sitter och väntar tills objektet är öppet. Därför ifall det är hög userload på sajten kan det dröja en stund innan ASP-koden kan fortsätta efter som den måste vänta tills den blir den processerns tur i kön.
så det går att använda Access utan problem .. fast det kan ta TID innan sidan har laddats.
görs för övrigt med WaitForSingleObject() funktionen i C/C++.
btw - jag använder inte ASP därför det kostar att ha Office/IIS/Windows och har inte råd med det. (prioriterar mat/kläder etc).
för övrigt har vi kommit lite off-topic. det var ASP/PHP inte Access det handlade om. ASP är så mycket mer än Access. :)
Men då skriver du inte SAMTIDIGT en process sitter och väntar tills objektet är öppet.
OK, då fattar jag. Du använder alltså en definition av "samtidig" som är helt orimlig i databassammanhang?
Om man spinner vidare på ditt resonemang:
Windows klarar bara en samtidig nätverksanslutning. Varför? Jo, miniportdrivern kan ju bara placera en signal på nätverkskortet TP-utgång i taget.
Windows klarar bara att köra en process samtidigt. Varför? Jo, i varje givet ögonblick så kan det ju bara ligga en instruktion i instruktionsregistret.
Och dessutom drabbar ditt resonemang alla databaser oavsett om de rent fysiskt består av en eller flera filer. Det är ju bara en process/tråd som kan skriva till varje fil i ett enskilt ögonblick, eller hur?
Därmed inte sagt att Access är något annat än en ganska begränsad desktop-databas, men mer än en användare åt gången klarar den (om man använder en normal definition av "åt gången").
okej. kanske inte förklarade så bra vad jag menade.
ADO är en drivrutin och slutför sin process tills den är klar med filen. (mer eller mindre).
MySQL tex. är en egen process som inte ställer saker & ting mer i kö än allt annat som skickas till CPU:n osv. MySQL är multithreaded och tar hand om förfrågningar så fort som CPU:n tillåter. MySQL är byggd för multi-user system. Vilket inte Access är. ADO är som sagt bara en drivrutin, ett mellanlager, som tillåter detta mer eller mindre smärtfritt.
det går att ha flera användare till samma Access databas via en websida. men det är tidskrävande eftersom varje ADO connection får ta en kölapp.
Och eftersom man vill ha prestanda på en webbsida så är det en regel att inte använda Access databaser för webbsidor. I alla fall inte för större. Och ju tidigare man lär sig detta desto bättre.
kan vi sluta disskutionen om Access? Vi kan hålla på hur länge som helst. Dessutom är det off-topic. (så långt som vi tagit det) Men faktum kvarstår. Access självt klarar inte mer än en användare i taget. Men eftersom man i ASP använder ett mellanlager är det möjligt - men jag upprepar - tidskrävande.
Jag ursäktar mig att jag inte förklarade bättre från början hur jag menade och mer acceptabel orsak etc. Jag erkänner att jag hade fel med det jag skrev (inte vad jag menade). Och det är bra att du har påpekat det du har, niko. Men topicen börjar urarta. Om du önskar fortsätta disskutionen - skapa en ny tråd.
ps: konstatera dig själv som ägd.
Nej! Inte på något sätt.
Men med en sån kommentar vet jag inte om jag är så intresserad att fortsätta någon disskution.
Dock så tycker jag trådarna därefter ialla fall börjar närma sig sanningen. Och för att avsluta access-debatten och försöka smyga tillbaka till topic så kan man säga att access-databasen duger en bra stund innan man känner av problemen med dess begränsning.
Att det skulle vara tidskrävande känner jag inte till. Till större och välbesökta applikationer då.
Men det finns ingenting som säger att man inte får använda mySQL tillsammans med ASP. Inga som helst problem!
Kör nyligen asp + mySQL samt asp.net + mySQL, och detta p.g.a. att mySQL-databasen helt enkelt känns tryggare ifall sidan skulle explodera med besökare.
Och i frågan asp vs php, säger som alltid:
Lär dig båda och använd respektive efter applikationens behov.