Do You request real code from PODPISKA & ROZNITSA ? OK:
----------------------
procedure tmt1inputfo.findindexexec(const sender: TObject);
begin
  with qryFindBase do begin
      active:= false; active:= true;
      if recordcount = 0 then begin
        may_ok:= false;
        showmessage('Данный индекс не найден для данных капмании,
каталога и типа подписки!','ИНДЕКС НЕ НАЙДЕН',200);
      end else if recordcount > 1 then begin
        may_ok:= false;
        showmessage('Данный индекс имеет дубли для данных капмании,
каталога и типа подписки!','ОШИБКА В ДАННЫХ НА СЕРВЕРЕ',200);
      end;
  end;
end;
----------------------
REGEXPR

class function TRegExpr.ParseModifiersStr (const AModifiers : RegExprString;
var AModifiersInt : integer) : boolean;
// !!! Be carefull - this is class function and must not use object
instance fields
 var
  i : integer;
  IsOn : boolean;
  Mask : integer;
 begin
  Result := true;
  IsOn := true;
  Mask := 0; // prevent compiler warning
  for i := 1 to length (AModifiers) do
   if AModifiers [i] = '-'
    then IsOn := false
    else begin
      if Pos (AModifiers [i], 'iI') > 0
       then Mask := MaskModI
      else if Pos (AModifiers [i], 'rR') > 0
       then Mask := MaskModR
      else if Pos (AModifiers [i], 'sS') > 0
       then Mask := MaskModS
      else if Pos (AModifiers [i], 'gG') > 0
       then Mask := MaskModG
      else if Pos (AModifiers [i], 'mM') > 0
       then Mask := MaskModM
      else if Pos (AModifiers [i], 'xX') > 0
       then Mask := MaskModX
      else begin
        Result := false;
        EXIT;
       end;
      if IsOn
       then AModifiersInt := AModifiersInt or Mask
       else AModifiersInt := AModifiersInt and not Mask;
     end;
 end; { of function TRegExpr.ParseModifiersStr
------------------------------------
SYNAPSE

procedure CopyLinesFromStreamUntilBoundary(var APtr:PANSIChar;
AEtx:PANSIChar; ALines:TStrings; const ABoundary:ANSIString);
var
  bol:      PANSIChar;
  lng:      integer;
  s:        ANSIString;
  BackStop: ANSIString;
  eob1:     PANSIChar;
  eob2:     PANSIChar;
begin
  BackStop := '--'+ABoundary;
  eob2     := nil;
  // Copying until Boundary will be reached
  while (APtr<AEtx) do
    begin
      SearchForLineBreak(APtr,AEtx,bol,lng);
      SkipLineBreak(APtr,AEtx);
      eob1 := MatchBoundary(bol,APtr,ABoundary);
      if Assigned(eob1) then
        eob2 := MatchLastBoundary(bol,AEtx,ABoundary);
      if Assigned(eob2) then
        begin
          APtr := eob2;
          Break;
        end
      else if Assigned(eob1) then
        begin
          APtr := eob1;
          Break;
        end
      else
        begin
          SetString(s,bol,lng);
          ALines.Add(s);
        end;
    end;
end;
--------------------
   if (value_len < tab_len)  then begin

    s1:= avalues[i];
    setlength(ar1[i],1); // на выходе столбца будет однострочный массив
    ar1[i][0]:=  fitstring(s1,tab_len,alignment[i]);

   end else if (value_len = tab_len)  then begin

    setlength(ar1[i],1); // на выходе столбца будет однострочный массив
    ar1[i][0]:= avalues[i];

   end else begin
[...]
----------------------------
                        if editmode= em_edit then begin // редактирование записи
                                // Проставить дату деактивации текущей записи 
рабочей таблицы
                                // (дата активации новой записи)

                                // редактированная запись деактивируется 
введенной датой активации
новой записи
                                asql:= asql + 'update ' + ref_name + ' set 
date_deactiv=' +
fieldtosql(fldDateActiv)  + ' where ' + id_field_name + '='  + curr_id
+ ';';
                                // новое ID для текущего кода
                                new_rec_get(false);
                                // Вставить новую запись в рабочую таблицу
                                asql:= asql + 'insert into ' + ref_name + ' (' 
+ field_names + ')
values (' + field_values + ');';
                                // новая запись - рабочая ?
                                if calc_ref_state(fldDateActiv,fldDateDeactiv) 
then // по новому ID
                                        // если новая запись подходит под 
активирование - сделать это
                                                asql:= asql + 'insert into ' + 
bit_name + ' (current_record,' +
code_field_name + ',ref_state) ' +
                                                        ' values (' + 
fieldtosql(fldID) + ',' +
fieldtosql(fieldbyname('code')) + ',' + #39'A'#39 + ');'
                                // или же старая запись - рабочая ?
                                // проверка между деактивацией старой и 
активацией новой
                                else if 
calc_ref_state(fldDateActiv,fldDateActiv,true) then // по
старому ID
                                        // если старая запись подходит под 
активирование - сделать это
                                        asql:= asql + 'insert into ' + bit_name 
+ ' (current_record,' +
code_field_name + ',ref_state) ' +
                                                ' values (' + curr_id + ',' + 
fieldtosql(fieldbyname('code')) +
',' + #39'A'#39 + ');'
                                ;
                        end else begin // удаление записи
                                // удаленная запись деактивируется прямо 
введенной датой деактивации
                                asql:= asql + 'update ' + ref_name + ' set 
date_deactiv=' +
fieldtosql(fldDateDeactiv)  + ' where ' + id_field_name + '='  +
curr_id + ';';
                                // если удаленная запись все еще рабочая - 
активировать ее
                                if calc_ref_state(fldDateActiv,fldDateDeactiv) 
then begin
                                asql:= asql + 'insert into ' + bit_name + ' 
(current_record,' +
code_field_name + ',ref_state) ' +
                                        ' values (' + curr_id + ',' + 
fieldtosql(fieldbyname('code')) +
',' + #39'A'#39 + ');';
                                end;
                        end;
----------------------------------
                        if mainfo <> nil then begin // меняется пароль логина
                
                                if seOldPassword.value <> 
dmmainmo.fldOperPassword.asmsestring then
                        showmessage('Прежний пароль введен неправильно!')
                        else begin
                                b1:= true;
                                dmmainmo.dbpasswchange(seNew.value);
                        end;
                
                        end else if loginfo <> nil then begin // меняется 
пароль входа в программу

                        if not 
md5digestcomp(pswencode(seOldPassword.value),pswread('admin.psw'))
then
                        showmessage('Прежний пароль введен неправильно!')
                        else begin
                                b1:= true;
                                pswwrite('admin.psw',pswencode(seNew.value));
                        end;
                
                        end;
-----------------------
procedure clean4notfound(
        const fieldread, fieldwrite: tfield;
        const local_idx_num: integer = -1
);
var
        bm: bookmarkdataty{string};
        fld: tfield;
sr,sw: widestring;
begin

if (fieldread = nil) or (fieldwrite = nil) then exit;
if not ((fieldread.dataset.active) and (fieldwrite.dataset.active)) then exit;

with fieldread, (dataset as tmsesqlquery) do begin
  if (fieldwrite.dataset.state in [dsBrowse,dsInactive]) then exit;
        if fieldread is tmselongintfield then begin
                if local_idx_num >= 0 then begin
                        if not indexlocal[local_idx_num].find(
                                [fieldwrite.asinteger],[],bm,
                                false,false,true
                        ) then begin
                                fieldwrite.clear;
                        end;
                end;
        end else if fieldread is tmsestringfield then begin
                if local_idx_num >= 0 then begin
                        if not indexlocal[local_idx_num].find(
                                [fieldwrite.asmsestring],[],bm,
                                false,false,true
                        ) then begin
                                fieldwrite.clear;
                        end;
                end;
        end;
end;
end;
----------------------------------
function GetPSStream( adir: msestring = ''): ttextstream;
begin
        if adir = '' then
                outfile:= gettempfilename(gettempdir ,'msepsout')
        else if finddir(adir) then
                outfile:= gettempfilename(adir,'msepsout')
        else
                raise exception.create('GetPSStream: failed to access the output
directory ' + adir);

        result:= ttextstream.create(outfile,fm_create);
end;
----------------------------
procedure tform5edifo.monthbegsettext(const sender: tdataedit;
 var atext: msestring; var accept: Boolean);
begin
 if ExecRegExpr('^[0-9]+\.[0-9]+$', atext) then
  atext:= '01.' + atext
 else if ExecRegExpr('^[0-9]+$', atext) then
  atext:= '01.' + atext + '.' + IntToStr(YearOf(Today));
end;
--------------------------
procedure tform5singleeditfo.applyrecupdate(const sender: tmsesqlquery;
        const updatekind: TUpdateKind; var asql: AnsiString; var done: Boolean);
var
        i1: integer;
        form6id_sql: ansistring;
        s: ansistring;
 {$ifdef DEBUG_SQL}
        f: text;
{$endif}
begin

 {$ifdef DEBUG_SQL}
        if updatekind = ukModify then
                debugwriteln('qryForm5Single.ApplyRecUpdate : updatekind is 
ukModify')
        else if updatekind = ukInsert  then
                debugwriteln('qryForm5Single.ApplyRecUpdate : updatekind is 
ukInsert');

        debugwriteln('qryForm5Single.ApplyRecUpdate : step 1');
 {$endif}
-----------------------------

------------------------------------------------------------------------------
DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps
OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access
Free app hosting. Or install the open source package on any LAMP server.
Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native!
http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk
_______________________________________________
mseide-msegui-talk mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mseide-msegui-talk

Reply via email to