Страница 1 из 1
Принципиальная проблема с запросом
Добавлено: 23 июл 2008, 15:44
sdsfy
Приветствую коллеги!
БД Interbase 5.5 и 2007
Диалект 1.
У меня есть таблица с полем под названием TIME. уж не помню как такая глупость завелась, но как факт, не могу написать запрос
select TIME from table1
сообщается ошибка! причем по ходу синтактическая. Но достаточно написать запрос
select * from table1
и все поля, включая TIME вызываются без ошибок.
но, по ходу мне необходимо оперировать в запросе конкретным столбцом. Есть ли возможность доступа к полю TIME в теле запроса. Само поле типа DateTime
Re: Принципиальная проблема с запросом
Добавлено: 23 июл 2008, 16:49
Kotъ-Begemotъ
пардон, кавычки нужны двойные. Вот так:
Код: Выделить всё
SELECT T.FIELD1, T.FIELD2, T."TIME" FROM TABLE T
Добавлено: 23 июл 2008, 16:55
sdsfy
не работает и походу по причине того что диалект 1
Добавлено: 23 июл 2008, 17:45
WildSery
Меняй название поля. В 1м диалекте по-другому кажись не выйдет.
Добавлено: 23 июл 2008, 17:51
sdsfy
тоже пришел к такому выводу, только вот непонятно, как его можно поменять? фактически, создается новое поле, и значения из старого копируются в новое, запросом это никак не решится. надо будет через компоненты типа TQuery переборкой всех записей через параметр FieldByName...
это редкостный напряг, этак можно и без переименования манипулировать полем.
Добавлено: 23 июл 2008, 18:13
WildSery
Что именно не решится запросом?
Берёшь своего старого клиента (кто там у тебя был, 5.6?) и подключившись, спокойно работаешь с полем TIME. После создания нового / переноса данных / удаления старого всё будет шоколадно.
Добавлено: 23 июл 2008, 21:53
sdsfy
У меня из под старого клиента в теле запроса явно не получается указать поле с названием TIME. тупой перенос
не прокатит. выдаст синтаксическую ошибку.
ну ладно не суть как важно, решу как нить в обход. к сожалению избавиться от этого поля из-за проблем совместимости я не могу.
Добавлено: 24 июл 2008, 13:10
Attid
sdsfy писал(а):избавиться от этого поля из-за проблем совместимости я не могу.
иногда это необходимо.
ЗЫ можно еще попробывать новое поле заполнить в тригере, и пройти холостым апдейтом.
Добавлено: 24 июл 2008, 13:16
Gera
А может создать представление с алиасом на этот столбец?
Что-нибудь типа:
Код: Выделить всё
CREATE VIEW name (field1, field2, NewTime, field4...)
AS SELECT * FROM Table
Добавлено: 24 июл 2008, 16:41
sdsfy
Насчет View не подумал. надо попробовать, если конечно он сделает то что надо. попробуем.
спасибо за совет