home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 February / Chip_2000-02_cd.bin / zkuste / Delphi / navody / tt / objvm.exe / SAMPLE / LangQueryU.pas < prev    next >
Pascal/Delphi Source File  |  1998-06-23  |  4KB  |  144 lines

  1. unit LangQueryU;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   LangValue, VisualValue, ClassValue, ValueUtils,  LangProc,DB,DBTables;
  8.  
  9. type
  10.   TLangQuery = class(TDataModule)
  11.     QueryClass: TClassValue;
  12.     CreateProc: TLangProc;
  13.     DatabaseName: TLangProc;
  14.     SQL: TLangProc;
  15.     OpenProc: TLangProc;
  16.     CloseProc: TLangProc;
  17.     FirstProc: TLangProc;
  18.     NextProc: TLangProc;
  19.     EOFP: TLangProc;
  20.     GetValueP: TLangProc;
  21.     procedure CreateProcExec(Sender: TVisualValue; S: IValStack;
  22.       MustReturn: Boolean);
  23.     procedure DatabaseNameExec(Sender: TVisualValue; S: IValStack;
  24.       MustReturn: Boolean);
  25.     procedure SQLExec(Sender: TVisualValue; S: IValStack;
  26.       MustReturn: Boolean);
  27.     procedure OpenProcExec(Sender: TVisualValue; S: IValStack;
  28.       MustReturn: Boolean);
  29.     procedure CloseProcExec(Sender: TVisualValue; S: IValStack;
  30.       MustReturn: Boolean);
  31.     procedure FirstProcExec(Sender: TVisualValue; S: IValStack;
  32.       MustReturn: Boolean);
  33.     procedure NextProcExec(Sender: TVisualValue; S: IValStack;
  34.       MustReturn: Boolean);
  35.     procedure EOFPExec(Sender: TVisualValue; S: IValStack;
  36.       MustReturn: Boolean);
  37.     procedure GetValuePExec(Sender: TVisualValue; S: IValStack;
  38.       MustReturn: Boolean);
  39.   private
  40.     { Private declarations }
  41.   public
  42.     { Public declarations }
  43.   end;
  44.  
  45. var
  46.   LangQuery: TLangQuery;
  47.  
  48. implementation
  49.  
  50. uses uRunTime;
  51.  
  52. {$R *.DFM}
  53.  
  54. procedure TLangQuery.CreateProcExec(Sender: TVisualValue; S: IValStack;
  55.   MustReturn: Boolean);
  56. begin
  57.   SetObjectOf(Sender,TQuery.Create(nil));
  58. //  MessageDlg(S.FrameValues[0].AsSTring,mtInformation,[mbOk],0);
  59.   S.DropFrame;
  60.   ReturnTrue(S,MustReturn);
  61. end;
  62.  
  63. procedure TLangQuery.DatabaseNameExec(Sender: TVisualValue; S: IValStack;
  64.   MustReturn: Boolean);
  65. begin
  66.   if S.FrameCount>0 then
  67.   begin
  68.     (GetObjectOf(Sender) as TQuery).DatabaseName:=S.FrameValues[0].AsString;
  69.   end;
  70.   S.DropFrame;
  71.   ReturnString(S,MustReturn,(GetObjectOf(Sender) as TQuery).DatabaseName);
  72. end;
  73.  
  74. procedure TLangQuery.SQLExec(Sender: TVisualValue; S: IValStack;
  75.   MustReturn: Boolean);
  76. begin
  77.   if S.FrameCount>0 then
  78.   begin
  79.     (GetObjectOf(Sender) as TQuery).SQL.Text:=S.FrameValues[0].AsString;
  80.   end;
  81.   S.DropFrame;
  82.   ReturnString(S,MustReturn,(GetObjectOf(Sender) as TQuery).SQL.Text);
  83. end;
  84.  
  85. procedure TLangQuery.OpenProcExec(Sender: TVisualValue; S: IValStack;
  86.   MustReturn: Boolean);
  87. begin
  88.   S.DropFrame;
  89.   (GetObjectOf(Sender) as TQuery).Open;
  90.   ReturnTrue(S,MustReturn);
  91. end;
  92.  
  93. procedure TLangQuery.CloseProcExec(Sender: TVisualValue; S: IValStack;
  94.   MustReturn: Boolean);
  95. begin
  96.   S.DropFrame;
  97.   (GetObjectOf(Sender) as TQuery).Open;
  98.   ReturnTrue(S,MustReturn);
  99. end;
  100.  
  101. procedure TLangQuery.FirstProcExec(Sender: TVisualValue; S: IValStack;
  102.   MustReturn: Boolean);
  103. begin
  104.   S.DropFrame;
  105.   (GetObjectOf(Sender) as TQuery).First;
  106.   ReturnTrue(S,MustReturn);
  107. end;
  108.  
  109. procedure TLangQuery.NextProcExec(Sender: TVisualValue; S: IValStack;
  110.   MustReturn: Boolean);
  111. begin
  112.   S.DropFrame;
  113.   (GetObjectOf(Sender) as TQuery).Next;
  114.   ReturnTrue(S,MustReturn);
  115. end;
  116.  
  117. procedure TLangQuery.EOFPExec(Sender: TVisualValue; S: IValStack;
  118.   MustReturn: Boolean);
  119. begin
  120.   S.DropFrame;
  121.   ReturnBool(S,MustReturn,(GetObjectOf(Sender) as TQuery).EOF);
  122. end;
  123.  
  124. procedure TLangQuery.GetValuePExec(Sender: TVisualValue; S: IValStack;
  125.   MustReturn: Boolean);
  126. Var  v:Variant;
  127. begin
  128.   if S.FrameCount>0 then
  129.   begin
  130.     v:=(GetObjectOf(Sender) as TQuery)
  131.         .FieldByName(S.FrameValues[0].AsString).
  132.         AsVariant;
  133.     s.DropFrame;    
  134.     ReturnVar(S,MustReturn,v);
  135.   end
  136.   else
  137.   begin
  138.     s.DropFrame;
  139.     ReturnTrue(S,MustReturn);
  140.   end;
  141. end;
  142.  
  143. end.
  144.