![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что можно сделать с зарезервированным словом в запросе? [D6, dBase, FoxPro, Paradox]
DimonS © (2005-09-06 02:29:00)У меня в БД есть два поля - In и Date. при попытке выполнить команду:
...
Query1.SQL.Add('where In='+MaskEdit1.Text);
Query1.Open;
Выдается ошибка:
Invalid use in keyword. Token In=...
Тоже самое и с Date. Как тут быть? с TTable таких вопросов не возникало, а в справке что-то не нашел. Переименовать поле довольно проблематично будет.
alex_*** (2005-09-06 15:36:00) [1]или в квадратных скобках -> [IN]
Desdechado (2005-09-06 11:20:00) [2]попробуй указывать алиасы таблиц, например
SELECT T.* FROM Tablica T
WHERE T."IN"=1 AND T."DATE">"12.12.2003"
Zacho (2005-09-06 09:00:00) [3]DimonS © (06.09.05 8:52) [13]
В смысле лучше в связи с целостностью данных?
Без разницы. Выборка не имеет никакого отношение к поддержке ссылочной целостности.
А что лучше по быстродействию/объёму памяти - зависит от задачи, так что сам смотри.
DimonS (2005-09-06 08:52:00) [4]Zacho
Спасибо, я себе в общем то так и представлял это, но все же что лучше, параматеризированный запрос или фильтрация? БД небольшие, 3-4 тыс. записей. В смысле лучше в связи с целостностью данных?
Zacho (2005-09-06 08:49:00) [5]DimonS © (06.09.05 8:15) [9]
Кстати, есть и другой способ. Использовать фильтрацию в detail-датасете.
Соответственно, менять условие фильтра надо в AfterScroll master-датасета.
Zacho (2005-09-06 08:45:00) [6]DimonS © (06.09.05 8:15) [9]
Ничего не надо самому переоткрывать. Всё гораздо проще.
См. в хелпе TQuery.DataSource Там и пример есть.
Так же посмотри раздел Establishing master/detail relationships using parameters
Ильш (2005-09-06 08:32:00) [7]тормозить не должно
все ж зависит от кол-ва записей, наличия индексов, причем правильно построенных
DimonS (2005-09-06 08:15:00) [8]To Ильш
Да, стандартные, Query. Смысл понял, спасибо. А тормозить сильно будет? И есть ли другой способ еще?
Anatoly Podgoretsky (2005-09-06 07:47:00) [9]DimonS © (06.09.05 06:45) [3]
Ну как хочешь, будешь всю жизнь мучатся.
Ильш (2005-09-06 07:44:00) [10]
> Как соединить 2 таблицы один-ко-многим так, чтобы их можно
> было отображать в разных гридах в связанном виде?
а какие компоненты используешь? стандартные?
тогда делай второй запрос параметризированным и переоткрывай его при перемещении по первому
DimonS (2005-09-06 07:39:00) [11]to dmitry501
Конечно, пробовал. Ладно, похоже придется все-таки переименовывать.
dmitry501 (2005-09-06 07:34:00) [12]Не уверен для dBase, FoxPro, Paradox, но возможно поможет заключение таких полей в квадратные скобки []
Ильш (2005-09-06 07:30:00) [13]дык нельзя не переименовывать
DimonS (2005-09-06 06:45:00) [14]Было бы просто, вопросов бы небыло. По ним вся программа настроена. Переписывать очень много.
Ильш (2005-09-06 06:19:00) [15]
> Переименовать поле довольно проблематично будет
ПЕРЕИМЕНОВАТЬ АДНАЗНАЧНА !!!
И ЧТО ЗА ПРИВЫЧКА ЗА ТАКАЯ ИСПОЛЬЗОВАТЬ ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА ???
DimonS (2005-09-06 04:33:00) [16]И еще вопрос такого плана. Как соединить 2 таблицы один-ко-многим так, чтобы их можно было отображать в разных гридах в связанном виде? В TTable используется MasterSource, а в запросах как? В один то грид соединить их не проблема.