Форум: "Базы";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
ВнизПри выполнении запроса 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;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.01 c