|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите расшифровать строку запроса
Здравствуйте.
Столкнулся с такой проблемой. Есть куча кода - чужого. Опыта в разборе кода практически нет. Есть вот такая строка: qSelect.ParamByName('workid').Value := DBNumberEditFW1.Value; В упор не могу понять откуда берется этот 'workid'? В смысле где можно посмотреть почему 'workid', а не, допустим 'ВасяПупкин'. Нужно по аналогии дописать пару строк и что ставить вместо 'workid' ума не приложу и не могу сообразить где посмотреть логику добавления именно этой фразы. Откуда вообще возникает этот параметр в скобках ParamByName(?????) с чем от связан? |
#2
|
||||
|
||||
"workid" это параметр в запросе, обычно выглядит как "select * from works where word_id=:workid"
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
это параметр, который вы передаете в строку запроса.
В самом запросе этот параметр используется примерно так: Select * From Table where Field=:workid используется в случаях, когда условия в запросе меняются(например даты) |
#4
|
||||
|
||||
Цитата:
|
#5
|
|||
|
|||
Спасибо за ответы, но это-то я понимаю. что для изменяющихся параметров. Мне надо было узнать где посмотреть этот параметр, уже заданный до меня. Всё оказалось гораздо проще нужно было на форме искать выбрав компонент 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. |
#6
|
||||
|
||||
Это далеко не весь запрос, это только часть кода по формированию условия отбора и тут нет никаких параметров.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
|||
|
|||
по этому коду вопрос как к нему подключить таблицу, в каком месте?
|
#8
|
||||
|
||||
Да ни в каком, ибо вообще не в условии это делается.
Вот эта строчка: Код:
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)); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |