Avatar billede teepee Nybegynder
10. november 2004 - 16:57 Der er 10 kommentarer og
1 løsning

Hente data fra webside ned i T-SQL variabel

Kan det lade sig gøre?
Avatar billede teepee Nybegynder
10. november 2004 - 17:01 #1
Direkte fra en stored procedure... ikke noget med at hente det ned i en asp side og parse det som en parameter, tak.
Avatar billede ldanielsen Nybegynder
11. november 2004 - 22:15 #2
Altså der er en webside, hvor brugeren skriver "Knud" i et felt og klikker på en knap. Og du vil have teksten "Knud" ned i databasen, eller hvad.

Det er vel hvad 75% af spørgsmålene i ASP og MSSQL kategorierne handler om, hvad er det du vil som er anderledes end det man plejer at gøre?

Du vil have data ned i en T-SQL variabel. Hvor skal den forefindes? Det må jo være i et miljø hvor T-SQL afvikles.

Direkte fra en stored procedure. Du tænker måske at sp-en skal kalde en aspside, og hente noget derfra ind i et T-SQL script. Det kræver at din sp kan "tale http" som jo er den protokol man kalder en asp-side med. Det er den eneste måde at lokke webserveren til at afvikle koden i asp-siden.

Måske skulle du skitsere et senario, så vi kan se hvordan det løses.

Det du åbenbart vil kan i hvert fald lade sig gøre med DTS. Fra det miljø kan du via en ActiveX-teknologi generere et http-kald og behandle resultatet i T-SQL
Avatar billede teepee Nybegynder
12. november 2004 - 10:37 #3
Teknisk set kalder jeg en webside www.forsjov.dk/tester.asp
Siden giver svaret:
<html>.......</html>
Dette svar med tags og hele molevitten skal stå i min variabel, idet at den indeholder noget xml jeg skal behandle videre.
Avatar billede ldanielsen Nybegynder
12. november 2004 - 11:14 #4
ok, kan du leve med at det foregår i en DTS-Package?

Så kan jeg lave det med en ActiveX Task skrevet i VBScript. Jeg vil benytte COM Objectet WinHttp.
Avatar billede teepee Nybegynder
12. november 2004 - 11:22 #5
Jeg fandt nogle steder på webben, hvor denne winhttp blev nævnt. Også noget med sp_oa* procs, men jeg må indrømme jeg er helt blank. Bare det virker ;-)
hvis det virker så siger du bare hvor mange point det er værd for det lyder som en større opagve.
Avatar billede ldanielsen Nybegynder
12. november 2004 - 11:56 #6
Næ egentlig ikke, især hvis du kender DTS i forvejen (og vi snakker om MSSQL 2000)

Åbn EM

Lav en ny Package

Højreklik > Package Properties > global variables

Lav en Global variabel og kald den strAspResult

Lav en ActiveX Task

Åbn den og vælg VBScript som sprog

Indsæt dette script

Function Main()
  Dim strUrl
  strUrl = "www.forsjov.dk/tester.asp"
  Set objHttp = CreateObject("WinHttp.WinHttpRequest.5.1")
  objWinHttp.Open "GET", strUrl, False
  objWinHttp.Send
  DTSGlobalVariables("strAspResult").Value = objWinHttp.ResponseText
  Set objWinHttp = Nothing
  Main = DTSTaskExecResult_Success
End Function

Så ligger teksten i den globale variabel
Avatar billede ldanielsen Nybegynder
12. november 2004 - 12:02 #7
Så laver du en Connection og en SQL Task der benytter den Connection. Nu ved jeg ikke hvad du vil, men lad os sige at du vil læse det ind i et felt i en tabel så skriv:

UPDATE myTable SET strText = ? WHERE myTableID = 1

Nu haqr du lavet en placeholder (?'et), og skal fortælle hvad for et parameter der skal indsættes.

Klik på "Parameters ..."
Vælg strAspResult i popup'en til venstre for Parameter 1

Så mangeler du bare at angive workflow; at SQL-tasken skal afvikles efter at ActiveX'en er afviklet med Success
Avatar billede teepee Nybegynder
12. november 2004 - 12:29 #8
wauw, super. jeg tester i weekenden, tusind tak
Avatar billede ldanielsen Nybegynder
12. november 2004 - 12:36 #9
Selvtak.
Avatar billede teepee Nybegynder
17. februar 2005 - 16:16 #10
ldanielsen => lægger du lige et svar, så vi kan lukke spørgsmålet...
Avatar billede ldanielsen Nybegynder
18. februar 2005 - 06:52 #11
Svar
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