Jag har en webservice som mer än 120 butiker regelbundet hämtar information från. Menar du att du får alla poster 2 gånger? I sådana fall fall har du troligtvis dubletter i någon tabell du joinar med i frågan. Om man ska tro "Profilern" får jag 2 uppsättningar av informationen för varje post (se exempel) Jag har ingen större erfarenhet av profilern, så jag vet inte riktigt hur man tolkar det... Hur ser frågan i din SP ut? Om du kör frågan i något verktyg (QA t.ex), hur blir resultatet då? Proceduren: Mysko, då har jag tyvärr ingen aning...Webservice Returnerar för mycket information
Den returnerar ett Dataset och det fungerar klockrent förutom hos 2 butiker
där jag får 2 uppsättningar av information per rad.
Felmeddelandet blir då:
"Procedure or function UpsKeyMOVIEDATA has too many arguments specified"
Jag kör Profiler för att se vad som händer och får som ett exempel följande information.
exec UpsKeyMOVIEDATA
@MOVIEID = 42596,
@TITLE = 'Madame Sans-Gene',
@ORIGINALTITLE = 'Madame Sans-Gêne',
@COUNTRY = 'USA',
@ACTORS = 'Charles De Roche,Emile Drain',
@PRODUCER = '',
@WRITER = 'Forrest Halsey',
@DIRECTOR = 'Léonce Perret',
@MINUTES = 110,
@CATEGORY = 'Drama',
@CINEMA = 'Oct 5 1925 12:00AM',
@SUMMARY = '',
@IMAGE = 36431,
@LOCKED = 0,
@MODIFIED = 'Sep 18 2008 12:00AM',
@MOVIEID = 42596,
@TITLE = 'Madame Sans-Gene',
@ORIGINALTITLE = 'Madame Sans-Gêne',
@COUNTRY = 'USA',
@ACTORS = 'Charles De Roche,Emile Drain',
@PRODUCER = '',
@WRITER = 'Forrest Halsey',
@DIRECTOR = 'Léonce Perret',
@MINUTES = 110,
@CATEGORY = 'Drama',
@CINEMA = 'Oct 5 1925 12:00AM',
@SUMMARY = '',
@IMAGE = 36431,
@LOCKED = 0,
@MODIFIED = 'Sep 18 2008 12:00AM'
Kod som hämtar data från webservicen
Try
ds = ws.GetMoviedata(id, pw, datum)
If Not ds Is Nothing Then
For Each wsRow In ds.Tables("MovieData").Rows
Try
ExecuteNonQueryTypedParams(strConnection, "UpsKeyMOVIEDATA", wsRow)
Catch ex As Exception
Fellogg("MOVIEDATA UpsKeyMoviedata", ex.Message.ToString)
End Try
Next
End If
Catch ex As Exception
Fellogg("MOVIEDATA (3)", ex.Message.ToString)
End Try
Webservicen...........
<WebMethod()> _
Public Function GetMoviedata(ByVal uid As String, ByVal pw As String, ByVal datum As String) As DataSet
Dim ds As DataSet, strConn As String
strConn = "Initial Catalog=DATA1;Data Source=(local);User ID=myid;Password=mypw;"
ds = New DataSet
Try
Dim name() As String = {"MovieData"}
Dim par As New SqlParameter("@Value", SqlDbType.SmallDateTime)
par.Value = datum
FillDataset(strConn, CommandType.StoredProcedure, "GetMovieData", ds, name, par)
Catch ex As Exception
End Try
Return ds
End Function
Någon ide varför?
Sv: Webservice Returnerar för mycket information
/JohanSv:Webservice Returnerar för mycket information
Jag joinar inte mot någon annan tabell.
exec UpsKeyMOVIEDATA
@MOVIEID = 42596,
@TITLE = 'Madame Sans-Gene',
@ORIGINALTITLE = 'Madame Sans-Gêne',
@COUNTRY = 'USA',
@ACTORS = 'Charles De Roche,Emile Drain',
@PRODUCER = '',
@WRITER = 'Forrest Halsey',
@DIRECTOR = 'Léonce Perret',
@MINUTES = 110,
@CATEGORY = 'Drama',
@CINEMA = 'Oct 5 1925 12:00AM',
@SUMMARY = '',
@IMAGE = 36431,
@LOCKED = 0,
@MODIFIED = 'Sep 18 2008 12:00AM',
@MOVIEID = 42596,
@TITLE = 'Madame Sans-Gene',
@ORIGINALTITLE = 'Madame Sans-Gêne',
@COUNTRY = 'USA',
@ACTORS = 'Charles De Roche,Emile Drain',
@PRODUCER = '',
@WRITER = 'Forrest Halsey',
@DIRECTOR = 'Léonce Perret',
@MINUTES = 110,
@CATEGORY = 'Drama',
@CINEMA = 'Oct 5 1925 12:00AM',
@SUMMARY = '',
@IMAGE = 36431,
@LOCKED = 0,
@MODIFIED = 'Sep 18 2008 12:00AM'
Sv: Webservice Returnerar för mycket information
/JohanSv:Webservice Returnerar för mycket information
CREATE PROCEDURE GetMovieData
@Value smalldatetime = NULL
AS
IF DATEDIFF(day, @Value, getdate())>0
BEGIN
DECLARE @FIND_DATE smalldatetime
SELECT @FIND_DATE=MIN(MODIFIED) FROM MOVIEDATA WHERE MODIFIED >=@Value
IF @FIND_DATE IS NULL
BEGIN
SELECT @FIND_DATE=MAX(MODIFIED) FROM MOVIEDATA WHERE MODIFIED <=@Value
END
SELECT MOVIEID, TITLE, ORIGINALTITLE, COUNTRY, ACTORS, PRODUCER, WRITER, DIRECTOR, MINUTES,
CATEGORY, SUMMARY, CINEMA, [IMAGE], LOCKED, MODIFIED
FROM MOVIEDATA WHERE MODIFIED=@FIND_DATE
ORDER BY MOVIEID
END
Om jag kör SP:n i QA får jag rätt information.
Sv: Webservice Returnerar för mycket information
/Johan