use MyFuckingBase--
название SQL базы,
в которой создается РБД if OBJECT_ID(
'_1SUPDTS')
is not null drop table _1SUPDTS go if OBJECT_ID(
'_1SDBSET')
is not null drop table _1SDBSET go if OBJECT_ID(
'_1SDWNLDS')
is not null drop table _1SDWNLDS go Create table _1SUPDTS(
DBSIGN CHAR( 3 ) NOT
NULL,
TYPEID INTEGERNOT
NULL,
OBJID CHAR( 9 ) NOT
NULL,
DELETED CHAR( 1 ) NOT
NULL,
DWNLDID CHAR( 9 ) NOT
NULL)
goIf
not exists(
select*
from sysindexes where name=
'PK__1SUPDTS' and id=
object_id(
'_1SUPDTS'))
Alter table _1SUPDTS add constraint PK__1SUPDTS PRIMARY KEY CLUSTERED(
DBSIGN,
TYPEID,
OBJID)
goIf
not exists(
select*
from sysindexes where name=
'DID' and id=
object_id(
'_1SUPDTS') )
Create UNIQUE index DID on _1SUPDTS(
DWNLDID,
DBSIGN,
TYPEID,
OBJID)
go Create table _1SDBSET(
DBSIGN CHAR( 3 ) NOT
NULL,
DBDESCR CHAR( 40 ) NOT
NULL,
DBSTATUS CHAR( 1 ) NOT
NULL,
DBUUID CHAR( 36 ) NOT
NULL,
DBFMODE TINYINTNOT
NULL,
DBFNCP CHAR( 64 ) NOT
NULL,
DBFNPC CHAR( 64 ) NOT
NULL,
DBFAUTO TINYINTNOT
NULL,
DBRECPT TINYINTNOT
NULL,
EMAILFLGS TINYINTNOT
NULL,
EMAIL CHAR( 64 ) NOT
NULL,
PSW CHAR( 32 ) NOT
NULL)
goIf
not exists(
select*
from sysindexes where name=
'PK__1SDBSET' and id=
object_id(
'_1SDBSET'))
Alter table _1SDBSET add constraint PK__1SDBSET PRIMARY KEY CLUSTERED(
DBSIGN)
goIf
not exists(
select*
from sysindexes where name=
'IDBSTATUS' and id=
object_id(
'_1SDBSET') )
Create UNIQUE index IDBSTATUS on _1SDBSET(
DBSTATUS,
DBSIGN)
go Create table _1SDWNLDS(
DWNLDID CHAR( 9 ) NOT
NULL,
DBSIGN CHAR( 3 ) NOT
NULL,
DIRECT CHAR( 1 ) NOT
NULL,
ACKNOWL CHAR( 1 ) NOT
NULL)
goIf
not exists(
select*
from sysindexes where name=
'PK__1SDWNLDS' and id=
object_id(
'_1SDWNLDS'))
Alter table _1SDWNLDS add constraint PK__1SDWNLDS PRIMARY KEY CLUSTERED(
DWNLDID)
goIf
not exists(
select*
from sysindexes where name=
'IDBSIGN' and id=
object_id(
'_1SDWNLDS') )
Create UNIQUE index IDBSIGN on _1SDWNLDS(
DBSIGN,
DWNLDID)
goIf
exists(
select*
from sysobjects where id=
object_id(
'_1sp_RegisterUpdate')
and sysstat& 0
xf= 4)
Drop procedure _1sp_RegisterUpdate go Create procedure _1sp_RegisterUpdate(
@p1 CHAR(3),
@p2 INTEGER,
@p3 CHAR(9),
@p4 CHAR(1))
AS set nocount on update _1SUPDTS set DELETED=
@p4,
DWNLDID=
' ' where DBSIGN=
@p1 and TYPEID=
@p2 and OBJID=
@p3 if @@ROWCOUNT=0
insert into _1SUPDTS values(
@p1,
@p2,
@p3,
@p4,
' ')
goIf
exists(
select*
from sysobjects where id=
object_id(
'_1sp__1SDBSET_TLock')
and sysstat& 0
xf= 4)
Drop procedure _1sp__1SDBSET_TLock go Create procedure _1sp__1SDBSET_TLock AS set nocount on declare @i integer select @i=1
from _1SDBSET(
TABLOCK HOLDLOCK)
where0=1
goIf
exists(
select*
from sysobjects where id=
object_id(
'_1sp__1SUPDTS_TLock')
and sysstat& 0
xf= 4)
Drop procedure _1sp__1SUPDTS_TLock go Create procedure _1sp__1SUPDTS_TLock AS set nocount on declare @i integer select @i=1
from _1SUPDTS(
TABLOCK HOLDLOCK)
where0=1
goIf
exists(
select*
from sysobjects where id=
object_id(
'_1sp__1SDWNLDS_TLock')
and sysstat& 0
xf= 4)
Drop procedure _1sp__1SDWNLDS_TLock go Create procedure _1sp__1SDWNLDS_TLock AS set nocount on declare @i integer select @i=1
from _1SDWNLDS(
TABLOCK HOLDLOCK)
where0=1
go--
далее идет пример с даннымиНЕ
ДЛЯ ВАШЕЙ базы,
в комментариях написано где их взять--
пример составлен для периф.
базы со статусом"не только получатель"
и автонумерацией пакетов Update _1SSYSTEM Set DBSIGN=
'П35'--
код базы,
находится в списке баз центра,
_1SDBSET поле DBSIGN,
DBSETUUID=
'EDB286ED-4
E93-49
CD-9
CF5-
E5F8D1F6BE21'--
уид,
находится в центральной базе,
_1SSYSTEM поле DBSETUUID go Insert into _1SDBSET values(
'П35', --
код периф.
базы 'Магазин №35,
Минск,
ул.
Ленина, 10
', --
название периф.
базы 'M', --
статус 'A73535C6-2
D44-484
C-
B64F-048
A4779CB44', --
уид периф.
базы(
центральная база,
_1SDBSET поле DBSETUUID соответсвующей базы) 3, --
режим 'P358.
zip', --
имя файла обмена(
посмотреть в настройках центра или в _1SDBSET)
'P359.
zip', --
имя файла обмена0, 0, 0,
'',
'')
go Insert into _1SDBSET values(
'ЦБ1', --
код центральной базы 'Центральная база', --
название центральной базы 'P', --
статус '0349
D130-87
F6-43
F0-
A94D-61
E46D176F5D', --
уид центральной базы(
центральная база,
_1SDBSET поле DBSETUUID центральной базы) 0, --
режим '',
'', 0, 0, 0,
'',
'')
go--
в случае если обмены уже производились,
но данные потеряны,
выполняем следующее: Insert into _1SDWNLDS values(
'1
UBRП35', --
открыть в последнем пакете,
который ушел из периф.
базы,
файл1
cv77Dld.
id--
и взять последнее значение файла(
число перед чертой),
затем перевести в строку функцией _IdToStr(), --
в данном случае85959
|П35.
обязательны лидирурующие пробелы,
общая длина9
символов(
!) --
посмотреть можно и в таблице _1SDWNLDS центральной базы(
select*
from _1SDWNLDS where dbsign=
'П35' and direct=
'I')
'ЦБ1', --
код центральной базы 'O', --
направление '')
go
Если данную задачу самостоятельно выполнить не удалось - пишите письма
Комментарии и отзывы приветствуются
Оригинал статьи