Вниз
Скачать: CL | DM;

ADO, странное формирование запроса на апдейт.   Найти похожие ветки 

← →
Danilka ©   (2005-05-04 13:41) [0]

Просто случайно заметил только-что, еще не разбирался толком как "лечить":
СУБД: 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 перечислено кроме ключевого поля еще и изменяемое. Почему? Никогда раньше с редактированием в гриде не сталкивался.


← →
Danilka ©   (2005-05-04 13:46) [1]

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


← →
Stanislav ©   (2005-05-04 13:51) [2]

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


← →
sniknik ©   (2005-05-04 13:57) [3]

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

проверь так.


← →
sniknik ©   (2005-05-04 13:58) [4]

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


← →
Danilka ©   (2005-05-04 13:59) [5]

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


← →
Danilka ©   (2005-05-04 14:00) [6]

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


← →
Stanislav ©   (2005-05-04 14:38) [7]

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



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

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.974 c
1-1117423021
FANAT
2005-05-30 07:17
2005.06.14
Количество строк


14-1116714977
лак
2005-05-22 02:36
2005.06.14
Разреженный вектор


6-1111590160
bober
2005-03-23 18:02
2005.06.14
подключение диска


14-1116953519
Vulko
2005-05-24 20:51
2005.06.14
Как искуственно вызвать исключение на c++?


14-1116854832
msguns
2005-05-23 17:27
2005.06.14
Ну как дети малые...




   Наверх