Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.12;
Скачать: CL | DM;

Вниз

Даные изменились с последнего времени   Найти похожие ветки 

 
evgenij   (2009-05-20 17:59) [0]

Доброго дня.
Вставляю даные в грид-в столбец 1-все ок
потом вставляю в столбец 2 говорит что запись не может быть апдейтнута т.к. даные изменились с последнего времени.....
грид с БД связан через АДОКвери. В БД никаких индексированых полей нет...
Спасибо!


 
sniknik ©   (2009-05-20 18:12) [1]

> В БД никаких индексированых полей нет...
а зря, ключ должен быть по любому...


 
evgenij   (2009-05-20 18:18) [2]

проблема не в этом -ставил ключ - не помогает


 
sniknik ©   (2009-05-20 18:27) [3]

как хочешь.


 
clickmaker ©   (2009-05-20 18:35) [4]

> проблема не в этом -ставил ключ - не помогает

как можно что-либо апдейтить без ключа?


 
Anatoly Podgoretsky ©   (2009-05-20 19:47) [5]


> как можно что-либо апдейтить без ключа?

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

Update Employers set salary = salary * 1/15 WHERE Department = 1

Что тут делать ключу работника?А вот изменение одной записи без ключа сложно и непредсказуемо иногда
WHERE ID=XXX
Без ключа иногда даже перечисление всех полей из запроса SELECT в гриде может дать не тот эффект, изменить более одной записи.


 
Игорь Шевченко ©   (2009-05-20 21:06) [6]


> Update Employers set salary = salary * 1/15 WHERE Department
> = 1


Это неправильный запрос, символы "1/" должны быть срочно убраны.


 
Anatoly Podgoretsky ©   (2009-05-20 21:50) [7]

> Игорь Шевченко  (20.05.2009 21:06:06)  [6]

Да это точка, а не деление.
А что страшно стало или губу расскатал? :-)


 
Игорь Шевченко ©   (2009-05-20 22:06) [8]


> А что страшно стало или губу расскатал?


Невооруженным глазом видно, что запрос неправильный синтаксически :) Это что же за синтаксис позволяет зарплату в 15 раз уменьшить ?


 
Anatoly Podgoretsky ©   (2009-05-20 22:10) [9]

Это что же за синтаксис позволяет зарплату в 15 раз увеличить  - это правильный синтаксис :-)


 
Anatoly Podgoretsky ©   (2009-05-20 22:35) [10]

Страшная эта штука SQL, опечатка и зарплаты нема, другая опечатка и богач.


 
Германн ©   (2009-05-21 00:48) [11]


> Игорь Шевченко ©   (20.05.09 22:06) [8]
>
>
> > А что страшно стало или губу расскатал?
>
>
> Невооруженным глазом видно, что запрос неправильный синтаксически
> :) Это что же за синтаксис позволяет зарплату в 15 раз уменьшить
> ?
>

Это не синтаксис позволяет, это кризис позволяет!
:)


 
Slym ©   (2009-05-21 05:37) [12]

значение полей по умолчанию в ацессе убери...


 
clickmaker ©   (2009-05-21 18:38) [13]

> [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)


 
Anatoly Podgoretsky ©   (2009-05-21 18:54) [14]

> clickmaker  (21.05.2009 18:38:13)  [13]

В таком виде нельзя.


 
Медвежонок Пятачок ©   (2009-05-21 19:02) [15]

С ключом/без ключа - все зависит от контекста.
Если редактируем грид, "вот эту" запись, тогда да, нужен ключ


 
Нат   (2009-05-23 00:10) [16]

видимо, автор вставляет данные не запросом, а непосредственно:
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-23 03:07) [17]


> Впрочем, в данном случае действительно можно апдейтить без
> ключа


вообще-то апдейтить без ключа можно во всех случаях...

Например,

update employees set salary = salary + 100



Страницы: 1 вся ветка

Текущий архив: 2009.07.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
3-1220962765
Николай 2
2008-09-09 16:19
2009.07.12
ненадёжность связи и TpFIBDatabase.Execute


15-1241787570
Nil
2009-05-08 16:59
2009.07.12
Подскажите компонент прогресс в стиле vista


2-1243095504
{RASkov}
2009-05-23 20:18
2009.07.12
Построение дерева


15-1242244143
T&F
2009-05-13 23:49
2009.07.12
Intel оштрафовали на миллиард евро o_O


15-1241797779
Копир
2009-05-08 19:49
2009.07.12
А вот, история! Это Вам не Карамзин. Какой-то Анисимов?