Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.11.29;
Скачать: CL | DM;

Вниз

Визуальное отбражение кода   Найти похожие ветки 

 
Nutz   (2009-10-12 18:48) [0]

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

так:

(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;


 
KilkennyCat ©   (2009-10-12 19:31) [1]

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


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

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


 
sniknik ©   (2009-10-12 20:46) [3]

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



Страницы: 1 вся ветка

Текущий архив: 2009.11.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.062 c
15-1254148562
xayam
2009-09-28 18:36
2009.11.29
Напомните как называется фильм


15-1254400228
Kerk
2009-10-01 16:30
2009.11.29
Предлагаю наш ОМОН послать учиться в США, демократичнее надо быть


15-1254147415
картман
2009-09-28 18:16
2009.11.29
Усилитель для наушников


15-1252418473
Наиль
2009-09-08 18:01
2009.11.29
Кому Windows XP бесплатно?


3-1230191328
zorik
2008-12-25 10:48
2009.11.29
Функция обратная extract day (month, year)