Есть форма с Mask Edit и Обычным текстовым полем, которая передаёт данные в таблицу Оракла, добавил ещё один MaskEdit, подскажите, как сделать чтобы в таблицу добавлялись все строки из промежутка данных между 2 полями MaskEdit включительно, а третее текстовое поле забивалось ко всем строкам статично (просьба привести пример кода).
Вот мой сорц:
unit CMR;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Oracle, AppUtils, Mask;
type
TfrmCMR = class(TForm)
Label2: TLabel;
cmrDA: TEdit;
Label3: TLabel;
btnSend: TBitBtn;
BitBtn2: TBitBtn;
cmrText1: TMaskEdit;
cmrText2: TMaskEdit;
Label1: TLabel;
procedure btnSendClick(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FCMRID: Integer;
FCMRStatus: Integer;
public
{ Public declarations }
procedure OpenCMR(aCMRID: Integer);
procedure CreateCMR;
end;
var
frmCMR: TfrmCMR;
implementation
uses DBSess;
{$I TFS_Messages.pas}
{$R *.DFM}
procedure TfrmCMR.CreateCMR;
begin
FCMRID := 0;
FCMRStatus := 0;
cmrDA.Text := '';
cmrText1.Text := '';
cmrText2.Text := '';
end;
procedure TfrmCMR.OpenCMR(aCMRID: Integer);
begin
FCMRID := aCMRID;
with TOracleQuery.Create(Application) do
begin
Session := dbs;
SQL.Add('SELECT * FROM DEVEL.CMR');
SQL.Add('WHERE CMRID=:CMRID');
DeclareVariable('CMRID', otInteger);
SetVariable('CMRID', FCMRID);
Execute;
FCMRStatus := FieldAsInteger('STATUS');
cmrDA.Text := FieldAsString('DA');
cmrText1.Text := FieldAsString('TEXT');
end;
end;
procedure TfrmCMR.btnSendClick(Sender: TObject);
begin
Close;
end;
procedure TfrmCMR.BitBtn2Click(Sender: TObject);
begin
Close;
end;
procedure TfrmCMR.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TfrmCMR.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
newID: Integer;
begin
if ModalResult = mrOk then
begin
if FCMRStatus = 1 then
begin
if MessageDlg('Ñîîáùåíèå óæå îòïðàâëåíî. Îòïðàâèòü ïîâòîðíî?',
mtConfirmation, [mbYes, mbNo], 0) <> mrYes then
begin
CanClose := False;
Exit;
end;
end;
with TOracleQuery.Create(Application) do
begin
Session := dbs;
if FCMRID = 0 then
begin
SQL.Add('SELECT DEVEL.SEQ_CMR.NEXTVAL ID FROM DUAL');
Execute;
newID := FieldAsInteger('ID');
SQL.Clear;
SQL.Add('INSERT INTO DEVEL.CMR(');
SQL.Add('CMRID, DA, TEXT, OWNER');
SQL.Add(')VALUES(');
SQL.Add(':CMRID, :DA, :TEXT, USER');
SQL.Add(')');
end else
begin
SQL.Add('UPDATE DEVEL.CMR SET');
SQL.Add('DA=:DA, TEXT=:TEXT, STATUS=NULL,');
SQL.Add('WHERE CMRID=:CMRID');
end;
DeclareVariable('CMRID', otInteger);
DeclareVariable('DA', otString);
DeclareVariable('TEXT', otString);
if FCMRID = 0 then
begin
SetVariable('CMRID', newID);
end else
begin
SetVariable('CMRID', FCMRID);
end;
SetVariable('DA', trim(cmrDA.Text));
SetVariable('TEXT', cmrText1.Text);
Execute;
dbs.Commit;
AppBroadcast(TFSM_REFRESH_CMRLIST, 1, 0);
end;
end;
end;
procedure TfrmCMR.FormCreate(Sender: TObject);
begin
FCMRID := 0;
cmrText1.Text := '';
cmrText2.Text := '';
end;
end.