Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ADO, странное формирование запроса на апдейт. [MSSQL]


Danilka ©   (2005-05-04 13:41:00) 

Просто случайно заметил только-что, еще не разбирался толком как "лечить":
СУБД: MS-SQL.
Имеем таблицу:
create table t_test (
 y1 int identity,
 y2 varchar(10),
 y3 varchar(10),
 y4 int,
 primary key (y1))
На форме - ADOConnection, ADODataset, DataSource и DBGrid.
В гриде изменяем у любой записи значение, например, поля y3, после поста в SQL Profiler видим, что выполняется такой запрос:
exec sp_executesql N'UPDATE "di".."t_test" SET "y3"=@P1 WHERE "y1"=@P2 AND "y3"=@P3', N'@P1 varchar(1),@P2 int,@P3 varchar(1)', '4', 1, '1'
То-есть, в секции WHERE перечислено кроме ключевого поля еще и изменяемое. Почему? Никогда раньше с редактированием в гриде не сталкивался.


Stanislav   (2005-05-04 14:38:00) [1]

Danilka ©   (04.05.05 14:00) [6]
А интересно если поставить серверный курсор, что покажет profiler?


Danilka   (2005-05-04 14:00:00) [2]

Конкретно, помогло вот-это:
ADODataSet1.Properties['Update Criteria'].Value := 0;


Danilka   (2005-05-04 13:59:00) [3]

[2] Stanislav ©   (04.05.05 13:51)
Точно! Помогло, спасибо. :))


sniknik   (2005-05-04 13:58:00) [4]

упс. сорри  не обратил внимания > primary key (y1))


sniknik   (2005-05-04 13:57:00) [5]

create table t_test (
y1 int identity(1, 1) PRIMARY KEY,
y2 varchar(10), ...

проверь так.


Stanislav   (2005-05-04 13:51:00) [6]

Может вам поможет эта ссылка
http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/helloworld/ado02.htm


Danilka   (2005-05-04 13:46:00) [7]

да, забыл написать, ADODataset.CommandText = 'select y1, y2, y3, y4 from t_test'
ну и все компоненты между собой связаны, конечно-же.
:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо