![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Даные изменились с последнего времени [D7, Access]
evgenij © (2009-05-20 17:59:00)Доброго дня.
Вставляю даные в грид-в столбец 1-все ок
потом вставляю в столбец 2 говорит что запись не может быть апдейтнута т.к. даные изменились с последнего времени.....
грид с БД связан через АДОКвери. В БД никаких индексированых полей нет...
Спасибо!
Игорь Шевченко (2009-05-23 03:07:00) [1]
> Впрочем, в данном случае действительно можно апдейтить без
> ключа
вообще-то апдейтить без ключа можно во всех случаях...
Например,
update employees set salary = salary + 100
Нат (2009-05-23 00:10:00) [2]видимо, автор вставляет данные не запросом, а непосредственно:
DataSet.Edit...
Проблема в настройке датасета
Немного об использовании ADO в Delphi
( часть 2 ) http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=408
( часть 3 ) http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=413
М.Кэнту
http://www.sql.ru/articles/mssql/2005/122703ADO.shtml
adCriteriaKey, adCriteriaAllCols, adCriteriaUpdCols, adCriteriaTimeStamp...
Медвежонок Пятачок (2009-05-21 19:02:00) [3]С ключом/без ключа - все зависит от контекста.
Если редактируем грид, "вот эту" запись, тогда да, нужен ключ
Anatoly Podgoretsky (2009-05-21 18:54:00) [4]> clickmaker (21.05.2009 18:38:13) [13]
В таком виде нельзя.
clickmaker (2009-05-21 18:38:00) [5]> [5] Anatoly Podgoretsky © (20.05.09 19:47)
>
> > как можно что-либо апдейтить без ключа?
>
> Можно и более того, в некоторых случаях, когда апдейт более
> одной записи за раз, ключ просто не применим, нечего с ним
> делать.
>
> Update Employers set salary = salary * 1/15 WHERE Department
> =
в данном случае Department - тоже ключ, хоть foreign, да хоть и просто константа.
Впрочем, в данном случае действительно можно апдейтить без ключа
Update Employers set salary = salary * 1/15 WHERE salary > 1000000
o)
Slym (2009-05-21 05:37:00) [6]значение полей по умолчанию в ацессе убери...
Германн (2009-05-21 00:48:00) [7]
> Игорь Шевченко © (20.05.09 22:06) [8]
>
>
> > А что страшно стало или губу расскатал?
>
>
> Невооруженным глазом видно, что запрос неправильный синтаксически
> :) Это что же за синтаксис позволяет зарплату в 15 раз уменьшить
> ?
>
Это не синтаксис позволяет, это кризис позволяет!
:)
Anatoly Podgoretsky (2009-05-20 22:35:00) [8]Страшная эта штука SQL, опечатка и зарплаты нема, другая опечатка и богач.
Anatoly Podgoretsky (2009-05-20 22:10:00) [9]Это что же за синтаксис позволяет зарплату в 15 раз увеличить - это правильный синтаксис :-)
Игорь Шевченко (2009-05-20 22:06:00) [10]
> А что страшно стало или губу расскатал?
Невооруженным глазом видно, что запрос неправильный синтаксически :) Это что же за синтаксис позволяет зарплату в 15 раз уменьшить ?
Anatoly Podgoretsky (2009-05-20 21:50:00) [11]> Игорь Шевченко (20.05.2009 21:06:06) [6]
Да это точка, а не деление.
А что страшно стало или губу расскатал? :-)
Игорь Шевченко (2009-05-20 21:06:00) [12]
> Update Employers set salary = salary * 1/15 WHERE Department
> = 1
Это неправильный запрос, символы '1/' должны быть срочно убраны.
Anatoly Podgoretsky (2009-05-20 19:47:00) [13]
> как можно что-либо апдейтить без ключа?
Можно и более того, в некоторых случаях, когда апдейт более одной записи за раз, ключ просто не применим, нечего с ним делать.
Update Employers set salary = salary * 1/15 WHERE Department = 1
Что тут делать ключу работника?А вот изменение одной записи без ключа сложно и непредсказуемо иногда
WHERE ID=XXX
Без ключа иногда даже перечисление всех полей из запроса SELECT в гриде может дать не тот эффект, изменить более одной записи.
clickmaker (2009-05-20 18:35:00) [14]> проблема не в этом -ставил ключ - не помогает
как можно что-либо апдейтить без ключа?
sniknik (2009-05-20 18:27:00) [15]как хочешь.
evgenij (2009-05-20 18:18:00) [16]проблема не в этом -ставил ключ - не помогает
sniknik (2009-05-20 18:12:00) [17]> В БД никаких индексированых полей нет...
а зря, ключ должен быть по любому...