Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Визуальное отбражение кода


Nutz ©   (2009-10-12 18:48:00) 

дайте совет, Как код будет смотреться лучше

так:

(1)


function Tdatamodule_Connection.FindByField2(const FieldName,
 FieldValue: string; Where: Integer): Integer;
var
 No: Integer;
 sSQL: string;
begin
 Result := -1;

 if ConnectionStatus = csConnected then
 begin
   SelectionStatus := ssByField;
   try
     if not IsTryField(FieldName, No) then
       raise Exception.CreateResFmt(@const_msg_InvalidFieldName, [FieldName]);
     case Where of

       W_ITEMS:
         sSQL := Format('SELECT * FROM Item WHERE (%s = %s) AND (group_id <> 0) AND (flags <> 1) ORDER BY group_id',
           [FieldName, StrToFieldType(FieldName, FieldValue)]);

       W_SECTIONS:
         sSQL := Format('SELECT * FROM Item WHERE (%s = %s) AND (group_id = 0) AND (flags <> 1) ORDER BY group_id',
           [FieldName, StrToFieldType(FieldName, FieldValue)]);

       W_ITEMS_AND_SECTIONS:
         sSQL := Format('SELECT * FROM Item WHERE (%s = %s) AND (flags <> 1) ORDER BY group_id',
           [FieldName, StrToFieldType(FieldName, FieldValue)]);

       else
         raise Exception.CreateResFmt(@const_msg_InvalidWhereParam, [Where]);

     end;
     cmp_QueryByField_.SQL.Text := sSQL;
     cmp_QueryByField_.Open;
     Result := cmp_QueryByField_.RowsAffected;
   except
     on E: Exception do
       LastMsgError := E.Message;
   end;
 end
 else
   LastMsgError := LoadResString(@const_msg_ConnectionNotExists);
end;


или так:

(2)


function Tdatamodule_Connection.FindByField2(const FieldName,
 FieldValue: string; Where: Integer): Integer;
var
 No: Integer;
 sSQL: string;
begin
 Result := -1;
 if ConnectionStatus = csConnected then
 begin
   SelectionStatus := ssByField;
   try
     if not IsTryField(FieldName, No) then
       raise Exception.CreateResFmt(@const_msg_InvalidFieldName, [FieldName]);
     case Where of

       W_ITEMS:
         sSQL := 'AND (group_id <> 0)',
           [FieldName, StrToFieldType(FieldName, FieldValue)]);

       W_SECTIONS:
         sSQL := 'AND (group_id = 0)';

       W_ITEMS_AND_SECTIONS:
         sSQL := '';

       else
         raise Exception.CreateResFmt(@const_msg_InvalidWhereParam, [Where]);

     end;
     cmp_QueryByField_.SQL.Text := Format('SELECT * FROM Item WHERE (%s = %s) %s AND (flags <> 1) ORDER BY group_id',
       [FieldName, StrToFieldType(FieldName, FieldValue), sSQL])
     cmp_QueryByField_.Open;
     Result := cmp_QueryByField_.RowsAffected;
   except
     on E: Exception do
       LastMsgError := E.Message;
   end;
 end
 else
   LastMsgError := LoadResString(@const_msg_ConnectionNotExists);
end;


sniknik   (2009-10-12 20:46:00) [1]

> Не вчитываясь вижу, что в (1) дублируется запрос это плохо.
не вчитываясь, не вижу параметров, это ваще отстой...


Kolan   (2009-10-12 20:43:00) [2]

Не вчитываясь вижу, что в (1) дублируется запрос это плохо.


KilkennyCat   (2009-10-12 19:31:00) [3]

Мне бы твои проблемы.


Наверх

Титульная страница Поиск, карта сайта Написать письмо