Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Организация удаленного доступа к распределенным базам данных

3
              FOREIGN KEY (PKey)
                             REFERENCES UslDivisionsKeys;


ALTER TABLE UslLgots
       ADD CONSTRAINT R_50
              FOREIGN KEY (Property)
                             REFERENCES UslPropsKeys;


ALTER TABLE UslLgots
       ADD FOREIGN KEY (Usl)
                             REFERENCES UslsKeys;


ALTER TABLE UslLgots
       ADD FOREIGN KEY (Category)
                             REFERENCES UslCatKeys;


ALTER TABLE UslProps
       ADD CONSTRAINT R_51
              FOREIGN KEY (PKey)
                             REFERENCES UslPropsKeys;


ALTER TABLE Usls
       ADD CONSTRAINT R_64
              FOREIGN KEY (Division)
                             REFERENCES UslDivisionsKeys;


ALTER TABLE Usls
       ADD FOREIGN KEY (UslType)
                             REFERENCES UslTypes;


ALTER TABLE Usls
       ADD FOREIGN KEY (PKey)
                             REFERENCES UslsKeys;


CREATE PROCEDURE PrGenUslPropsKeys
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genUslPropsKeys, 1);

END ^

CREATE PROCEDURE PrGenUslProps
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genUslProps, 1);

END ^

CREATE PROCEDURE PrGenPhonesRegions
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genPhonesRegions, 1);

END ^

CREATE PROCEDURE PrGenPhonesStations
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genPhonesStations, 1);

END ^

CREATE PROCEDURE PrGenPhonesStreets
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genPhonesStreets, 1);

END ^

CREATE PROCEDURE PrGenPhonesBanks
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genPhonesBanks, 1);

END ^

CREATE PROCEDURE PrGenTalksPay
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genTalksPay, 1);

END ^

CREATE PROCEDURE PrGenTalks
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genTalks, 1);

END ^

CREATE PROCEDURE PrGenNach
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genNach, 1);

END ^

CREATE PROCEDURE PrGenNachBillings
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genNachBillings, 1);

END ^

CREATE PROCEDURE PrGenNachBillDates
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genNachBillDates, 1);

END ^

CREATE PROCEDURE PrGenNachConstUsl
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genNachConstUsl, 1);

END ^

CREATE PROCEDURE PrGenUslDivisions
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genUslDivisions, 1);

END ^

CREATE PROCEDURE PrGenUslLgots
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genUslLgots, 1);

END ^

CREATE PROCEDURE PrGenUslsKeys
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genUslsKeys, 1);

END ^

CREATE PROCEDURE PrGenUsls
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genUsls, 1);

END ^

CREATE PROCEDURE PrGenUslCatKeys
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genUslCatKeys, 1);

END ^

CREATE PROCEDURE PrGenUslCat
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genUslCat, 1);

END ^

CREATE PROCEDURE PrGenPhones
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genPhones, 1);

END ^

CREATE PROCEDURE PrGenPhonesOwnersKeys
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genPhonesOwnersKeys, 1);

END ^

CREATE PROCEDURE PrGenPhonesOwners
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genPhonesOwners, 1);

END ^

CREATE PROCEDURE PrGenSysSettings
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genSysSettings, 1);

END ^

CREATE PROCEDURE PrGenPhonesKeys
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genPhonesKeys, 1);

END ^

CREATE PROCEDURE PrGenPlat
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genPlat, 1);

END ^

CREATE PROCEDURE PrGenPhonesPostStations
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genPhonesPostStations, 1);

END ^

CREATE PROCEDURE PrGenSysLog
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genSysLog, 1);

END ^

CREATE PROCEDURE PrGenUslTypes
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genUslTypes, 1);

END ^

CREATE PROCEDURE PrGenUslDivisionsKeys
RETURNS (ACode INTEGER)
AS
BEGIN
 ACode = GEN_ID(genUslDivisionsKeys, 1);

END ^

  ^


CREATE PROCEDURE TalksExamineOwner (APhoneNmb CHAR(7),  ADate DATE)
RETURNS (APhone INTEGER)
AS
  DECLARE VARIABLE AStreet                INTEGER;

  DECLARE VARIABLE NOwner               INTEGER;

  DECLARE VARIABLE APhoneCode       INTEGER;

BEGIN

 SELECT PKey FROM Phones WHERE (PhoneNmb = :APhoneNmb) AND (:ADate BETWEEN
BegDate AND EndDate)
 INTO :APhone;


 IF (:APhone IS NULL) THEN
  BEGIN

    SELECT NullOwner FROM SysSettings INTO :NOwner;


    SELECT Street FROM PhonesOwners
       WHERE (PKey = :NOwner) AND (:ADate BETWEEN PhonesOwners.BegDate AND
PhonesOwners.EndDate)
    INTO :AStreet;


    IF (:AStreet IS NOT NULL) THEN
      BEGIN
        EXECUTE PROCEDURE PrGenPhonesKeys RETURNING_VALUES :APhone;


        INSERT INTO PhonesKeys (Code)
         VALUES (:APhone);


        INSERT INTO Phones(Owner, PKey, PhoneNmb, Street, InstallDate,
RemoveDate, BegDate, EndDate)
        VALUES (:NOwner, :APhone, :APhoneNmb, :AStreet, :ADate,
"12.12.2222", :ADate, "12.12.2222");


     END
  END
END ^

CREATE PROCEDURE TalksGetTax
AS
BEGIN
 EXIT;

END ^

