Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с Update 
:(
    Опции темы
psyco
Дата 22.4.2010, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 6.12.2008

Репутация: нет
Всего: нет



Добрый вечер! Проблема состоит в том, что запрос с использованием Insert работает идеально для меня, а тот самый запрос с Update физически не делает ничего и ошибки не показывает, гад. В моем же случае нужно как раз обновлять данные. 
Вот рабочий пример запроса с Insert:
Код
ADOQuery1.SQL.Text:='INSERT INTO Статистика_картриджей (Код,Название_картриджа,'+
'Приблизительная_операция,Приблизительная_дата_операции,Необходимые_запчасти,Обьемы_тонера) VALUES '+
'("'+DBGridDBFirm.Columns[0].Field.AsString+'","'+DBGridDBFirm.Columns[1].Field.AsString+'",'+
'"'+Column[i]+'","'+DateToStr(ODate.DateResult(StrToDate(DateTS[i]),StrToDate(DateTS[j])))+'",'+
'"'+Parts+'","'+DBGridDBFirm.Columns[5].Field.AsString+'")';

Некоторые столбцы я записываю из переменных, некоторые из грида. Таблица при этом заполняется так, как мне надо и все вроде бы отлично, да вот проблема: если я буду постоянно его использовать, все данные будут накапливатся в этой таблице. И потому мне и нужно запросы с UPDATE. Вот я переписал вышеуказанный пример на UPDATE вариант:
Код
ADOQuery1.SQL.Text:='UPDATE Статистика_картриджей '+
'SET Код="'+DBGridDBFirm.Columns[0].Field.AsString+'",'+
'Название_картриджа="'+DBGridDBFirm.Columns[1].Field.AsString+'",'+
'Приблизительная_операция="'+Column[i]+'",'+
'Приблизительная_дата_операции="'+DateToStr(ODate.DateResult(StrToDate(DateTS[i]),StrToDate(DateTS[j])))+'",'+
'Необходимые_запчасти="'+Parts+'",'+
'Обьемы_тонера="'+DBGridDBFirm.Columns[5].Field.AsString+'"';

При выполнении такого запроса, с таблицей ничего не происходит(по крайней мере я этого не вижу). Может быть дело в том, что я не использую предложение WHERE?Помогите, пожалуйста, буду очень благодарен!

Это сообщение отредактировал(а) psyco - 22.4.2010, 21:51
PM MAIL   Вверх
DarkProg
Дата 22.4.2010, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 1
Всего: 19



Цитата(psyco @  22.4.2010,  21:49 Найти цитируемый пост)
Может быть дело в том, что я не использую предложение WHERE?Помогите, пожалуйста, буду очень благодарен!

Ну а собственно вы же сами ответили на свой вопрос у вас должно обязано быть where ведь запрос с Update можно интерпретировать так
"Обновить таблицу1 установить значения для поля1=значение1 где поле2=значение2 "

ПРосто запрос не знает что ему обновить, ведь должно быть указание на то что обновляем, какую стороку или строки с каким условием.

Добавите where будет работать


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
psyco
Дата 22.4.2010, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 6.12.2008

Репутация: нет
Всего: нет



Цитата

Добавите where будет работать

Ну хоть выяснил в чем дело,спасибо Вам! А в случае если у меня пустая таблица и Update исполняет роль Insert? Т.е. какое можно задать значение(пустое или всегда true'шное), чтобы Update заполнял все поля таблицы?Заранее спасибо!

Это сообщение отредактировал(а) psyco - 22.4.2010, 22:13
PM MAIL   Вверх
DarkProg
Дата 22.4.2010, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


Профиль
Группа: Завсегдатай
Сообщений: 1784
Регистрация: 11.3.2009
Где: Земля

Репутация: 1
Всего: 19



Цитата(psyco @  22.4.2010,  22:11 Найти цитируемый пост)
А в случае если у меня пустая таблица и Update исполняет роль Insert? Т.е. какое можно задать значение(пустое или всегда true'шное), чтобы Update заполнял все поля таблицы?

Update никогда не выполняет роль Insert'a.
Если у вас пустая таблица, то тогда у вас Update сработает но не найдя условия при котором выполнится Where поле=значени, ничего обновлять не будет.
Проверку на пустоту легко сделать
выполнив следующее действие
Код

...Sql.add('Select * from table1.db');
if query.recordcount=0 then showmessage('таблица пустая')

после этого вы легко можете в зависимости от того пустая у вас таблица или нет выполнять Insert  или Update.


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
Vas
Дата 23.4.2010, 07:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 830
Регистрация: 29.6.2005
Где: Stavropol region

Репутация: 23
Всего: 28



UPDATE без where обновление всех записей таблицы. Нихрена он ничего не ищет, а тупо всем записям присвоит значение указанное в запросе и все.
БД какая? Компоненты доступа какие? Как смотрите что запрос не выполняется? После выполнения запроса обновление данных делаете? Транзакции используете? 


--------------------
И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0457 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.