Форум: "Начинающим";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];
ВнизВизуальное отбражение кода Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c