![]() |
Модераторы: Akella |
![]() ![]() ![]() |
|
BORINSHTEIN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
пишет Parameter name expected |
|||
|
||||
BORINSHTEIN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Вообще я правильно пытаюсь в датасете прописать для случая многие ко многим ?
Это сообщение отредактировал(а) BORINSHTEIN - 7.5.2008, 18:30 |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Объясни, каким образом ты надеешься вытащить поле AID находящееся в таблице AUTHOR из таблицы AUTHORSHIP? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
BORINSHTEIN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Не успел отписать. Это я заметил. написал новое, но что-то опять не пашет (((
Добавлено через 10 минут и 3 секунды При попытке добавить поля в датасет выдает Dynamic SQL Error SQL error code= -104 Token unknown - line 3, column 34 |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Не понимает вот этой конструкции
Добавлено через 55 секунд Это, ты бы структуры привел что ли ![]() Было бы гадать удобнее ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
BORINSHTEIN, а для чего там ";" в конце запроса?
И еще, лучше заменить конструкцию типа select ... from ... where field in (select ...) на обычный join, практически всегда можно.
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
BORINSHTEIN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Fortop, да есть BOOKS и есть AUTHOR. Связь многие ко многим. И есть таблица AUTHORSHIP, в которой поля BID и AID - это ключи из BOOKS и AUTHOR. Вроде бы не все так мудрено, но вот что-то не выходит.
|
|||
|
||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
BORINSHTEIN, если у тебя BOOKS это таки таблица, то возможно стоит делать так?
или так
Это сообщение отредактировал(а) Fortop - 10.5.2008, 11:46 -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
BORINSHTEIN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Ща испытаем =)
![]() Добавлено через 7 минут и 35 секунд Fortop, спасибо. ![]() |
|||
|
||||
BORINSHTEIN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Произошли какие-то косяки (((
В способе с JOIN. Только хотел сменить Active датасета на True, как вышла ошибка Column unknown ASNAME (Фамилия автора). А если использую другой способ то пишет при добавлении полей в датасет Column unknown BOOKS.BID |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
BORINSHTEIN,
в первом способе у тебя данные только из таблицы AUTHOR Во втором (где JOIN), из всех таблиц, но возможно у тебя имеются одинаковые названия столбцов поэтому лучше вместо * явно указать ИМЯ_ТАБЛИЦЫ.ИМЯ_ПОЛЯ для всех данных, которые ты хочешь получить. Добавлено через 2 минуты и 16 секунд Ах, да. В первом способе действительно не найдет BOOKS.BID - используй лучше тот что с JOIN а первый нужно переделать с использованием вложеных подзапросов. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
BORINSHTEIN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Нет, ну конечно BID - это первичный ключ BOOKS, но он так же содержится как внешний ключ в таблице AUTHORSHIP
|
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
BORINSHTEIN, абсолютно ничего непонятно
![]() проверяй все свои запросы в первую очередь в IBExpert, потом уже используй в компонентах. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
BORINSHTEIN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
В наборе данных появились поля. Мне кажется что в наборе данных стоит что-то удалить из этого ?
AID - Идентификатор из Авторов ASNAME - Фам (Авторы). AFNAME - Имя. (Авторы) ALNAME - Отч (Авторы) BID - Идентификатор из Книги AID1 - из таблицы Авторство. (но н так же назывался AID. В наборе данных сдал AID1, видимо из-за повторения) BID1 - из таблицы Книги ( АНАЛОГИЧНО ) BNAME - Название киги BYEAR - Год издания PID - Издатель (Идентификатор. Сменю на лукап) |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
BORINSHTEIN, как я и говорил, попробуй ограничить вывод, явным указанием полей и из какой базы ты берешь.
ИМЯ_ТАБЛИЦЫ.ИМЯ_ПОЛЯ Возможно, это поможет. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
BORINSHTEIN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
мне еще говорили в универе, что возможно так
connst - это какя-то константа, а куда куда и с чем ее есть я так и не понял ![]() |
|||
|
||||
BORINSHTEIN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
И еще странно, выводит не все книги ...
|
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
BORINSHTEIN, естественно.
для того чтобы вывело совсем уж все - используй LEFT OUTER JOIN / RIGTH OUTER JOIN Добавлено через 32 секунды
вместо нее подставишь индекс твоей книги -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
BORINSHTEIN |
|
|||
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
А как в моём случае использовать LEFT OUTER JOIN / RIGTH OUTER JOIN
|
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
BORINSHTEIN,
точно так же как и просто JOIN. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Alessias |
|
|||
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 26.1.2007 Репутация: нет Всего: 2 |
если я правильно понял, тебе надо,чтобы выводило что-то вроде "Автор - книга"
тогда запрос может выглядеть как
еще вопрос - а нужна ли таблица "авторство", не проще ли в каждой книге хранить id автора? Это сообщение отредактировал(а) Alessias - 26.8.2008, 14:11 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |