|
|
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
Привет всем! Есть проблема. Нужно сделать кое-какие исправления в чужом софте (Delphi-Interbase), но я там обнаружил, что некоторые имена полей названы зарезервированными словами - "year", "month" и т.п., связи с чем не могу к ним обращаться напрямую - BDE (через которое настроено соединение) ругается "Token unknown". Я опущу мнение о разработчике.... но проблему все же надо решать. Что можно сделать? Прога разработана в Дельфи-5 с использованием BDE и Interbase тех времен. Возможно, есть какой-то способ обратиться к полю вроде MyTable."year", MyTable.[year] или как-то в том же духе? Если сможете помочь, буду очень благодарен. Спасибо! ЗЫ: варианты переименования полей таблиц, использования альтернативных драйверов доступа к БД не подходят, ибо кода наворочено много, а исправлений нужно сделать самую малость... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 12:13:49 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
Dmitry GurianovПривет всем! Есть проблема. Нужно сделать кое-какие исправления в чужом софте (Delphi-Interbase), но я там обнаружил, что некоторые имена полей названы зарезервированными словами - "year", "month" и т.п., связи с чем не могу к ним обращаться напрямую - BDE (через которое настроено соединение) ругается "Token unknown". Я опущу мнение о разработчике.... но проблему все же надо решать. Что можно сделать? Прога разработана в Дельфи-5 с использованием BDE и Interbase тех времен. Возможно, есть какой-то способ обратиться к полю вроде MyTable."year" , MyTable.[year] или как-то в том же духе? Если сможете помочь, буду очень благодарен. Спасибо! ЗЫ: варианты переименования полей таблиц, использования альтернативных драйверов доступа к БД не подходят, ибо кода наворочено много, а исправлений нужно сделать самую малость... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 12:17:48 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
Вы сами пробовали? Я пробовал вариантов 10. Тот же эффект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 12:21:53 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
Dmitry GurianovВы сами пробовали? пробовали Напишите версию сервера ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 12:24:16 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
Interbase 6.5, SQL Explorer 4.0 (пробую и из него) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2005, 12:35:34 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
>Прога разработана в Дельфи-5 с использованием BDE и Interbase тех времен. InterBase тех времен имеет версию 5.х(5.1, 5.5, 5.6) >Interbase 6.5 Это уже почти наше время, и конструкция MyTable."year" должна в нем работать, только вот "year" и "Year" это два разных поля. Вот здесь почитай. ----------------------- С уважением, Denis Uskov ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 07:48:19 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
Denis Uskov>Прога разработана в Дельфи-5 с использованием BDE и Interbase тех времен. InterBase тех времен имеет версию 5.х(5.1, 5.5, 5.6) >Interbase 6.5 Это уже почти наше время, и конструкция MyTable."year" должна в нем работать, только вот "year" и "Year" это два разных поля. Вот здесь почитай. Интересные таки мы люди. Человеку надо что-то чуть-чуть подправить в чужой задаче, так мы ему рекомендуем перейти на 3-й диалект только для того чтоб писать year в кавычках, забывая при этом, что этот самый year - последняя проблема при миграции. 2 Dmitry Gurianov. IB6.5 - это данность спущенная свыше? Тогда забудь о лёгком обходе проблемы новых ключевых слов. Из современных серверов такая возможность есть только в Yaffil, задаётся параметром конфига. Но через некоторое время возникнет проблема миграции с Yaffil ;) 2 kdv - очень невнятный текст по ссылке, вообще-то. Новые ключевые слова в 1-м диалекте IB6 и выше тоже нельзя использовать - alter column и extract есть во всех диалектах. Так что проблема не в диалекте на самом деле, а третий всего лишь позволяет взять их в кавычки и пользовать. Что, на мой взгляд, очень мало облегчает жизнь - всё равно все запросы трясти. Основная пролема междиалектной миграции - не кавычки и даже не типы, а разные результаты одних и тех же выражений с нумериками. Эта арифметика вылезает самым непредсказуемым образом, и при наличии большого количества такой арифметики в процедурах и триггерах старой задачи сводит вероятность перехода без наступания на очень болезненные грабли, даже через весьма продолжительное время якобы "успешной" работы, имхо к нулю. Опять же при прочтении текста возникает впечатление, что в третьем кавычки использовать не _можно_, а _нужно_, а потом мы с тобой говорим что от этого один гемор (и это правда). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 12:38:07 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
я перечитаю, поправлю. и migration, и faq. однако я так и не знаю решения проблемы с столбцами YEAR и т.п. в первом диалекте. то есть, решение -то есть: не морочить голову, и оставаться на 5.6. А если переходить на 6.0 и выше, то заодно и поменять диалект. Поддержка legacy dialect в Yaffil - все-таки костыли, хотя по идее, конечно, первый диалект надо было поддерживать 100% корректно. Но что поделаешь - так Borland устроил... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2005, 13:25:19 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
Amris Mirddin Denis Uskov>Прога разработана в Дельфи-5 с использованием BDE и Interbase тех времен. InterBase тех времен имеет версию 5.х(5.1, 5.5, 5.6) >Interbase 6.5 Это уже почти наше время, и конструкция MyTable."year" должна в нем работать, только вот "year" и "Year" это два разных поля. Вот здесь почитай. Интересные таки мы люди. Человеку надо что-то чуть-чуть подправить в чужой задаче, так мы ему рекомендуем перейти на 3-й диалект только для того чтоб писать year в кавычках, забывая при этом, что этот самый year - последняя проблема при миграции. ... Я не рекомендовал перейти на 3-й диалект, просто из постов автора не понятно каким же сервером он пользуется. Повторюсь, InterBase тех времен имеет версию 5.х, а потом автор пишет Interbase 6.5, или он опечатался(заметьте 5.6 и 6.5 достаточно похожи при написании), или все же был переход на 6.5, и не известно переводился ли диалект на 3-й. Если переводился, то та ссылка может как-то помочь в решении проблем. kdv писал: "...однако я так и не знаю решения проблемы с столбцами YEAR и т.п. в первом диалекте." Вот и вся песня. Если у Вас есть решение данной проблемы, то поделитесь пож-та. ------------------------ С уважением, Denis Uskov ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2005, 07:47:24 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
какое именно решение нужно? решений много - оставаться на 5.6, или перейти на 3-ий диалект. или использовать клиента от 5.6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2005, 11:01:18 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
понимаю тема старая, но вдруг пригодится кому, действительно зарезервированные поля в условии where не получается использовать несмотря на все "" '' и [], но за то зарезервированные поля отлично работают в конструкции case например: case when LICENSES."DOUBLE" = 1 and LICENSES.SYS_GUID is not null then LICENSES.SERDOC end as "Бла бла бла", можно пробовать так если условие нужно наложить не навесь запрос) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 14:40:39 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
lynatik50, [] - в FB нет (это если только в MSSQL) '' - для строк да и про case с where фигня какая-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 14:44:16 |
|
||
|
Если имя поля таблицы - зарезервированное слово...
|
|||
|---|---|---|---|
|
#18+
пристрелите зомби Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 14:45:35 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=109&tid=1564152]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
19ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 326ms |

| 0 / 0 |
