Страница: 1 |
Вопрос: На делфимастер не помогли, может тут помогут | Добавлено: 23.10.05 20:25 |
Автор вопроса: ![]() |
Query1.SQL.Add('UPDATE PCHECK.DB SET PCHECK.DB.Curency = PCHECKNEW.DB.Curency where PCHECK.DB.Cnum = PCHECKNEW.DB.Cnum');
Вот кусок кода который должен брать данные из одного столбца и вставлять в др. Делфи не ругается, но и ничего не делает))). Вб не предлагать. |
Ответы | Всего ответов: 9 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 23 Ответов: 879 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 23.10.05 21:57 |
Как минимум ошибка в команде SET.
1. SET Curency (ограничение на модификацию сразу нескольких таблиц. SET PCHECK.DB.Curency- неверно. 2. Если берешь даныые из другой таблицы наверное их нх нужно получить (Select). 3.Аналогично с where. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #2 | Добавлено: 23.10.05 22:58 |
Вб не предлагать
Выполнением запроса занимается база. И ей глубоко фиолетово, вызывают её из VB или из дельфи. UPDATE PCHECK.DB, PCHECKNEW.DB SET PCHECK.DB.Curency = PCHECKNEW.DB.Curency WHERE PCHECK.DB.Cnum = PCHECKNEW.DB.Cnum Это будет работать в рамках одной базы. Будет ли это работать через две базы, я не знаю. Но для указания положения таблицы в другой базе в SQL используется слово IN. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 271202919 Вопросов: 56 Ответов: 837 |
Профиль | Цитата | #3 | Добавлено: 24.10.05 06:14 |
Выполнением запроса занимается база.
И ей глубоко фиолетово, вызывают её из VB или из дельфи. Я это понимаю. Просто я хотел отмести различный флуд типа делай на Вб, там проще... SET PCHECK.DB.Curency- неверно Почему неверно? делаю Селект PCHECK.DB.Curency отлично работает.
Но для указания положения таблицы в другой базе в SQL используется слово IN. Мне тут посоветовали на ADO сделать. По их мнению сработает.
|
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 23 Ответов: 879 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 24.10.05 06:43 |
Мне тут посоветовали на ADO сделать. По их мнению сработает.
Млин... |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 271202919 Вопросов: 56 Ответов: 837 |
Профиль | Цитата | #5 | Добавлено: 24.10.05 08:34 |
Пробовал АДО. ПИшет:Должен использоваться обновляемый запрос.
Млин...
?? |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 23 Ответов: 879 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 24.10.05 19:00 |
Неважно посредством какой технологии ты работаешь с БД. Будь это BDE или ADO.
Почему нельзя в SET указывать имя таблицы. Потому что по стандарту (ANSI - есть такой стандарт) - этого делать нельзя. Таблица указывается в операторе UPDATE. Правда этого стандарта мало кто придерживается(точнее расширяют возможности языка), но ты работаешь с таблицами dBase - самыми так сказать древними. Я не знаю какая у тебя версия, но возможно такое расширение не поддерживатся. В любом случае лучше писать проще. Для начала напиши простой запрос на обновление(убери пока вторую таблицу).Посмотри как работает и дальше уже можно делать выводы. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 271202919 Вопросов: 56 Ответов: 837 |
Профиль | Цитата | #7 | Добавлено: 24.10.05 19:41 |
Неважно посредством какой технологии ты работаешь с БД. Будь это BDE или ADO.
на самом деле важно и это ты сам же и доказал в своем топике ![]() |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 23 Ответов: 879 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 24.10.05 19:59 |
на самом деле важно и это ты сам же и доказал в своем топике
![]() Что я доказал?????? Проблема то и есть в том чтобы скопировать данные из одного столбца таблицы Х и вставить эти же данные в таблицу У.Пока я не знаю как.
Вот это уже ближе. Пожди чуть позже напишу. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 23 Ответов: 879 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 24.10.05 22:42 |
Vik у меня все нормально работает??
Измени запрос как написал GSerg. Единственное что может быть если дельфи не ругается и ничего не делает, просто логическая ошибка. WHERE PCHECK.DB.Cnum = PCHECKNEW.DB.Cnum
Возможно это условие просто не выполняется? Проверь. Если это не поможет, ну возми бубен и заунывно напевая сделай три круга вокруг компа, да не забудь так мелодии должен совпадать с частотой проца. ![]() |
Страница: 1 |
|