![]() |
|
Модераторы: Akina |
![]()
|
|
| simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: нет Всего: 36 |
Привет. Я тут делаю небольшую базу в MS Access и столкнулся с вот такой проблемой - я написал мелкий запрос:
SELECT name FROM t_tests WHERE teacher IN ( SELECT name FROM t_users WHERE login = "anton" // Логин Антон лишь образно. Он будет ); // определятся пользователем Так вот, выходит ошибка, типа несоответствия типов. В Oracle (8i) всё проходит, а вот в Access P.S. Пробовал ставить вместо IN = тоже самое получается P.S.P.S. Когда тоже стану "опытным товарищем" обещаю помогать новичкам -------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
| simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: нет Всего: 36 |
Упс... я перепутал комментарии из С. Кстати, а есть в SQL коментарии?
-------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Вроде формально всё правильно. 2 замечания:
1) Двойные кавычки иногда надо заменять одинарными 2) Коментарии в SQL обычно: -- Это строковый комментарий /* Это блок коментариев */ Но это зависит от диалекта SQL - иногда могут быть и другие форматы или эти не поддерживаться. -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: нет Всего: 118 |
Надо посмотреть, что за типы
TEACHER в таблице t_test NAME в таблице t_users Насколько они совместимы ? Хотя может быть все из-за убогости самого MS Access - он очень упрощенный - а на убогих как известно ... Но по идее все правильно написано. |
|||
|
||||
| simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: нет Всего: 36 |
И всё таки это была убогость Access. Потом я создал этот же запрос визуально, т.е. с помощью мастера (до этого я всё писал вручную - недолюбливаю чрезмерную визуальность) и всё прокатило, хотя запрос был на 100% одинаковый. Вот так. Ну всё равно спасибо, что помогли.
-------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
| U-gene |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 13.8.2002 Репутация: нет Всего: нет |
Что-то с трудом вериться
Почему мне кажется, что беда не в Акцессе? Да потому, что результатом работы визуального конструктора является SQL-выражение, которое потом выплняется ядром MS Jet. Из визуального конструктора запросов (и из ручного тоже)в ядро передается ТОЛЬКО SQL-выражение, и ничто другое. Поэтому, когда Вы говорите, что запрос, сделанный в визуальном конструкторе, "точно такой-же" как и запрос введенный вручную, но первый работает, а второй - нет, то я сильно сомеваюсь - значит он точно не "точно такой же" и содержит ошибки. |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: нет Всего: 154 |
AntonSaburov правильон сказал, если возникает ошибка несоответствия типов, то смотри:
что за типы TEACHER в таблице t_test NAME в таблице t_users Насколько они совместимы ? -------------------- |
|||
|
||||
| Oleg |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 108 Регистрация: 16.9.2002 Репутация: нет Всего: нет |
А может быть при использовании визуальных средств Аксес включает автоконвертеры типов котроые устанавливают равновесие. Но ты на всякий случай сравни SQL, полученный и бывший. Даже точечки и запятые. За это я Access и ненавижу.
--------------------
...Знающий не доказывает. Доказывающий не знает... |
|||
|
||||
| Гость_konstantin |
|
|||
|
Unregistered |
SELECT name
FROM t_tests WHERE teacher IN ( SELECT name FROM t_users WHERE login = "anton" // Логин Антон лишь образно. Он будет ); // определятся пользователем Не правильно написан модуль - в предложении WHERE внешнего запроса имя столбца должно быть одинаковым с именем столбца после SELECT внутреннего запроса. Вместо teacher - name.Такой модуль как сейчас не будет работать нигде.Нет связи между запросами и Access ругается - "несоответствие типов полей". |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |