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

Вниз

При выполнении запроса UPDATE данные в таблице не обновляются   Найти похожие ветки 

 
Rat   (2003-08-26 17:00) [0]

Доброго времени суток!
Подскажите пожалуйста решение моей проблемы:
При выполнении запроса SQL такого вида:
UPDATE MyTable
SET MyField0=:NewField0
********
********
MyField17=:NewField17
WHERE ID=:NewID
Данные не обновляются.
Параметры беру с Edit.Text а последний с DbText.Field.AsString
В DbTExt - результаты выполнения предидущего запроса на поиск.
При этом данный квури выполняется но данных не обновляет.
Плз помогите как быть.....


 
Reindeer Moss Eater ©   (2003-08-26 17:03) [1]

Нет записей, удовлетворяющих условию WHERE


 
Rat   (2003-08-26 17:12) [2]

Спасибо за ответ!
Нет, данные есть, они берутся из результатов поиска предидущего
запроса, хотя я не уверен, что это правильно
Параметр :NewID берется с DbTExt.Field.AsString а перед этим
этому DbText присвоено значение этого самого ID


 
Reindeer Moss Eater ©   (2003-08-26 17:18) [3]

Параметр :NewID берется с DbTExt.Field.AsString а перед этим
этому DbText присвоено значение этого самого ID


Ну и что?
Присвоение значения какому-то параметру - гарантия наличия записей в БД?
Нет!


 
Vlad ©   (2003-08-26 17:22) [4]

Напиши код, как вобще все происходит.


 
Rat   (2003-08-26 17:23) [5]

Спасибо еще раз!!
Тогда не подскажете как можно этому :NewID присвоить значение
ID из результатов поиска?


 
Reindeer Moss Eater ©   (2003-08-26 17:29) [6]

Ты лучше скажи, как было установлено то, что данные не обновляются?


 
Rat   (2003-08-26 17:29) [7]

Текст запроса:
UPDATE dbo.Equipment

SET [Device Type] =:NewType ,
Manufacturer =:NewMan ,
[Device Model]= :NewModel ,
[Device SN] =:NewSn,
[Dealers Name]=:NewDeal,
[Target Org. name]=:NewTar,
[Contract supply N]=:NewN,
[Device Designation]=:NewDes,
[Video interface]=:NewVid,
[Audio interface]=:NewAud,
[Control inerface]=:NewCont,
[sync interface]=:Newsync,
[Universal Interface]=:NewUni,
[Clip kind]=:NewClip

WHERE [Equipment UID]=:NewEWUID
Вызов:
DataModule2.Save1.Close;
DataModule2.Save1.Params[0].AsString:=ComboBox1.Text;
DataModule2.Save1.Params[1].AsString:=Edit1.Text;
DataModule2.Save1.Params[2].AsString:=Edit2.Text;
DataModule2.Save1.Params[3].AsString:=Edit3.Text;
DataModule2.Save1.Params[4].AsString:=Edit4.Text;
DataModule2.Save1.Params[5].AsString:=Edit5.Text;
DataModule2.Save1.Params[6].AsString:=Edit6.Text;
DataModule2.Save1.Params[7].AsBlob:=Memo1.Text;
DataModule2.Save1.Params[8].AsString:=ComboBox2.Text;
DataModule2.Save1.Params[9].AsString:=ComboBox3.Text;
DataModule2.Save1.Params[10].AsString:=ComboBox4.Text;
DataModule2.Save1.Params[11].AsString:=ComboBox7.Text;
DataModule2.Save1.Params[12].AsString:=ComboBox5.Text;
DataModule2.Save1.Params[13].AsString:=ComboBox6.Text;
DataModule2.Save1.Params[14].AsString:=DBText1.Field.AsString;
DataModule2.Save1.Open;

Перед этим выполняется запрос:
SELECT * FROM dbo.Equipment

WHERE
[Equipment UID]=:NewUid or [Device Type] =:NewType or Manufacturer =:NewMan
or [Device Model]= :NewModel or [Device SN] =:NewSn or [Dealers Name]=:NewDeal
or [Video interface]=:Vid or [Audio Interface]=:Aud or [Control Interface]=:Con
or [Sync Interface]=:Sync or [Universal Interface]=:Uni or [Clip Kind]=:NewKind


 
Rat   (2003-08-26 17:31) [8]

Я смотрел таблицу через SQL Entrprise manager после выполнения запроса


 
Rat   (2003-08-26 17:32) [9]

Через ExecSQL тоже пробовал - ничего


 
Reindeer Moss Eater ©   (2003-08-26 17:32) [10]

Я смотрел таблицу через SQL Entrprise manager после выполнения запроса

То есть смотрел не в той транзакции которая делала Update и не сделала Commit?


 
Rat   (2003-08-26 17:33) [11]

Спасиба! Верно подмечено!


 
Rat   (2003-08-26 17:45) [12]

Подмечено верно,но резкльтата никакого все равно!


 
Reindeer Moss Eater ©   (2003-08-26 17:46) [13]

[1]


 
Rat   (2003-08-26 18:01) [14]

Пробовал определить эти условия путем присвоения
DataModule2.Save1.Params[14]:="1"
что соответсвует ID=1 - результата нет.


 
Rat   (2003-08-26 18:02) [15]

Сорри DataModule2.Save1.Params[14].AsString я хотел сказать


 
sniknik ©   (2003-08-26 18:18) [16]

сделай так, для уверенности.
DataModule2.Save1.Params.ParamByName("NewEWUID").asInteger:= 1;


 
Rat   (2003-08-26 18:47) [17]

Спасибо, но не работает.


 
Reindeer Moss Eater ©   (2003-08-26 18:53) [18]

Выполни свой запрос в SQL Analyzer"e и убедись наконец, что он говорит тебе: "столько-то rows affected"
А уж потом будем разговаривать.


 
ZrenBy ©   (2003-08-26 18:55) [19]

Хм.

Попробуй первой строчкой в запросе поставить

set nocount on

а последней

select RC = @@rowcount

квери сделай Open и посмотри что вернуло


 
Rat   (2003-08-26 19:13) [20]

Через Analiser все работает но так нет...


 
Reindeer Moss Eater ©   (2003-08-26 19:15) [21]

Подмечено верно,но резкльтата никакого все равно!

Так ты коммит-то сделал или куда?


 
MOA ©   (2003-08-26 19:16) [22]

Посмотрите SQL Profiler, какой запрос попадает на сервер - думается, ситация сразу проясниться.
Удачи!


 
Rat   (2003-08-26 19:24) [23]

Commit сделал - ничего


 
Reindeer Moss Eater ©   (2003-08-26 19:24) [24]

Если все что ты говоришь - правда, то тебе надо менять все микросхемы на компьютере.


 
Rat   (2003-08-26 19:28) [25]

Не работает только с параметрами
Если указать вместо параметров значения какие нить, то тогда все работает, а если присваивать параметрам значения из например ComboBox то нет.


 
ZrenBy ©   (2003-08-26 19:30) [26]

>>Rat (26.08.03 19:28) [25]

Очень дельный совет - MOA © (26.08.03 19:16) [22]


 
Reindeer Moss Eater ©   (2003-08-26 19:33) [27]

Если указать вместо параметров значения какие нить, то тогда все работает, а если присваивать параметрам значения из например ComboBox то нет.

For the millionth and the last time .... /Елвис/
Тебе же говорят, что условие WHERE не выполняется!


 
Rat   (2003-08-26 19:43) [28]

For the millionth and the last time
Все таки прав ты был дружищще - не выполняется
Тогда если не трудно подскажи каким образом из результатов выполнения запроса вырвать все таки содержание одной ячейки
найденного поля?



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

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

Наверх




Память: 0.53 MB
Время: 0.025 c
6-58798
Noro
2003-07-17 22:06
2003.09.18
Передача данных: Клиент-Сервер, Сервер-Клиент


14-58915
race1
2003-08-28 11:59
2003.09.18
реклама


1-58611
DelphiNew
2003-09-08 14:58
2003.09.18
Чувствительность к регистру


1-58754
aleksei85
2003-09-06 14:10
2003.09.18
номер верхней строки в RichEdit


6-58807
DimaS
2003-07-17 13:45
2003.09.18
Как зная название учетной записи, запустить виндовый диалог соед.