![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Здравствуйте.
Столкнулся с такой проблемой. Есть куча кода - чужого. Опыта в разборе кода практически нет. Есть вот такая строка: qSelect.ParamByName('workid').Value := DBNumberEditFW1.Value; В упор не могу понять откуда берется этот 'workid'? В смысле где можно посмотреть почему 'workid', а не, допустим 'ВасяПупкин'. Нужно по аналогии дописать пару строк и что ставить вместо 'workid' ума не приложу и не могу сообразить где посмотреть логику добавления именно этой фразы. Откуда вообще возникает этот параметр в скобках ParamByName(?????) с чем от связан? |
|
#2
|
||||
|
||||
|
"workid" это параметр в запросе, обычно выглядит как "select * from works where word_id=:workid"
|
|
#3
|
||||
|
||||
|
Цитата:
![]() |
|
#4
|
|||
|
|||
|
Спасибо за ответы, но это-то я понимаю. что для изменяющихся параметров. Мне надо было узнать где посмотреть этот параметр, уже заданный до меня. Всё оказалось гораздо проще нужно было на форме искать выбрав компонент IBDataSet и открыть его свойство SelectSQL. Там всё тело запроса и лежит.
Но появился ещё один вопрос по запросам. Код:
begin
Result := '';
if ((dtFrom_Period.Value <> null) and (dtTo_Period.Value <> null)) then
Result := Str_SQL_Add(Result, ' and ', '(jo.off_date >= ''' + DateToStr(TDate(dtFrom_Period.Value)) + ''' and jo.off_date <= ''' + DateToStr(TDate(dtTo_Period.Value)) + ''') ');
if (DBLookupComboboxFW1.KeyValue <> null) and (DBLookupComboboxFW1.KeyValue <> -1) then
Result := Str_SQL_Add(Result, ' and ', '(jo.providerid = ' + string(DBLookupComboboxFW1.KeyValue) +')');
if (DBLookupComboboxFW2.KeyValue <> null) and (DBLookupComboboxFW2.KeyValue <> -1) then
Result := Str_SQL_Add(Result, ' and ', 'left join ha_uchastok_house_table uht on uht.houseid = joa.houseid and ' + ' uht.uchastok_table_id = ' + string(DBLookupComboboxFW2.KeyValue));
if (DBLookupComboboxFW3.KeyValue <> null) and (DBLookupComboboxFW3.KeyValue <> -1) then
Result := Str_SQL_Add(Result, ' and ', '(select ADDRESS_NAME from HA_OBJECT_GET_ADDRESS(joa.houseid)) like '''+ DBLookupComboboxFW3.Text + '%'' ');
if (DBLookupComboboxFW8.KeyValue <> null) and (DBLookupComboboxFW8.KeyValue <> -1) then
Result := Str_SQL_Add(Result, ' and ', '(joa.houseid = ' + string(DBLookupComboboxFW8.KeyValue) + ')');
if (DBNumberEditFW15.Value <> null) and (DBNumberEditFW15.Value <> '') then
Result := Str_SQL_Add(Result, ' and ', '(joa.flat_num = ' + string(DBNumberEditFW15.Value) + ')');
if (DBEditFW8.Value <> null) and (DBEditFW8.Value <> '') then
Result := Str_SQL_Add(Result, ' and ', '(joa.flat_prefix = ' + #39 + DBEditFW8.Value + #39 + ')');
end;Ругается на поле joa.houseid, нужно подключить таблицу: ha_journal_outages_address joa, но как не могу понять. P.s. Str_SQL_Add(a, b, c: string) :string; - это функция проверки передаваемой переменной Result если передаваемая переменная не пустая, то перед строкой добавляется ' and ' Последний раз редактировалось Lokky, 19.12.2011 в 15:37. |
|
#5
|
||||
|
||||
|
Это далеко не весь запрос, это только часть кода по формированию условия отбора и тут нет никаких параметров.
|
|
#6
|
|||
|
|||
|
по этому коду вопрос как к нему подключить таблицу, в каком месте?
|
|
#7
|
||||
|
||||
|
это параметр, который вы передаете в строку запроса.
В самом запросе этот параметр используется примерно так: Select * From Table where Field=:workid используется в случаях, когда условия в запросе меняются(например даты) |