вопрос ученика
От: shtopor  
Дата: 25.08.05 11:34
Оценка:
Привет всем
я новичек, только начинаю изучать sql
mssql 2000, delphi7, ODBC
пишу клиента
на днях сообщили, что клиентских машин будет ~15
заполняю платежку

что делать с блокировками таблиц, как сделать чтоб 15 человек не мешали друг-другу

DECLARE @pol_id int
DECLARE @vid_op int
DECLARE @bic char (9)
DECLARE @corr_acc char (20)
......

set @pol_id=2
select @vid_op=(select pol.vid_id from dbo.pol where pol.pol_id=@pol_id)
select @bic=(select bic from dbo.bank_list where
bic_id=(select bic_id from dbo.pol where pol.pol_id=@pol_id))
select @corr_acc=(select corr_acc from dbo.bank_list where
bic_id=(select bic_id from dbo.pol where pol.pol_id=@pol_id))


BEGIN TRAN
INSERT INTO dbo.op
([user_id],
vid_id,
pol_id,
status_id,
plat_id,
[date],
summa)
VALUES (3, /*user_id*/
@vid_op, /*vid_id*/
@pol_id, /*pol_id*/
1, /*status_id*/
1, /*plat_id*/
GetDate(), /*date*/
1) /*summa*/
SELECT @id_op = (SELECT IDENT_CURRENT('dbo.op'))
SELECT @Num_PayDoc = IsNull(Max(paydoc.Num), 0) FROM dbo.paydoc WITH (TABLOCKX)
WHERE ([date] BETWEEN CONVERT(DATETIME,'2005-08-24 00:00:00', 102)
AND CONVERT(DATETIME, '2005-08-24 23:59:59', 102))
INSERT INTO dbo.paydoc
(op,
num,
[date],
branch_id,
plat_id,
schet_num,
schet_date,
schet_prim1,
schet_prim2,
schet_prim3,
pol_id,
[bic],
[cor_acc],
[bank_name],
.....
VALUES ( @id_op,
@Num_PayDoc + 1,
getdate(),
1,
1,
'test2',
'test2',
'test2',
@pol_id,
@bic,
@corr_acc,
@bank_name,
.........
COMMIT TRAN
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.