📄 frame_uoradm.~pas
字号:
unit frame_uOraDM;
interface
uses
Windows, Messages, ora,SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, frame_uDM;
type
Tframe_OraDM = class(Tframe_DM)
private
{ Private declarations }
public
{ Public declarations }
procedure doConnect;
function ExecuteSQL(Con: TCustomConnection; SQLStr: string): boolean;
end;
var
frame_OraDM: Tframe_OraDM;
implementation
{$R *.dfm}
//------------------------------------------------------------------------------
// 执行SQL (Qry)
//------------------------------------------------------------------------------
function Tframe_DM.OpenSQL(Qry: TDataSet; SQLStr: string; Params: array of string): boolean;
var
i: integer;
errMess: string;
oraQry: TOraQuery;
ADOQry: TADOxQuery;
begin
Result := False;
try
if (Qry is TOraQuery) then
begin
oraQry := TOraQuery(Qry);
oraQry.SQL.Clear;
oraQry.SQL.Add(SQLStr);
if oraQry.Params.Count <> High(params) + 1 then
begin
errMess := 'ExecuteSQL:参数不足!';
errorDlg(errMess);
WriteLog(errMess);
exit;
end;
for i := 0 to oraQry.params.Count - 1 do
begin
oraQry.Params[i].Value := params[i];
end;
oraQry.open;
end
else if (Qry is TADOxQuery) then
begin
ADOQry := TADOxQuery(Qry);
ADOQry.SQL.Clear;
ADOQry.SQL.Add(SQLStr);
if ADOQry.Parameters.Count <> High(params) + 1 then
begin
errMess := 'ExecuteSQL:参数不足!';
errorDlg(errMess);
WriteLog(errMess);
exit;
end;
for i := 0 to ADOQry.Parameters.Count - 1 do
begin
ADOQry.Parameters[i].Value := params[i];
end;
ADOQry.open;
end;
except
on e: Exception do
begin
errMess := '执行SQL错误' + #13 + #10 +
'SQL:' + SQLStr + #13 + #10 +
e.message;
errorDlg(errMess);
WriteLog(errMess);
end;
end;
if errmess = '' then
begin
Result := True
end;
end;
function Tframe_DM.ExecuteSQL(Qry: TDataSet; SQLStr: string): boolean;
var
errMess: string;
OraQry: TOraQuery;
ADOQry: TADOxQuery;
begin
Result := False;
try
if (Qry is TOraQuery) then
begin
OraQry := TOraQuery(Qry);
OraQry.Close;
OraQry.SQL.Clear;
OraQry.SQL.Add(SQLStr);
OrAQry.ExecSQL;
end
else if (Qry is TADOxQuery) then
begin
ADOQry := TADOxQuery(Qry);
ADOQry.Close;
ADOQry.SQL.Clear;
ADOQry.SQL.Add(SQLSTR);
ADOQry.ExecSQL;
end;
except
on e: Exception do
begin
errMess := '执行SQL错误' + #13 + #10 +
'SQL:' + SQLStr + #13 + #10 +
e.message;
errorDlg(errMess);
WriteLog(errMess);
end;
end;
if errmess = '' then
begin
Result := True
end;
end;
function Tframe_OraDM.ExecuteSQL(Qry: TDataSet; SQLStr: string; Params: array of string): boolean;
var
i: integer;
errMess: string;
oraQry: TOraQuery;
ADOQry: TADOxQuery;
begin
Result := False;
try
if (Qry is TOraQuery) then
begin
oraQry := TOraQuery(Qry);
oraQry.SQL.Clear;
oraQry.SQL.Add(SQLStr);
if oraQry.Params.Count <> High(params) + 1 then
begin
errMess := 'ExecuteSQL:参数不足!';
errorDlg(errMess);
WriteLog(errMess);
exit;
end;
for i := 0 to oraQry.params.Count - 1 do
begin
oraQry.Params[i].Value := params[i];
end;
oraQry.ExecSQL;
end
else if (Qry is TADOxQuery) then
begin
ADOQry := TADOxQuery(Qry);
ADOQry.SQL.Clear;
ADOQry.SQL.Add(SQLStr);
if ADOQry.Parameters.Count <> High(params) + 1 then
begin
errMess := 'ExecuteSQL:参数不足!';
errorDlg(errMess);
WriteLog(errMess);
exit;
end;
for i := 0 to ADOQry.Parameters.Count - 1 do
begin
ADOQry.Parameters[i].Value := params[i];
end;
ADOQry.ExecSQL;
end;
except
on e: Exception do
begin
errMess := '执行SQL错误' + #13 + #10 +
'SQL:' + SQLStr + #13 + #10 +
e.message;
errorDlg(errMess);
WriteLog(errMess);
end;
end;
if errmess = '' then
begin
Result := True
end;
end;
function ExecuteSQL(Qry: TDataSet; SQLStr: string): boolean;
var
errMess: string;
OraQry: TOraQuery;
ADOQry: TADOxQuery;
begin
Result := False;
try
if (Qry is TOraQuery) then
begin
OraQry := TOraQuery(Qry);
OraQry.Close;
OraQry.SQL.Clear;
OraQry.SQL.Add(SQLStr);
OrAQry.ExecSQL;
end
else if (Qry is TADOxQuery) then
begin
ADOQry := TADOxQuery(Qry);
ADOQry.Close;
ADOQry.SQL.Clear;
ADOQry.SQL.Add(SQLSTR);
ADOQry.ExecSQL;
end;
except
on e: Exception do
begin
errMess := '执行SQL错误' + #13 + #10 +
'SQL:' + SQLStr + #13 + #10 +
e.message;
errorDlg(errMess);
WriteLog(errMess);
end;
end;
if errmess = '' then
begin
Result := True
end;
end;
{ Tframe_OraDM }
function ExecuteSQL(Con: TCustomConnection; SQLStr: string): boolean;
var
ADOSQL: TADOxQuery;
OraSQL: TOraQuery;
errMess: string;
begin
Result := False;
if (Con is TOraSession) then
begin
OraSQL := TOraQuery.Create(Application);
OraSQL.Connection := TOraSession(con);
OraSQL.SQL.Add(SQLStr);
try
OraSQL.ExecSQL;
except
on e: Exception do
begin
Result := False;
errMess := '执行SQL错误' + #13 + #10 +
'SQL:' + SQLStr + #13 + #10 +
e.message;
errorDlg(errMess);
WriteLog(errMess);
end;
end;
end
else if (Con is TADOConnection) then
begin
ADOSQL := TADOxQuery.Create(Application);
ADOSQL.Connection := TADOConnection(con);
ADOSQL.SQL.Add(SQLStr);
try
ADOSQL.ExecSQL;
except
on e: Exception do
begin
Result := False;
errMess := '执行SQL错误' + #13 + #10 +
'SQL:' + SQLStr + #13 + #10 +
e.message;
errorDlg(errMess);
WriteLog(errMess);
end;
end;
end;
if errmess = '' then
begin
Result := True
end;
end;
procedure Tframe_OraDM.doConnect;
var
userID, pwd, server: string;
OraSession: TOraSession;
OraQry: TOraQuery;
val: string;
ConDiag: TConnectDialog;
begin
userID := UncrypStr(ReadCfg('database', 'userID', ''));
pwd := UncrypStr(ReadCfg('database', 'pwd', ''));
server := UncrypStr(ReadCfg('database', 'server', ''));
OraSession := TOraSession.Create(Self);
OraSession.Username := userID;
OraSession.Password := pwd;
OraSession.Server := Server;
OraSession.Options.Net:=true;
OraQry := TOraQuery.Create(self);
OraQry.Connection := OraSession;
Con := OraSession;
Qry := OraQry;
ConDiag := TConnectDialog.Create(Self);
ConDiag.Caption := 'oracle连接设置';
ConDiag.UsernameLabel := '用户ID';
ConDiag.PasswordLabel := '密码';
ConDiag.ServerLabel := '服务器';
ConDiag.ConnectButton := '连接';
ConDiag.CancelButton := '取消';
ConDiag.Retries := 3;
OraSession.LoginPrompt := False;
try
OraSession.Connect;
except
On E: Exception do
begin
if QueryDlg(E.message+#13+'是否重新设置数据库连接?', True, '数据库连接错误') then
begin
OraSession.LoginPrompt := True;
OraSession.ConnectDialog := ConDiag;
try
OraSession.Connect;
begin
WriteCfg('database', 'userID', EncrypStr(OraSession.Username));
WriteCfg('database', 'pwd', EncrypStr(OraSession.password));
WriteCfg('database', 'server', EncrypStr(OraSession.Server));
end;
except
on E: Exception do
begin
ShowMessage(e.Message);
Application.Terminate;
end;
end;
end;
end;
end;
if not OraSession.Connected then
begin
Application.Terminate
end;
end;
initialization
DMClass:=Tframe_OraDM;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -