Det er ikke noget jeg har nogen personlig erfaring med, men i følge hvad jeg har læst så kan det sagtens lade sig gøre uden nogen som helst problemer. Dog skal du være klar over (hvis du bruger BDE'en) har hver tråd skal have sin egen TSession (normalt behøver du ikke explicit at lave en sådan da Borland/Delphi automatisk gør dette for dig, men dette skal du som sagt gøre hvis du ønsker at en separat tråd får adgang til DBen).
Jeg vil ikke gør mig til talsmand for hvorvidt det er smart eller ej, men faktum er (når vi taler BDE) så skal hver tråd have sin egen TSession og TDatabase (og skal således hverisær "connecte" til databasen). Hvis du havde anvendt Interbase (via IBX) skulle hver tråd have sin TIBDatabase.
Jeg har ingen kendskab til MySql, men kan ikke forestille mig at denne er anderledes og du skal således sikkert have en TxxSesstion og eller TxxDatabase for hver tråd. Når du tænker over det er det ikke så mærkeligt da databasen (serveren) skal være i stand til at kunne skelne de enkelte tråde fra hinanden - således at tråd B ikke får svaret til en forespørgsel fra Tråd A (en rimelig forenkling af sagen men alligevel).
Nu kender jeg ikke dit program men mange gange vil du kunne lave en række tråde der connecter/disconnecter til databasen i forbindelse med program opstart også ellers forblive "i live" i hele programmets levetid (i såfald betyder "tiden" i forbindelse med connect/disconnect ingen ting).
Du kan vel bare lave en ekstra tråd, der sørger for at connecte til Databasen. Så kalder du en event i denne db-tråd fra hver af dine andre tråde og denne db-tråd tager så bare for sig af de retter den nu får serveret. Så slipper du med én db-connection og det er garanteret threadsafe!
Har nu selv fundet ud af det, det går godt når man bruger synchronize(ExecSQL) men tak for de gode råd
Pelle får pointene fordi det bliver fint vejr idag
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.