Gå til innhold

MSSQL trigger ping webadresse [Løst]


Anbefalte innlegg

Er det noen mulighet i MSSQL for at jeg kan ha en trigger på f.eks. INSERT som gjør en request/ping mot f.eks. http://www.domene.com/generate.aspx?URL=[sist innsatte url i tabellen] ?

 

Jeg skal bruke dette til å generere forskjellige filer når det legges inn en url til et fil i en tabell. Har ikke mulighet til å gjøre dette i applikasjonen dessverre.

Endret av hpfarstad
Lenke til kommentar
Videoannonse
Annonse
Er det noen mulighet i MSSQL for at jeg kan ha en trigger på f.eks. INSERT som gjør en request/ping mot f.eks. http://www.domene.com/generate.aspx?URL=[sist innsatte url i tabellen] ?

 

Jeg skal bruke dette til å generere forskjellige filer når det legges inn en url til et fil i en tabell. Har ikke mulighet til å gjøre dette i applikasjonen dessverre.

7243136[/snapback]

Dette er ikke noe problem i SQL Server 2005 i hvert fall, det du i så fall lager er en trigger i .NET. Velg New Database Project i Visual Studio 2005, og legg så til en trigger. Her har du de fleste muligheter åpne. Merk: Du må slå på støtten for .NET kode i SQL Server 2005, og det assemblyet du lager må minst ha tilgangsnivå EXTERNAL_ACCESS for å få til det du ønsker.

Lenke til kommentar

Vet ikke helt om jeg forsto dette.

 

Jeg har nå prøvd en guide jeg fant i et annet forum, og har prøvd på et hendelsesforløp ala dette:

 

DECLARE @url varchar(300)  
DECLARE @win int 
DECLARE @hr  int 
SET @url = 'http://www.domene.com/test.html'


EXEC @hr=sp_OACreate 'WinHttp.WinHttpRequest.5',@win OUT 
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win EXEC @hr=sp_OAMethod @win, 'Open',NULL,'GET',@url,'false'
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win EXEC @hr=sp_OAMethod @win,'Send'
IF @hr <> 0 EXEC sp_OAGetErrorInfo @win

 

Dessverre får jeg feilmeldinger på samtlige exec commands. Skjønner egentlig ikke helt hva jeg driver med, men ser på flere forum at noe lignende dette anbefales.

 

Første feilmelding jeg får er ihvertfall Invalid Class Name, som jeg regner med betyr at den ikke finner WinHttp.WinHttpRequest

Lenke til kommentar

Oh, nå gikk det opp et lys for meg. Klassen WinHttp.WinHttpRequest.5 er gammel. Den nye skal være WinHttp.WinHttpRequest.5.1!

 

Dermed fungerer ovenforstående kode.

 

I tillegg, for å få lov til å kjøre dette, må man konfigurere MSSQL til å godta Ole Automation Procedure slik:

 

EXEC sp_configure 'Ole Automation Procedures', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE

 

 

Da gjenstår det bare å hente sist innsatte rad og legge til dette i queryen. Regner med jeg skal få til det.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...