|
Вопрос # 4 131/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
есть база mssql
имеющая 4 таблицы c полями .
t1,t2,t3,t4
хочу засунуть все 4 в 1adoquery
заранее благодарен
пробовал так но не работает
 |
Вопрос задал: akum (статус: Посетитель)
Вопрос отправлен: 8 мая 2010, 02:31
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 5; последнее сообщение — 8 мая 2010, 16:58; участников в обсуждении: 3.
|
akum (статус: Посетитель), 8 мая 2010, 02:49 [#1]:
если отделить все таблицы то работает корректно
если делаю по коду что написал выше
просто не отображаются данные введенные рание и не сохраняются нынешнии
|
|
Мережников Андрей (статус: Абитуриент), 8 мая 2010, 09:11 [#2]:
что значит "не сохраняются нынешнии"? Приведенный запрос только читает данные, а не записывает. То, что не видны последние изменения, так этому виной может быть ограничение на первые 50 записей ("top 50"). Надо либо убрать это ограничение, либо использовать order by для определения порядка вывода данных. По умолчанию данные выводятся в произвольном порядке. То, что запрос подобного вида не выполняется совсем может быть наличие в таблицах полей с одинаковыми именами.
|
|
Егор (статус: 10-ый класс), 8 мая 2010, 11:24 [#3]:
1) ну, кавычки-то никто не отменял, наверное?
ADOQuery1.sql.text:='select top 50* from t1,t2,t3,t4';
2) таблицы связаны? если связаны, то нужно явно указывать зависимости. что-нибудь типа такого:
ADOQuery1.sql.text:='SELECT * FROM t4 INNER JOIN (t3 INNER JOIN ' +
'(t2 INNER JOIN t1 ON t2.field1 = t1.field2) ON t3.field1 = t2.field2)' +
' ON t4.field1 = t3.field2;';
Если не указать связи, то вернётся так называемое декартово произведение - думаю, не этот результат нужен?
Кстати, в последнем варианте и не удастся редактировать результаты запроса - т.к. будет возвращён не-"живой" (live) результат.
Но об этом вопрошающий и сам сказал:
Цитата (akum):
не сохраняются нынешнии
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
akum (статус: Посетитель), 8 мая 2010, 14:33 [#4]:
да связь по коду есть один к многим
сейчас попробую как вы сказали
|
|
akum (статус: Посетитель), 8 мая 2010, 16:58 [#5]:
спасибо всем вопрос решен
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|