CREATE PROCEDURE TalksGetPay  (APhone INTEGER,  ADay   DATE,  ACallTime
INTEGER, AHowLong INTEGER)
RETURNS (APay  FLOAT,  ACalculated SMALLINT, IsLgot SMALLINT)
AS
 DECLARE VARIABLE  ATax             FLOAT;

 DECLARE VARIABLE  AProcNach   FLOAT;

 DECLARE VARIABLE  ATalksUsl     INTEGER;

 DECLARE VARIABLE  AOwner        INTEGER;

 DECLARE VARIABLE  ANalog         FLOAT;

BEGIN
 ACalculated = 0;


 SELECT TimeTalksUsl FROM SysSettings INTO :ATalksUsl;

 IF (:ATalksUsl IS NULL) THEN EXIT;


 SELECT Owner FROM Phones WHERE (PKey = :APhone) AND (:ADay BETWEEN BegDate
AND EndDate)
 INTO :AOwner;

 IF (:AOwner IS NULL) THEN EXIT;


 EXECUTE PROCEDURE UslGetOwnerTax(:AOwner, :ATalksUsl, :ADay)
 RETURNING_VALUES :ATax, :AProcNach, :ANalog;


 IF (:ATax IS NULL) THEN EXIT;


  APay = ATax*AHowLong*AProcNach/3000;

  ACalculated = 1;


END ^

CREATE PROCEDURE TalksCallBilling (APhone INTEGER, ACallDate DATE,
ACallTime INTEGER, AHowLong INTEGER)
RETURNS (ATalksPayCode INTEGER, ACalculated SMALLINT)
AS
 DECLARE VARIABLE APay           FLOAT;

 DECLARE VARIABLE PayCode     INTEGER;

 DECLARE VARIABLE IsLgot          SMALLINT;

 DECLARE VARIABLE TTime         INTEGER;

 DECLARE VARIABLE LTime         INTEGER;

BEGIN
 EXECUTE PROCEDURE TalksGetPay(APhone, ACallDate, ACallTime, AHowLong)
 RETURNING_VALUES :APay, :ACalculated, :IsLgot;


 SELECT Code FROM TalksPay WHERE (Phone = :APhone)  AND (CallDate =
:ACallDate)
 INTO PayCode;


 IF (:ACalculated = 0) THEN EXIT;


 IF (:IsLgot = 0) THEN  BEGIN
   TTime = AHowLong;

   LTime = 0;

 END
 ELSE BEGIN
   LTime = AHowLong;

  TTime = 0;

 END

 IF (:PayCode IS NULL) THEN   BEGIN
     EXECUTE PROCEDURE PrGenTalksPay RETURNING_VALUES :PayCode;


      INSERT INTO TalksPay (Code, Phone, CallDate, TotalSum, TotalFullTime,
TotalLgotTime)
      VALUES (:PayCode, :APhone, :ACallDate, :APay, :TTime, :LTime);


  END
  ELSE BEGIN
     UPDATE TalksPay
     SET TotalSum = TotalSum+:APay,
             TotalFullTime = TotalFullTime+:TTime,
             TotalLgotTime = TotalLgotTime+:LTime
      WHERE Code = :PayCode;

  END

END ^

CREATE PROCEDURE UslGetOwnerTax(AOwner INTEGER, AUsl INTEGER, ADate DATE)
RETURNS (ATax               FLOAT,
                   AProcNach     FLOAT,
                   ANalog            FLOAT)
AS
  DECLARE VARIABLE ACategory INTEGER;

BEGIN

 SELECT  Category FROM PhonesOwners
  WHERE (PKey = :AOwner) AND (:ADate BETWEEN BegDate AND EndDate)
  INTO :ACategory;


  SELECT Tax, NachCoeff, Nalog FROM UslLgots
  WHERE (Usl = :AUsl) AND (:ADate BETWEEN BegDate AND EndDate)
  INTO :ATax, :AProcNach, :ANalog;


 EXIT;

END

Приложение 2


[pic]



Приложение 3


Исходные тексты коммуникационного сервиса
ServiceMain.c
Файл ServiceMain.c - Модуль инициализации и управления сервером.

/*************************************************************/
/*           Main unit for Communication Service             */
/*                  Copyright (c) 1997 by Malkov O.V.        */
/*                      JSC "Svyazinform"  RM                */
/*************************************************************/

#include 
#include "DoService.h"
#include "CommonConfig.h"

/* Globals */
SERVICE_STATUS          ServiceStatus;
SERVICE_STATUS_HANDLE   ServiceStatusHandle;

/* Function Prototypes */
void WINAPI ServiceStart (DWORD   argc, LPTSTR  *argv);
VOID WINAPI ServiceCtrlHandler (IN  DWORD opcode);
DWORD ServiceInitialization(DWORD argc, LPTSTR  *argv,
        DWORD  *specificError);


VOID _CRTAPI1 main(int argc, char **argv)
{
      int i;

    SERVICE_TABLE_ENTRY   DispatchTable[] = {
            { TEXT("SiTime"), ServiceStart },
        { NULL,              NULL           }
    };

    /* Allow the user to override settings with command line switches */
    for ( i = 1; i < argc; i++) {
        if ((*argv[i] == '-') || (*argv[i] == '/')) {
               switch (tolower(*(argv[i]+1))) {
                case 'p':  // protocol sequence
                    pszProtocolSequence = argv[++i];
                    break;
                case 'e':  // endpoint
                    pszEndpoint = argv[++i];
                    break;
                default: ;
             }
         }
      }

    if (!StartServiceCtrlDispatcher( DispatchTable)) {
            /* Error Handling */
    }
}

void WINAPI ServiceStart(DWORD   argc, LPTSTR  *a
Пред.1617181920След.
скачать работу

Организация удаленного доступа к распределенным базам данных

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