sql >> Database >  >> RDS >> Sqlserver

Een opgeslagen procedure asynchroon uitvoeren vanuit een Windows-formulier en vervolgens de verbinding verbreken?

Dit is eigenlijk een vrij algemeen scenario. U kunt niets client-based doen, omdat de client weg kan gaan en de verbinding verbreekt en u het tot nu toe bereikte werk verliest. De oplossing is om Service Broker Activation te gebruiken :u maakt een service aan in de database en voegt een geactiveerde procedure toe. In uw applicatie (of ASP-pagina) stuurt u een bericht naar de dienst en integreert u de nodige parameters voor uw procedure. Nadat uw toepassing is vastgelegd, activeert het bericht de serviceprocedure. de serviceprocedure leest de parameters uit het bericht en roept uw ​​procedure op. aangezien activering plaatsvindt op een serverthread die geen verband houdt met uw oorspronkelijke verbinding, is dit betrouwbaar. In feite kan de server zelfs afsluiten en herstarten terwijl uw procedure wordt uitgevoerd en het werk wordt teruggedraaid en vervolgens hervat, aangezien het activeringsbericht de serviceprocedure opnieuw activeert na de herstart.

Bijwerken

Ik heb de details over hoe dit te doen, inclusief voorbeeldcode, gepubliceerd op mijn blog:Asynchrone procedure-uitvoering .



  1. Hoe een unieke index op meerdere kolommen te definiëren in sequelize

  2. hoe te begrijpen kan mysql-foutmeldingen niet verbinden?

  3. SQLite JSON_ARRAY()

  4. Hoe kan ik een tabel van 9 GB OPTIMALISEREN als de schijf weinig vrije ruimte heeft?