На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> Ошибка последней таблицы , FireBird 1.5
    Открываю любую таблицу в базе данных при помощи запроса:
    select * from <имя таблицы>
    Всё в порядке, но при попытки открыть последнюю таблицу выскакивает ошибка:
    Dynamic SQL Error
    SQL error code = -104
    Token unknown - line 1, char 15
    user.
    Что это значит ?! Что я делаю не так ?!
    И где можно взять описания ошибок ?! с SQL сталкнулся впервый раз :)
      А какое у таблицы имя? Не служебное ли это слово?
        Цитата fwsoft @
        SQL error code = -104

        Конфликт использования зарезирвированного слова user.
        Взять в кавычки, говорят помогает ;) .

        Добавлено
        Цитата fwsoft @
        И где можно взять описания ошибок ?!

        Легче выучить список зарезервированных слов (Reserved words)
          Цитата Bas @
          Взять в кавычки,
          Символы, используемые для экранизации, зависят от типа БД.
            Цитата MIF @
            А какое у таблицы имя? Не служебное ли это слово?

            USER
              Цитата fwsoft @
              USER

              USER есть в списке Reserved words
                Цитата Bas @
                USER есть в списке Reserved words

                А как тогда добраться до этой таблицы ?! В чём фокус ?!
                  Цитата fwsoft @
                  А как тогда добраться до этой таблицы ?! В чём фокус ?!

                  Цитата Bas @
                  Взять в кавычки
                    Цитата fwsoft @
                    А как тогда добраться до этой таблицы ?! В чём фокус ?!
                    Если поезд далеко не ушел - переименовать таблицу. Хотя бы в _USER или USERS.
                    Цитата MIF @
                    Символы, используемые для экранизации, зависят от типа БД.
                    Попробуй "USER", [USER]...но не гарантирую
                      Запрос типа:
                      ExpandedWrap disabled
                        select * from "USER"

                      работает, но что самое интересное, если в БД есть например таблица BARCODE, то запрос типа:
                      ExpandedWrap disabled
                        select * from BARCODE или select * from barcode или select * from "BARCODE"

                      проходит, а комбинация типа:
                      ExpandedWrap disabled
                        select * from "barcode"

                      нет :(
                        Цитата fwsoft @
                        что самое интересное
                        есть синтаксис SQL применительно к конкретному серверу. Рекомендую почитать документацию и посмотреть, как там используется регистр для названий. В доках по InterBase почему-то все названия - в верхнем регистре. Наверное - неспроста. Да и имена системных таблиц и их полей - тоже.
                          Самое оптимальное, это вытащить имена таблиц из БД и обращаться к ним через скобки :)
                            Самое оптимальное - изучить список зарезервированных слов до начала проектирования БД, а не после.
                              Цитата
                              работает, но что самое интересное, если в БД есть например таблица BARCODE, то запрос типа:

                              в этом и есть смысл двойных кавычек. Если без кавычек, то регистр роль не играет. Если в кавычках, то регистр имеет значение
                                Цитата Coala @
                                Самое оптимальное - изучить список зарезервированных слов до начала проектирования БД, а не после.

                                Ну да ... если сам проектируешь БД, но если БД просто стянул, то тут уже ничего не сделать и приходиться извращяться :)
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0430 ]   [ 16 queries used ]   [ Generated: 21.11.25, 20:58 GMT ]