FAQ |
Kalender |
2007-03-18, 21:05 | #1 | ||
|
|||
Medlem
|
Jag ansvarar för ett webbaserat orderhanteringssystem åt ett företag. Jag utvecklade det själv för ett par år sedan, och har kontinuerligt utökat och underhållit det. Det är i sin nuvarande version skrivet i php och bygger på databaser i MySQL. Kunderna kan via en hemsida lämna ordrar och företagets personal kan via en annan sida expediera ordrarna och se diverse statistik och information. Så långt inget märkvärdigt på något sätt.
Jag har nu funderat på om det vore möjligt att låta företagets gränssnitt till systemet vara ett fristående program istället för en websida. Eftersom kunderna fortfarande lämnar ordrar via hemsidan skulle databasen ligga kvar på webhotellet, så programmet behöver komma åt den där. Jag har gjort en del i Java och C# tidigare, men inte använt JDBC (som jag tror behövs i det här fallet). I dagsläget är motiveringen för det hela främst att slippa begränsningen av att det är websidor (antingen behöver man använda sessionsvariabler, eller skicka en massa saker med POST, och det blir lätt väldigt rörigt om man skulle råka klicka på webläsarens bakåtknapp m.m.) samt - inte minst - att själv lära mig mer om databaser tillsammans med fristående applikationer. Kanske finns det bättre sätt, men i det nuvarande systemet öppnar jag en anslutning till databasen varje gång en php-sida "körs", och utför alla SQL-kommandon, stänger anslutningen, och visar resultatet i html. Hur skulle det fungera i ett fristående program? Måste man öppna en anslutning och stänga den igen för varje gång programmet vill köra en SQL-fråga? Eller räcker det att öppna en anslutning när programmet startar och stänga denna när programmet avslutas? Eller är det timeout på databasen på servern då? Krävs det speciella inställningar i databasen för att tillåta SQL-anrop från ett annat ip-nummer än den egna servern? Eller räcker det att logga in som en användare med tillräckliga rättigheter? Alla tankar och tips som kan leda mig vidare tas tacksamt emot! |
||
Svara med citat |
2007-03-18, 21:30 | #2 | ||
|
|||
Nykomling
|
MSHTML läs mer om det här: http://blog.sc.tri-bit.com/archives/163
Tror detta är den enklaste lösningen |
||
Svara med citat |
2007-03-18, 21:53 | #3 | ||
|
|||
Medlem
|
Måste säga att jag inte förstår hur du menar, Tetsou...
|
||
Svara med citat |
2007-03-18, 22:09 | #4 | ||
|
|||
Mycket flitig postare
|
Tetsou pratar om att lägga in en IE-komponent i din applikation. Så att dina användare öppnar en vanlig applikation som i sin tur innehåller ett nedskalat internet explorer som öppnar samma sida som vanligt.
Jag ser inte hur det skulle kunna lösa dina problem. För att besvara dina andra frågor. Citat:
Citat:
|
||
Svara med citat |
2007-03-18, 22:10 | #5 | ||
|
|||
Mycket flitig postare
|
Jag tror att han försöker berätta för dig att han tycker du ska köra allt på webben i fortsättningen också och kommunicera via en inbäddad IE i din applikation. Ignorera honom då han uppenbarligen inte läst ditt inlägg och verkar tro att du vill göra en stand-alone app för att kunden vill ha det medans du ju i själva verket vill något annat.
Att du pratar om JDBC tolkar jag som att du tänkt använda Java. Hur det funkar där vet jag inte, men i .Net får du en connectionpooling kopplad till connectionsträngen så du öppnar/stänger förbindelser i din kod precis som om du bara behövde dem just då och .Net frameworket kommer hålla en förbindelse öppen om det behövs. Att ha en öppen förbindelse till databasen är knappast avgörande prestandamässigt så det är bara att jobba "som vanligt". Ja din MySQL server måste tillåta access för en databasanvändare från ett annat IP än bara localhost. Det kan ju vara samma användare som du använder nu om du vill, men IP:t måste tillåtas. Se GRANT kommandot i mysql. |
||
Svara med citat |
2007-03-18, 22:34 | #6 | ||
|
|||
Medlem
|
Citat:
Förstår att databasanslutningarna ligger i en pool, men antag att jag i min applikation skulle vilja köra en sql-fråga var tionde sekund. Är det rätt uppfattat att bästa sättet är att öppna/hämta anslutningen från poolen, köra frågan och lämna tillbaka anslutningen varje gång? Ska jag göra på samma sätt om frågan skulle köras varje sekund istället? Är det för övrigt någon som har tips på tutorials eller liknande för att läsa från/skriva till befintliga databaser från Java (eller C#). De tutorials jag har hittat hittills har tagit allt från början och försökt förklara vad en databas är och hur sql-kommandon används. Det blir lite tröttsamt... |
||
Svara med citat |
2007-03-22, 09:52 | #7 | ||
|
|||
Nykomling
|
Citat:
Varför blir det rörigt om man klickar på bakåtknappen? Kan du inte designa det hela så att det inte blir rörigt? |
||
Svara med citat |
2007-03-23, 19:15 | #8 | ||
|
|||
Medlem
|
Citat:
Min tanke var att implementeringen av detta skulle vara enklare för mig som utvecklare om jag slapp allt vad hemsidor heter (sessionsvariabler, html-formulär, POST, och annat jobbigt) och kunde skriva det som ett "vanligt" program. Dock skulle jag fortfarande behöva ha åtkomst till MySQL-databasen på webhotellet. Detta program skulle användas hos kunden på <10 datorer, och portabilitet är inget som behöver tas särskild hänsyn till i detta specifika fall. |
||
Svara med citat |
2007-03-23, 20:22 | #9 | ||
|
|||
Nykomling
|
Citat:
|
||
Svara med citat |
Svara |
|
|