Witam,


mam napisana procedure w MSSQL 2008. Chce wywołać ją z poziomu php. Serwer php nie zgłasza żadnego błędu, ale danych nie moge wyświetlić. Zmienna $row jest pusta. Czy procedure należy zmienić, aby mogła wysyłać dane do php? Czy należy z php inaczej odwołać się do danych?



  1. --procedura
  2.  
  3. ALTER PROCEDURE [dbo].[REP_UsersProductivity] @DTFrom datetime,@DTTo datetime
  4. AS
  5.  
  6.  
  7. CREATE TABLE #REP_Picking (UserName VARCHAR(254), SUCount INT, LinesCount INT, AVGWorkSUTime char(8), AVGWorkLineTime char(8))
  8. CREATE TABLE #REP_Decompose (UserName VARCHAR(254), SUCount INT, LinesCount INT, AVGWorkSUTime char(8), AVGWorkLineTime char(8))
  9. CREATE TABLE #REP_KWT (UserName VARCHAR(254), SUCount INT, LinesCount INT, AVGWorkSUTime char(8), AVGWorkLineTime char(8))
  10. CREATE TABLE #REP_KOW (UserName VARCHAR(254), SUCount INT, LinesCount INT, AVGWorkSUTime char(8), AVGWorkLineTime char(8))
  11.  
  12. INSERT INTO #REP_Picking
  13. SELECT UserName,count(DISTINCT SUNr) AS SUCount,sum(LinesCount) LinesCount,
  14. convert(char(8),dateadd(millisecond,(sum(datediff(millisecond,0,WorkTime))/cast(count(DISTINCT SUNr)AS decimal(15,2))),'00:00:00'), 108) AS AVGWorkSUTime,
  15. convert(char(8),dateadd(millisecond,(sum(datediff(millisecond,0,WorkTime))/cast(sum(LinesCount) AS decimal(15,2))),'00:00:00'), 108) AS AVGWorkLineTime
  16. FROM arch.REP_Picking
  17. WHERE EndDT>=@DTFrom AND EndDT<@DTTo+1
  18. GROUP BY UserName
  19. ORDER BY UserName
  20. .
  21. .
  22. .
  23. .
  24. SELECT u.UserName, p.SUCount PickingSUCount, p.LinesCount PickingLinesCount, p.AVGWorkSUTime PickingAVGWorkSUTime, p.AVGWorkLineTime PickingAVGWorkLineTime,
  25. d.SUCount DecomposeSUCount, d.LinesCount DecomposeLinesCount, d.AVGWorkSUTime DecomposeAVGWorkSUTime, d.AVGWorkLineTime DecomposeAVGWorkLineTime,
  26. k.SUCount KWTSUCount, k.LinesCount KWTLinesCount, k.AVGWorkSUTime KWTAVGWorkSUTime, k.AVGWorkLineTime KWTAVGWorkLineTime,
  27. kw.SUCount KOWSUCount, kw.LinesCount KOWLinesCount, kw.AVGWorkSUTime KOWAVGWorkSUTime, kw.AVGWorkLineTime KOWAVGWorkLineTime
  28. FROM (SELECT UserName FROM #REP_Picking
  29. UNION SELECT UserName FROM #REP_Decompose
  30. UNION SELECT UserName FROM #REP_KWT
  31. UNION SELECT UserName FROM #REP_KOW
  32. ) u
  33. LEFT JOIN #REP_Picking p ON p.UserName = u.UserName
  34. LEFT JOIN #REP_Decompose d ON d.UserName = u.UserName
  35. LEFT JOIN #REP_KWT k ON k.UserName = u.UserName
  36. LEFT JOIN #REP_KOW kw ON kw.UserName = u.UserName
  37.  
  38. DROP TABLE #REP_Picking
  39. DROP TABLE #REP_Decompose
  40. DROP TABLE #REP_KWT
  41. DROP TABLE #REP_KOW
  42.  
  43.  


  1.  
  2. $DTFrom = '2011-01-01';
  3. $DTTo = '2011-01-31';
  4.  
  5. $proc = mssql_init('dbo.REP_UsersProductivity',$link);
  6.  
  7. mssql_bind($proc,'@DTFrom',$DTFrom,SQLINT4) or die("Unable to bind $DTFrom<br>".mssql_get_last_message());
  8.  
  9. mssql_bind($proc,'@DTTo',$DTTo,SQLINT4) or die("Unable to bind $DTTo<br>".mssql_get_last_message());
  10.  
  11. if ($result = mssql_execute($proc)) {
  12.  
  13. if ($row = mssql_fetch_assoc($result)) {
  14.  
  15. echo $row[username];
  16.  
  17. }
  18. }
  19.  



Temat nie aktualny. Źle odwoływalem sie do danych