none
Aggiornare Database su SQL Server 2012 tramite Web Services RRS feed

  • Domanda

  • Ciao a tutti,

    sono nuovo del Forum, mi chiamo Francesco.

    Ho creato un applicazione tramite ASP.NET Visual Basic e dietro gira un DataBase su SQL Server 2012.

    Ho la necessità che quando parte l'applicazione una Tabella del DB venga completamente cancellata e riempita nuovamente con i dati che posso reperire su un web services che ho a disposizione.

    Il problema numero uno è che eseguendo questa operazione all'avvio dell'applicazione devo tenere ferma una persona per 3 minuti, al momento la tabella contiene solo un 2000 record e la sua crescita sarà esponenziale.

    Avevo pensato quindi di far eseguire l'aggiornamento automaticamente di notte passando direttamente per SQL Server utilizzando TSQL per collegarmi direttamente al Web Services eliminare il contenuto esistente nella tabella e riempirlo con le informazioni aggiornate.

    Sono riuscito a connettermi al Web Services tramite questo codice in SQL Server 2012:

    create procedure [dbo].[WebServices]
    @parametro varchar (12) = NULL

    AS

        DECLARE @obj INT
        DECLARE @Url VarChar(200)
        DECLARE @response VarChar(8000)
        declare @resultCode int

        SET @Url = 'http://...' + @parametro + ''
        exec sp_OACreate 'MSXML2.ServerXMLHttp', @obj OUT
        exec sp_OAMethod @obj, 'Open', NULL, 'GET', @Url, false
        exec sp_OAMethod @obj, 'send'
        exec sp_OAGetProperty @obj, 'responseText', @response OUT

        Select @response [response]
        exec sp_OADestroy @obj

    RETURN

        exec WebServicesNDG '@parametro'

    sostituendo ad @Url il valore esatto e all'ulimo @parametro il parametro esatto si connette ma il Web Services mi rimanda un Runtime Error non specificato.

    Da cosa può dipendere? Dove sbaglio? Ci tengo a precisare che sono novizio di TSQL e sono ben accette soluzioni migliori anche sotto Visual Studio (io mi sono chiuso in un vicolo cieco e non trovo altre vie di uscita).

    Ringrazio anticipatamente,

    Francesco

    giovedì 2 luglio 2015 15:51

Risposte

  • hai provato a sottoscrivere il webservice da una webapp in Visual Studio, scrivere il codice di invocazione del webservicee verificare il risultato o l'eventuale errore restituito ?

    perchè potresti ottenere un errore comprensibile ma anche un errore incomprensibile se il webservice non è stato sviluppato per poter intercettare e gestire l'errore scatenato dalla tua chiamata.


    Edoardo Benussi
    Microsoft MVP - Directory Services
    edo[at]mvps[dot]org

    lunedì 6 luglio 2015 09:14
    Moderatore