Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема при вставке записи с помощью хранимой процедуры [D6, MSSQL]


Страницы:   1 2

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 прочитать, а потом начинать писать хранимки.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо