Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка при запросе [D7, Paradox]


Bogdan ©   (2005-02-12 12:12:00) 

Здравствуйте. Вот такая проблема, непойму почему выдает ошибку Field 'p1' not Found. При запросе:
SELECT*
FROM tab1
INNER JOIN "Name1.DB"Name1
ON(Tab1.Name1ID=Name1.ID)
WHERE Name1ID=:p1
Параметру p1 присвоил тип данных ftInteger
Буду благодарен за ответ.


Bogdan   (2005-02-12 18:56:00) [1]

>Desdechado ©  

Спасибо! Все О!!!кей.


Desdechado   (2005-02-12 18:22:00) [2]

попробуй так, а то с Inner join как-то коряво:
SELECT t.*, name1.* FROM tab1 t, "Name1.DB" Name1
WHERE t.Name1ID=:p1 AND T.Name1ID = Name1.ID

Но даже в твоем варианте должно работать. Попробуй с нуля кинуть Query на форму и настроить в нем все. Имхо, ты во время экспериментов что-то где-то ткнул и забыл убрать.


Bogdan   (2005-02-12 18:15:00) [3]

>что такое связанное поле? если lookup (подставное), то сервер о нем не знает, посему и ошибка

NameID ключ записи из таблицы Name1.DB
INNER JOIN "Name1.DB"Name1
ON(Tab1.Name1ID=Name1.ID)


Desdechado   (2005-02-12 18:06:00) [4]

что такое связанное поле? если lookup (подставное), то сервер о нем не знает, посему и ошибка


Bogdan   (2005-02-12 17:23:00) [5]

Может связаному полю вообще нельзя присвоить параметр???


Bogdan   (2005-02-12 17:05:00) [6]

>наверно NameID - число, а Name - строка?
тогда результат зависит от того, что присваиваешь

В первом случае параметру присваивал ftInteger-выдает ошибку,хотя поле NameID типа Integer

Во втором присваивал ftString-все нормально, запрос работает.


Desdechado   (2005-02-12 16:48:00) [7]

наверно NameID - число, а Name - строка?
тогда результат зависит от того, что присваиваешь


Bogdan   (2005-02-12 16:34:00) [8]

Опять проблема, выдает ошибку Type mismatch in expression.
Select*
From Tab1
Where NameID=:p1 по связаному полю
если делать запрос по другой таблице
Select*
From Tab2
Where Name=:p1 все нормально


Desdechado   (2005-02-12 15:20:00) [9]

тип присвоил, а значение не забыл?


YurikGL   (2005-02-12 13:28:00) [10]

Если не ошибаюсь, подобные ошибки возникают, когда у датасета уже есть созданные поля и они не соответсвуют запросу. Т.е. если однажды в датасете в дезигн-моде задали запрос типа slect p1 from...., потом active:=true, дважды кликаем на датасет и в появившемся поле говорим "Add all fields" (в списке появляется только p1), а после всего этого меняем наш запрос на другой и снова пытаемся active:=true то получаем ошибку "Field 'p1' not Found"


Наверх

Титульная страница Поиск, карта сайта Написать письмо