Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
2.1 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (C) Microsoft Corporation, 1995 - 1997.
  5. //
  6. // File: SeqExec.hxx
  7. //
  8. // Contents: Sequential Query execution class
  9. //
  10. // Classes: CQSeqExecute
  11. //
  12. // History: 22-Jan-95 DwightKr Created
  13. //
  14. //----------------------------------------------------------------------------
  15. #pragma once
  16. #include <tblalloc.hxx>
  17. #include <gencur.hxx>
  18. //+---------------------------------------------------------------------------
  19. //
  20. // Class: CQSeqExecute
  21. //
  22. // Purpose: Executes a single query
  23. //
  24. // Interface:
  25. //
  26. // History: 21-Jan-95 DwightKr Created.
  27. //
  28. // Notes: The CQSeqExecute class is responsible for fully processing
  29. // a single sequential query.
  30. //
  31. //----------------------------------------------------------------------------
  32. class CQSeqExecute
  33. {
  34. public:
  35. CQSeqExecute( XQueryOptimizer & qopt );
  36. SCODE GetRows( CTableColumnSet const & OutColumns,
  37. unsigned & cRowsToSkip,
  38. CGetRowsParams & GetParams );
  39. DWORD Status()
  40. {
  41. return _status;
  42. }
  43. BOOL FetchDeferredValue( WORKID wid,
  44. CFullPropSpec const & ps,
  45. PROPVARIANT & var );
  46. protected:
  47. CQSeqExecute( CTimeLimit & TimeLim );
  48. SCODE GetRowInfo( CTableColumnSet const & OutColumns,
  49. CGetRowsParams & GetParams,
  50. BYTE * pRowDataBuf );
  51. BOOL CheckExecutionTime( void );
  52. ULONG _status;
  53. BOOL _fCursorOnNewObject;
  54. // this is an array of LONGLONGs to force 8-byte alignment
  55. LONGLONG _abValueBuf[ cbMaxNonDeferredValueSize / sizeof LONGLONG ];
  56. XGenericCursor _objs;
  57. BOOL _fAbort; // Set to true if query is to be aborted
  58. CTimeLimit _TimeLimit; // Execution time limit
  59. ULONG _cRowsToReturnMax; // Result set size limit
  60. XQueryOptimizer _xOpt; // Query optimizer
  61. };