Avatar billede hrc Mester
08. februar 2007 - 12:48 Der er 7 kommentarer og
2 løsninger

Trigge service på server

Jeg ved ikke hvilke ord jeg skal søge efter ude på nettet så jeg spørger direkte her:

Jeg har en applikation hvor der skal gemmes billeder. I stedet for at fylde dem ind i et image-felt vil jeg have billederne liggende som filer i en katalogstruktur.

I databasen gemmes filens navn, samt det MD5-navn det har fået.

Når min applikation skal se billedet vil jeg kalde en Stored Procedure der trigger en service (program/service) på serveren der finder filen, indsætter den i en billedecache og returnerer nøglen til recorden til SP'en, som sender den eller billedet (kan man have en output variabel af typen image?) videre til klient-programmet.

Kan man det?

  - Via stored procedure kalde et program på serveren
  - Returnere image i en stored procedure
Avatar billede hrc Mester
08. februar 2007 - 12:50 #1
N.B. Billederne er naturligvis på/synlig fra serveren.

Tanken med det hele er at al kommunikation går gennem database-forbindelsen. Der skal ikke åbnes for adgang til kataloger, hvilket ville grille muligheden for at lave en web-applikation.
Avatar billede arne_v Ekspert
08. februar 2007 - 17:01 #2
i SQLServer 2005 kan du lave en SP i C# eller et andet .NET sprog

saa du kan godt lade en SP finde billedet og via f.eks. remoting indsaette
det i en cache i applikationens process

men jeg ville da mene at det var baade nemmere, paenere og hurtigere bare
at returnere billedet fra SP og lade app indsaette i cache
Avatar billede segato Nybegynder
09. februar 2007 - 08:38 #3
Søg på ordet SqlDependency i google så får du dit svar. Det er en klasse man bruger til at lave triggers helt ud i applikationer via 2005 notifikations lag.
Avatar billede hrc Mester
09. februar 2007 - 09:16 #4
OK, I nævner 2005'eren og .NET; det kan jeg godt kapere. En lille detalje som jeg helt glemte at fortælle om er: Hvad nu hvis jeg udvikler på en 2000? Jeg tror nok kunderne er med på en 2005'er, men så længe de ikke har spyttet penge i projektet er det uvist.

En alternativ løsning er at have et program kiggende i en request-tabel 2-3 gange i sekundet, men den slags er ikke vidre elegant og vil måske give ventetider hvis den ikke skal belaste databasen med polls.
Avatar billede segato Nybegynder
09. februar 2007 - 10:06 #5
Problemmet er at det kun er 2005 som har en service broker, som blandt andet giver dig mulighed for at sende notificationer ud, via message queing. Hvis du er på ældre versioner skal du som du selv siger, lave en lille service der poller databasen. Der findes desværre ikke andre muligheder. Du skal dog være opmærksom på at på en 2005 skal du ikke abonnere på alt for mange events, da den hurtig bliver trykket i bund. Så hvis du har mange brugere der skal fange et event, skal du igen lave en service der abbonere på eventet og fører eventet videre til de andre abonnenter. Men service brokeren er genial til f.eks. caching.
Avatar billede hrc Mester
09. februar 2007 - 11:35 #6
Jeg laver en polle-dreng; så er den bagud kompatibel. Tak for input begge to. Jeg fik nogle gode søgeord, samt noget konkret. Læg et svar.
Avatar billede segato Nybegynder
09. februar 2007 - 14:35 #7
Held og lykke med det.
Avatar billede hrc Mester
10. februar 2007 - 08:52 #8
Jeg vil også gerne give Ekspertens svar på Bill Gates et par points.
Avatar billede arne_v Ekspert
10. februar 2007 - 22:03 #9
:-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester