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