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

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

сложный Update для таблиц FoxPro не проходит [D7, dBase, FoxPro]


reiler ©   (2006-10-23 08:22:00) 

Есть две таблицы FoxPro A, B. Пытаюсь сделать каскадный   Update вылезает ошибка класса EOleException with message
'Command contains unrecognized phrase/keyword'
Мой запрос:
UPDATE A, B
SET A.a1 = B.b1
WHERE A.a2 = B.b2;

Помогите, пожалуйста.


reiler   (2006-10-23 14:55:00) [1]

Спасибо, хоть разъяснили чайнику откуда у него ручка торчит))))), а тож
думал все просто, млин), захотел - сделал, ан нифига. Раскрыли глаз пред
светом Божьим одним словом).


sniknik   (2006-10-23 14:43:00) [2]

> а давай назовем это поточное изменение, если тебе легче будет
использование правильных терминов/названий не легче, а понятнее. давай я тебе буду объяснять каким цветом потолок красить пользуясь собственными, "рандомными" названиями цветов, оттенков... ? а потом естественно неустойку потребую т.к. не в тот цвет покрасил.
кстати, а что такое "поточное изменение"? без умных слов.

> но разве ты не понял суть моего вопроса.
главное чтобы ты сам ее понял, тогда и вопроса не будет...

дельфи это не база данных не sql сервер, нет такого понятия как sql в дельфи, дельфи это язык программирования в котором есть(написаны) компоненты/средства доступа к драйверам/серверам различных баз/движков и в засимости от того к какому подключаешься те правила и действуют, подключился к фокспро смотри справку по нему, к mssql смотри его bol. (есть и встроенные тогда надо смотреть справку непосредственно у компонента).
поэтому
> если я пытаюсь средствами Delphi изменять таблицы Foxpro,
это есть чушь, нет в дельфи таких средств
> драйвер в delphi есть для работы foxpro чего еще надо
нет в дельфи такого драйвера
> другое дело, что я не знаю какие его возможности.
не в нем (дальфи), а в используемом движке к которому подключился, возможности которого надо смотреть там где они есть в его справке/на его форуме...


reiler   (2006-10-23 14:01:00) [3]

Ну что ты заладил, я совета прошу, причем здесь форум по FoxPro? если я пытаюсь средствами Delphi изменять таблицы Foxpro, драйвер в delphi есть для работы foxpro чего еще надо, другое дело, что я не знаю какие его возможности. Каскадное, в том смысле, что менять приходится не одну запись, а каскад или поток записей, а давай назовем это поточное изменение, если тебе легче будет)). Хватит цепляться, для чего форум-то? Я новичок и терминологию, Anatoly Podgoretsky, ты лучше наверно знаешь, я не сомневаюсь, но разве ты не понял суть моего вопроса. Вот ходит по пятам))))


Anatoly Podgoretsky   (2006-10-23 11:20:00) [4]


> да это проходит, но меняется поле только у одной записи.

Значит только одной записи соответствует критерий.


ANB   (2006-10-23 11:03:00) [5]


> reiler   (23.10.06 10:45) [9]
> да это проходит, но меняется поле только у одной записи.
>

а почитать про стандартный оператор update слабо ?


Johnmen   (2006-10-23 11:00:00) [6]

Возможно, надо типа того
UPDATE A SET A.a1 = (SELECT B.b1 FROM B WHERE A.a2 = B.b2)


reiler   (2006-10-23 10:45:00) [7]

да это проходит, но меняется поле только у одной записи.


sniknik   (2006-10-23 10:40:00) [8]

в фокспро (именно фокспро или его драйвере, про localsql не знаю) прошло бы
UPDATE A
SET A.a1 = B.b1
WHERE A.a2 = B.b2


Anatoly Podgoretsky   (2006-10-23 10:00:00) [9]

Ни каскада, ни апдейта В не наблюдается в природе, кроме того кто тебя посылал на MySql идти надо на форум по ФоксПро!!!


Johnmen   (2006-10-23 09:45:00) [10]

Я не понял, а где здесь "каскад"?


reiler   (2006-10-23 09:33:00) [11]

Ну в том -то и дело, что я-то думал пройдет, а из положения никак не выйти?
Мне необходимо такое каскадное обновление в проге.


Sergey13   (2006-10-23 09:29:00) [12]

> [3] reiler   (23.10.06 09:26)

А почему ты решил, что пример с сайта про MySQL (судя по адресу) должен работать с LocalSQL и FoxPro-шными таблицами?


reiler   (2006-10-23 09:26:00) [13]

Нет, этот запрос как раз по природе верен для каскадного обновления одной таблицы данными из другой, смотрел и в книге по БД и по ссылке
http://dev.mysql.com/doc/refman/4.1/en/update.html.Пример перед ссылкойна <Section 13.2.7.1, “JOIN Syntax”>. Но дело в том, что в delphi он не проходит.


Anatoly Podgoretsky   (2006-10-23 09:03:00) [14]

UPDATE A, B сомневаюсь, что такое проходит, но оно бессмысленно по своей природе, в запросе никакой UPDATE B не наблюдается.
Не хочешь сходить в конференцию по ФоксПро, а то эта по Дельфи.


Sergey13   (2006-10-23 08:56:00) [15]

Может так

UPDATE A
SET A.a1 = (select max(B.b1) from B WHERE A.a2 = B.b2);


Наверх

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