📄 main.pas
字号:
unit Main;
interface
uses
{$IFNDEF LINUX}
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBCtrls, ExtCtrls, Grids, DBGrids, StdCtrls, ToolWin, ComCtrls, OdacVcl,
{$ELSE}
SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs, QStdCtrls,
QDBCtrls, QComCtrls, QExtCtrls, QGrids, QDBGrids, OdacClx,
{$ENDIF}
MemDS, DBAccess, Ora, DB, OraScript, DAScript;
type
TfmMain = class(TForm)
OraSession: TOraSession;
OraQuery: TOraQuery;
DBGrid: TDBGrid;
DataSource: TDataSource;
ConnectDialog: TConnectDialog;
ToolBar: TPanel;
btOpen: TButton;
btClose: TButton;
DBNavigator1: TDBNavigator;
cbDebug: TCheckBox;
edId: TEdit;
Label1: TLabel;
Label2: TLabel;
edFileName: TEdit;
btAddFile: TButton;
spAddFile: TOraStoredProc;
btCreate: TButton;
btDrop: TButton;
sqCreate: TOraScript;
sqDrop: TOraScript;
mmFileText: TMemo;
Label3: TLabel;
edLibraryPath: TEdit;
procedure btOpenClick(Sender: TObject);
procedure btCloseClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cbDebugClick(Sender: TObject);
procedure btCreateClick(Sender: TObject);
procedure btDropClick(Sender: TObject);
procedure btAddFileClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmMain: TfmMain;
implementation
uses OraClasses;
{$R *.dfm}
procedure TfmMain.btOpenClick(Sender: TObject);
begin
OraQuery.Open;
end;
procedure TfmMain.btCloseClick(Sender: TObject);
begin
OraQuery.Close;
end;
procedure TfmMain.FormCreate(Sender: TObject);
begin
OraQuery.Debug := cbDebug.Checked;
spAddFile.Debug := cbDebug.Checked;
sqCreate.Debug := cbDebug.Checked;
sqDrop.Debug := cbDebug.Checked;
spAddFile.ParamByName('FILE_DATE').DataType := TFieldType(ftTimeStamp);
// For compatibility with Delphi 5
end;
procedure TfmMain.cbDebugClick(Sender: TObject);
begin
FormCreate(Sender);
end;
procedure TfmMain.btCreateClick(Sender: TObject);
begin
if Application.MessageBox('CREATE LIBRARY privilege must be granted before creating objects. Continue?',
PChar(Application.Title), MB_ICONQUESTION or MB_YESNO) <> IDYES
then
Exit;
sqCreate.MacroByName('Dll').Value := '''' + edLibraryPath.Text + '\ExtProc.dll''';
sqCreate.Execute;
ShowMessage('You need to copy ExtProc.dll to Oracle server');
end;
procedure TfmMain.btDropClick(Sender: TObject);
begin
sqDrop.Execute;
end;
procedure TfmMain.btAddFileClick(Sender: TObject);
begin
OraSession.Connect;
OraQuery.Open;
with spAddFile do begin
ParamByName('ID').AsInteger := StrToInt(edId.Text);
ParamByName('FILE_NAME').AsString := edFileName.Text;
ParamByName('FILE_DATE').AsDateTime := Now;
// spAddFile.Options.TemporaryLobUpdate is True
ParamByName('FILE_TEXT').AsOraClob.AsString := mmFileText.Lines.Text;
Execute;
end;
OraQuery.Refresh;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -