Jag har utvecklar ett program i VB som lagrar data i en accessdatabas. Ditt antagande är helt riktigt, detta är den största (enligt mig) nackdelen med fildatabaser. För att exekvera frågan på servern får du göra en serverdel till ditt program som du sedan anropar från klienten. Jag har tyvärr inga bra exempel på detta. Om det är ett alternativ är det nog minst arbete att byta till en databasserver som t.ex. SQL Server/MSDE eller MySQL. Tack! <b>Kostar mySQL pengar om använder det i ett företag?</b> Ingår inte SQL Server i SBS? I sådana fall kanske det är enklast, gissar jag att det inte spelar så stor roll vilket du väljer. SQL Server har nästan exakt samma SQL-syntax som Access, men det skiljer så lite till MySQL att det inte är svårt att lära sig. I de allra flesta fall märker man inte ens skillnaden. 40000 poster är i sammanhanget väldigt lite, så det är inga problem alls. <b>Om ni distribuerar programvara som kräver MySQL, däremot, måste ni antingen licensiera ert eget program under GPL eller betala för att få en annan licens.</b> När programmet kräver MySQL, oavsett om man skickar med det eller inte, så gäller att man måste GPL:a till sin egen programvara eller köpa en annan licens. Tycker det verkar lite konstigt att en licens till ett program (MySQL) som egentligen inte har något med mitt program att göra kan påverka min licens på något sätt. Det är givetvis en annan sak om man hade skickat med MySQL med sitt egna program, för då måste man antagligen ha accepterat MySQLs licens vid något tillfälle. Om ditt program inte har något med MySQL att göra, behöver du självklart inte följa licensen för MySQL. Men om ditt program är beroende av MySQL så finns ju ett "ha-att-göra-med-skap". Av ditt inlägg att döma verkar detta inte vara en client-server applikation. Det är visserligen möjligt. En kruxet är att programmet ska kunna användas även om man inte har åtkomst till servern. Då sparas allt lokalt på datorn och när server sen blir tillgänglig flyttas allt från den lokala databasen över till server. Men det där kanske går att lösa ändå... ska fundera på det! Kan du inte göra programmet i två delar? Program1 ligger på servern och skriver till databasen, Program2 körs på klienten och när den ska skriva till databasen så kommunicerar den istället med Program1. Låter som en bra idé! <b>Nu har jag dock fått reda på att företaget har en Microsoft SQL Server. Det borde väl lösa mina problem, eller?</b>Långsam sökning med VB och en accessdatabas på en server?!
Databasen ligger på en server och programmet är installerat på klienten.
Mitt problem är hastigheten i kommunikationen. Det tar väldigt långtid att hämta information från databasen (om den är stor) till klienten och jag tror att problemet ligger i att ALL data först hämtas till klienten, och därefter sker sökningen (mha en SQL fråga). Jag vill, och tycker att sökningen ska göras på servern, och sen skickas den utvlada datan till klienten och programmet.
Programmet är installerat på klienten, så även msadox.dll (ADO-referensen som jag använder mig av för att kunna anropa databasen).
Hur ska jag göra för att SQL-frågan ska bearbetas på servern? Har det med msadox.dll att göra?Sv: Långsam sökning med VB och en accessdatabas på en server?!
/JohanSv:Långsam sökning med VB och en accessdatabas på en server?!
Kostar mySQL pengar om använder det i ett företag?
Hur skulle jag i så fall gå tillväga? Antar att man måste installera MySQL på företagets server (en Windows Small Buissnes Server 2003), men är det bara anropa mySQL på på samma sätt? SQL som SQL eller?
Har du ngn koll på hur snabb mySQL är, jämfört med Access? Maximalt kommer det röra sig som 40000 poster, är det några problem?Sv: Långsam sökning med VB och en accessdatabas på en server?!
Nej, det är gratis att använda hela programmet under GNU GPL. Om ni distribuerar programvara som kräver MySQL, däremot, måste ni antingen licensiera ert eget program under GPL eller betala för att få en annan licens. Det kan också finnas andra anledningar att betala till MySQL, som att ni vill få support eller bara stödja utvecklingen.
MySQL måste förstås installeras på någon server (eller en arbetsstation om det bara gäller testning). När programmet är igång skall det bara vara att ansluta till den med rätt "connectionstring". SQL-syntaxen skiljer sig något från MS SQL och Access, men det är nog inga större problem.
När det gäller prestanda skall nog inte MySQL jämföras med långsamma Access, utan med MS SQL Server (eller vad den heter). På PHPportalen finns idag drygt 300000 inlägg och det klarar MySQL utan problem.Sv: Långsam sökning med VB och en accessdatabas på en server?!
/JohanSv:Långsam sökning med VB och en accessdatabas på en server?!
Det bör väl bara gälla om man skickar med MySQL med programmet? Om programmet enbart kräver MySQL (dvs förutsätter att användaren själv har installerat det) så bör det väl fortfarande vara gratis?
ThomasSv: Långsam sökning med VB och en accessdatabas på en server?!
Sv:Långsam sökning med VB och en accessdatabas på en server?!
ThomasSv: Långsam sökning med VB och en accessdatabas på en server?!
Dock skulle jag kunna tänka mig att juristerna kan vara oense om det skall räknas som ett härlett program när banden inte är hårdare.
http://www.mysql.com/company/legal/licensing/commercial-license.htmlSv: Långsam sökning med VB och en accessdatabas på en server?!
Vad är skälet till att inte även applikationen kan ligga på servern ?Sv:Långsam sökning med VB och en accessdatabas på en server?!
Sv: Långsam sökning med VB och en accessdatabas på en server?!
ThomasSv:Långsam sökning med VB och en accessdatabas på en server?!
Nu har jag dock fått reda på att företaget har en Microsoft SQL Server. Det borde väl lösa mina problem, eller? Jag har inte jobbat med den tidigare, och vet inte hur man går tillväga... Men, men... i annat fall funkar det nog med ditt förslag. Det kräver dock en installation av Office (använder Word-mallar med VBA) och vet inte hur det har med licenser...
Men tack för tipset!Sv: Långsam sökning med VB och en accessdatabas på en server?!
Japp, då kommer du ifrån prestandaproblemen!
/Johan