Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-58624
Abikos
2003-09-05 15:14
2003.09.18
Как переключится в окно ???


14-58859
Карлсон
2003-08-30 21:17
2003.09.18
Глюк форума или моего софта?


8-58796
ianus
2003-05-14 22:03
2003.09.18
DelphiX и мерцание экрана


3-58535
Relaxxx
2003-08-28 10:32
2003.09.18
Значения колонки таблицы в ComboBox


1-58645
Olivka
2003-09-05 09:42
2003.09.18
как сделать, чтобы программа перезапустила саму себя





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский