📄 fetchcursors.pas
字号:
unit FetchCursors;
interface
uses
{$IFDEF LINUX}
SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs, QStdCtrls,
QDBCtrls, QComCtrls, QExtCtrls, QGrids, QDBGrids, QButtons, OdacClx,
{$ELSE}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBCtrls, ExtCtrls, Grids, DBGrids, StdCtrls, ToolWin, ComCtrls, Buttons,
OdacVcl,
{$ENDIF}
{$IFDEF FPC}
LResources,
{$ENDIF}
DB, {$IFNDEF FPC}MemDS{$ELSE}MemDataSet{$ENDIF},
DBAccess, Ora, OdacDemoFrame, OdacDemoForm;
type
TFetchCursorsFrame = class(TOdacDemoFrame)
Query: TOraQuery;
DBGrid: TDBGrid;
DataSource: TDataSource;
ToolBar: TPanel;
Splitter1: TSplitter;
ToolBar1: TPanel;
DBGrid1: TDBGrid;
OraQuery1: TOraQuery;
DataSource1: TDataSource;
QueryDEPTNO: TIntegerField;
QueryDNAME: TStringField;
QueryLOC: TStringField;
QueryEMPS: TCursorField;
OraSQL: TOraSQL;
Panel1: TPanel;
Panel2: TPanel;
btOpen: TSpeedButton;
btClose: TSpeedButton;
DBNavigator: TDBNavigator;
DBNavigator1: TDBNavigator;
btClose1: TSpeedButton;
brGetCursor: TSpeedButton;
btRefresh: TSpeedButton;
procedure btOpenClick(Sender: TObject);
procedure btCloseClick(Sender: TObject);
procedure brGetCursorClick(Sender: TObject);
procedure btClose1Click(Sender: TObject);
procedure DBGridDrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
procedure btRefreshClick(Sender: TObject);
private
{ Private declarations }
public
procedure Initialize; override;
procedure SetDebug(Value: boolean); override;
end;
implementation
uses
OraError;
{$IFNDEF FPC}
{$IFDEF CLR}
{$R *.nfm}
{$ENDIF}
{$IFDEF WIN32}
{$R *.dfm}
{$ENDIF}
{$IFDEF LINUX}
{$R *.xfm}
{$ENDIF}
{$ENDIF}
procedure TFetchCursorsFrame.btOpenClick(Sender: TObject);
begin
Query.Open;
end;
procedure TFetchCursorsFrame.btCloseClick(Sender: TObject);
begin
Query.Close;
end;
procedure TFetchCursorsFrame.btRefreshClick(Sender: TObject);
begin
Query.Refresh;
end;
procedure TFetchCursorsFrame.brGetCursorClick(Sender: TObject);
begin
OraQuery1.Cursor:=
TCursorField(Query.FieldByName('Emps')).AsCursor;
OraQuery1.Open;
DBGrid.Repaint;
end;
procedure TFetchCursorsFrame.btClose1Click(Sender: TObject);
begin
OraQuery1.Close;
DBGrid.Repaint;
end;
procedure TFetchCursorsFrame.DBGridDrawDataCell(Sender: TObject; const Rect: TRect;
Field: TField; State: TGridDrawState);
begin
{$IFNDEF FPC}
if (Field is TCursorField) and (TCursorField(Field).AsCursor <> nil) and
not TCursorField(Field).AsCursor.CanFetch
then
TDBGrid(Sender).Canvas.Brush.Color:= clRed;
TDBGrid(Sender).DefaultDrawDataCell(Rect, Field, State);
{$ENDIF}
end;
procedure TFetchCursorsFrame.Initialize;
begin
inherited;
Query.Connection := Connection;
OraSQL.Connection := Connection;
OraQuery1.Connection := Connection;
end;
procedure TFetchCursorsFrame.SetDebug(Value: boolean);
begin
Query.Debug := Value;
OraSQL.Debug := Value;
OraQuery1.Debug := Value;
end;
initialization
{$IFDEF FPC}
{$I FetchCursors.lrs}
{$ENDIF}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -