![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема при вставке записи с помощью хранимой процедуры [D6, MSSQL]
silvestr © (2005-07-13 09:45:00)В общем процедура :
CREATE PROCEDURE update_data (@seans Char(10), @user char(10), @group char(10), @comp char(10),@bron char(10), @uslug char(150),@sotrudnik char(10), @periodi char(10), @acess char(10))
AS
Insert Into Tab_update
Values (@seans,@user,@group,@comp,@bron,@uslug,@sotrudnik,@periodi,@acess)
GO
Вставляет каждый раз новые записи а таблиwe ( т.е добавляет их ) а как сделать чтобы записть происходила в одну строчку например в первую и процедура не добавляла записи а обновляла одну строчку
evvcom (2005-07-13 11:11:00) [21]
> передаю текущее время в формате 12:54:34
с передачей даты/времени в текстовом формате всегда связаны проблемы. Сегодня ее может не быть, а завтра она всплывет. Связано это с региональными настройками. Измени разделитель времени с : на что-нибудь другое и встретишься с проблемой лицом к лицу. Аналогично с датой.
Ega23 (2005-07-13 10:31:00) [22]Если я передаю текущее время в формате 12:54:34 ? проблема будет ?
Для текущего времени есть тип datetime
З.Ы.
Таблица составлена безобразно.
Ega23 (2005-07-13 10:25:00) [23]А, ну да, точно. Where забыл.
Так, автор, я у тебя вижу поле ind. Подозреваю, что это от Identificator.
А почему ты его не вставляешь? И параметром не передаёшь?
silvestr (2005-07-13 10:25:00) [24]> evvcom © (13.07.05 10:21) [9]
Если я передаю текущее время в формате 12:54:34 ? проблема будет ?
evvcom (2005-07-13 10:21:00) [25]
> в базу всё равно добавяються данные а не обновляються
Значит такие данные передаешь. Учти, что, вставив в Char(10) строку '123', а потом результат сравнив с '123', ты получишь false. Потому и вставляются.
> Ega23 © (13.07.05 09:53) [2]
Ты в апдейте where забыл. Но до него дело пока все равно не доходит.
silvestr (2005-07-13 10:19:00) [26]udp_acess то же
udp_acess varchar 10
silvestr (2005-07-13 10:18:00) [27]> Ega23 © (13.07.05 10:12) [6]
Структура таблици :
ind int 4
udp_seans varchar 10
udp_user varchar 10
udp_group varchar 10
udp_comp varchar 10
udp_bron varchar 10
udp_uslug varchar 10
udp_sotrudnik varchar 10
udp_periodi varchar 10
udp_acess
Ega23 (2005-07-13 10:12:00) [28]Структуру таблицы Tab_update в студию!
З.Ы.
Таблица составлена безобразно.
silvestr (2005-07-13 10:08:00) [29]> ANB © (13.07.05 09:58) [3]
Раз так хорошо знаешь то и подскажи !
> Ega23 © (13.07.05 09:53) [2]
Переделал название полей , в базу всё равно добавяються данные а не обновляються :(
CREATE PROCEDURE update_data (@udp_seans Char(10), @udp_user char(10), @udp_group char(10), @udp_comp char(10),@udp_bron char(10), @udp_uslug char(150),@udp_sotrudnik char(10), @udp_periodi char(10), @udp_acess char(10))
AS
declare @X int
Set @X=-1
Select @X=1 from Tab_update where udp_Seans=@udp_seans and udp_User=@udp_user and udp_Group=@udp_group and udp_Comp=@udp_comp
and udp_Bron=@udp_bron and udp_Uslug=@udp_uslug and udp_Sotrudnik=@udp_sotrudnik and udp_Periodi=@udp_periodi and udp_acess=@udp_acess
if @X=-1
Insert Into Tab_update
Values (@udp_seans,@udp_user,@udp_group,@udp_comp,@udp_bron,@udp_uslug,@udp_sotrudnik,@udp_periodi,@udp_acess)
else
Update Tab_update Set
udp_Seans=@udp_seans,
udp_User=@udp_user,
udp_Group=@udp_group,
udp_Comp=@udp_comp,
udp_Bron=@udp_bron,
udp_Uslug=@udp_uslug,
udp_Sotrudnik=@udp_sotrudnik,
udp_Periodi=@udp_periodi,
udp_Acess=@udp_acess
GO
Ega23 (2005-07-13 10:07:00) [30]- гы, смеялся еще раз. Зачем тут человеку пример, если он до сих пор не понимает, что Insert делает. И про апдейт не слышал. И ты еще удивляешься, как таблица безобразно придумана. Орех.
Да так, настроение с утра сегодня хорошее. Работать не хоцца
ANB (2005-07-13 09:58:00) [31]
> Ega23 © (13.07.05 09:53) [2]
- гы, смеялся еще раз. Зачем тут человеку пример, если он до сих пор не понимает, что Insert делает. И про апдейт не слышал. И ты еще удивляешься, как таблица безобразно придумана. Орех.
Ega23 (2005-07-13 09:53:00) [32]
CREATE PROCEDURE update_data (@seans Char(10), @user char(10), @group char(10), @comp char(10),@bron char(10), @uslug char(150),@sotrudnik char(10), @periodi char(10), @acess char(10))
AS
declare @X int
Set @X=-1
Select @X=1 from Tab_update where Seans=@seans and User=@user and Group=@group and Comp=@comp
and Bron=@bron and Uslug=@uslug and Sotrudnik=@sotrudnik and Periodi=@periodi and acess=@acess
if @X=-1
Insert Into Tab_update
Values (@seans,@user,@group,@comp,@bron,@uslug,@sotrudnik,@periodi,@acess)
else
Update Tab_update Set
Seans=@seans,
User=@user,
Group=@group,
Comp=@comp,
Bron=@bron,
Uslug=@uslug,
Sotrudnik=@sotrudnik,
Periodi=@periodi,
Acess=@acess
GO
Хотя это всё жуткая глупость. Таблица составлена безобразно.
ANB (2005-07-13 09:50:00) [33]Гы. А чего ты еще хотел ? Посмотри в словарике слово Insert. И поищи в книжке update. А вообще, сначала надо книжку про SQL прочитать, а потом начинать писать хранимки.