Форум: "Базы";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
ВнизОтвлечённый вопрос про оптимизацию. Найти похожие ветки
← →
Котелок (2001-11-30 02:16) [0]Вопрос в следуюшем...
Нижеприведённый код можно как нибудь оптимизировать....???
А то написал и меня переклинило. Не чего не могу другого придумать....:-(((
procedure TFSearch.BitBtn3Click(Sender: TObject);
var
s : string;
katId, strId : integer;
filt : string;
begin
if edit2.text <> "" then
begin
dm1.q1.close;
dm1.q1.sql.clear;
dm1.q1.sql.add("select * from streets where name = :name");
dm1.q1.prepare;
dm1.q1.ParamByName("name").asstring := edit2.text;
dm1.q1.open;
strId := dm1.q1.fieldbyname("idstreet").asinteger;
end;
if edit3.text <> "" then
begin
dm1.q1.close;
dm1.q1.sql.clear;
dm1.q1.sql.add("select * from kategor where name = :name");
dm1.q1.prepare;
dm1.q1.ParamByName("name").asstring := edit3.text;
dm1.q1.open;
katId := dm1.q1.fieldbyname("idkat").asinteger;
end;
sqlsearch :=" select "+
" otd.predpr, "+
" otd.otdid, "+
" pre.idPredpr, "+
" otd.name as otdname, "+
" otd.phone, "+
" pre.katalog, "+
" otd.kindid, "+
" pre.name as orgname, "+
" otd.home, "+
" otd.office, "+
" str.name as street, "+
"(select name from katalog where Idkat = pre.katalog) as katal, "+
" kat.name as kateg "+
" from "+
" otdel otd, "+
" predpr pre, "+
" streets str, kategor kat"+
" where otd.predpr = pre.IdPredpr and otd.kindId = kat.idkat and otd.streetId = str.IdStreet";
if edit1.text <> "" then
begin
sqlsearch := sqlsearch +" and pre.name like" +" ""*"+edit1.text+"*""";
end;
if edit4.text <> "" then
sqlsearch := sqlsearch +" and otd.home = "+ """"+edit4.text+"""";
if edit5.text <> "" then
sqlsearch := sqlsearch +" and otd.office = "+""""+edit5.text+"""";
if edit6.text <> "" then
sqlsearch := sqlsearch +" and otd.name like "+"""*"+edit6.text+"*""";
if edit7.text <> "" then
sqlsearch := sqlsearch +" and otd.phone like "+"""*"+edit7.text+"*""";
dm1.qSearch.close;
dm1.qSearch.sql.clear;
dm1.qSearch.sql.add(sqlsearch);
dm1.qSearch.Prepare;
filt := "";
if edit2.text <> "" then
filt := "street = """+ edit2.text +"""";
if (edit3.text <> "") and (edit2.text <> "") then
filt := filt + " and kateg = """+edit3.text+"""";
if (edit3.text <> "") and (edit2.text = "") then
filt := filt + " kateg = """+edit3.text+"""";
dm1.qSearch.open;
if filt <> "" then
begin
dm1.qSearch.Filter := filt;
dm1.qSearch.Filtered := true;
end
else
dm1.qSearch.Filtered := false;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c