МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Организация удаленного доступа к распределенным базам данных

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение BegDate */

    UPDATE Phones

    SET EndDate = new.BegDate

    WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

    END

    END

    /* Изменение EndDate */

    IF (new.EndDate <> old.EndDate) THEN

    BEGIN

    IF (new.EndDate > old.EndDate) THEN

    BEGIN

    /* Расширение EndDate */

    UPDATE Phones

    SET BegDate = new.EndDate

    WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey =

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение EndDate */

    UPDATE Phones

    SET BegDate = new.EndDate

    WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

    END

    END

    /* Сборка мусора */

    DELETE FROM Phones

    WHERE ((BegDate >= new.BegDate) AND (EndDate new.Code));

    END ^

    CREATE TRIGGER Phones_BIH FOR Phones

    BEFORE INSERT POSITION 0

    AS

    BEGIN

    DELETE FROM Phones

    WHERE ((BegDate >= new.BegDate) AND (EndDate old.BegDate) THEN

    BEGIN

    IF (new.BegDate < old.BegDate) THEN

    BEGIN

    /* Расширение BegDate */

    UPDATE PhonesOwners

    SET EndDate = new.BegDate

    WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey =

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение BegDate */

    UPDATE PhonesOwners

    SET EndDate = new.BegDate

    WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

    END

    END

    /* Изменение EndDate */

    IF (new.EndDate <> old.EndDate) THEN

    BEGIN

    IF (new.EndDate > old.EndDate) THEN

    BEGIN

    /* Расширение EndDate */

    UPDATE PhonesOwners

    SET BegDate = new.EndDate

    WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey =

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение EndDate */

    UPDATE PhonesOwners

    SET BegDate = new.EndDate

    WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

    END

    END

    /* Сборка мусора */

    DELETE FROM PhonesOwners

    WHERE ((BegDate >= new.BegDate) AND (EndDate new.Code));

    END ^

    CREATE TRIGGER PhonesOwners_BIH FOR PhonesOwners

    BEFORE INSERT POSITION 0

    AS

    BEGIN

    DELETE FROM PhonesOwners

    WHERE ((BegDate >= new.BegDate) AND (EndDate old.BegDate) THEN

    BEGIN

    IF (new.BegDate < old.BegDate) THEN

    BEGIN

    /* Расширение BegDate */

    UPDATE UslCat

    SET EndDate = new.BegDate

    WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey =

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение BegDate */

    UPDATE UslCat

    SET EndDate = new.BegDate

    WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

    END

    END

    /* Изменение EndDate */

    IF (new.EndDate <> old.EndDate) THEN

    BEGIN

    IF (new.EndDate > old.EndDate) THEN

    BEGIN

    /* Расширение EndDate */

    UPDATE UslCat

    SET BegDate = new.EndDate

    WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey =

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение EndDate */

    UPDATE UslCat

    SET BegDate = new.EndDate

    WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

    END

    END

    /* Сборка мусора */

    DELETE FROM UslCat

    WHERE ((BegDate >= new.BegDate) AND (EndDate new.Code));

    END ^

    CREATE TRIGGER UslCat_BIH FOR UslCat

    BEFORE INSERT POSITION 0

    AS

    BEGIN

    DELETE FROM UslCat

    WHERE ((BegDate >= new.BegDate) AND (EndDate old.BegDate) THEN

    BEGIN

    IF (new.BegDate < old.BegDate) THEN

    BEGIN

    /* Расширение BegDate */

    UPDATE UslDivisions

    SET EndDate = new.BegDate

    WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey =

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение BegDate */

    UPDATE UslDivisions

    SET EndDate = new.BegDate

    WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

    END

    END

    /* Изменение EndDate */

    IF (new.EndDate <> old.EndDate) THEN

    BEGIN

    IF (new.EndDate > old.EndDate) THEN

    BEGIN

    /* Расширение EndDate */

    UPDATE UslDivisions

    SET BegDate = new.EndDate

    WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey =

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение EndDate */

    UPDATE UslDivisions

    SET BegDate = new.EndDate

    WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

    END

    END

    /* Сборка мусора */

    DELETE FROM UslDivisions

    WHERE ((BegDate >= new.BegDate) AND (EndDate new.Code));

    END ^

    CREATE TRIGGER UslDivisions_BIH FOR UslDivisions

    BEFORE INSERT POSITION 0

    AS

    BEGIN

    DELETE FROM UslDivisions

    WHERE ((BegDate >= new.BegDate) AND (EndDate old.BegDate) THEN

    BEGIN

    IF (new.BegDate < old.BegDate) THEN

    BEGIN

    /* Расширение BegDate */

    UPDATE UslProps

    SET EndDate = new.BegDate

    WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey =

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение BegDate */

    UPDATE UslProps

    SET EndDate = new.BegDate

    WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

    END

    END

    /* Изменение EndDate */

    IF (new.EndDate <> old.EndDate) THEN

    BEGIN

    IF (new.EndDate > old.EndDate) THEN

    BEGIN

    /* Расширение EndDate */

    UPDATE UslProps

    SET BegDate = new.EndDate

    WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey =

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение EndDate */

    UPDATE UslProps

    SET BegDate = new.EndDate

    WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

    END

    END

    /* Сборка мусора */

    DELETE FROM UslProps

    WHERE ((BegDate >= new.BegDate) AND (EndDate new.Code));

    END ^

    CREATE TRIGGER UslProps_BIH FOR UslProps

    BEFORE INSERT POSITION 0

    AS

    BEGIN

    DELETE FROM UslProps

    WHERE ((BegDate >= new.BegDate) AND (EndDate old.BegDate) THEN

    BEGIN

    IF (new.BegDate < old.BegDate) THEN

    BEGIN

    /* Расширение BegDate */

    UPDATE Usls

    SET EndDate = new.BegDate

    WHERE ((new.BegDate BETWEEN BegDate AND EndDate) AND (PKey =

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение BegDate */

    UPDATE Usls

    SET EndDate = new.BegDate

    WHERE ((EndDate = old.BegDate) AND (PKey = new.PKey));

    END

    END

    /* Изменение EndDate */

    IF (new.EndDate <> old.EndDate) THEN

    BEGIN

    IF (new.EndDate > old.EndDate) THEN

    BEGIN

    /* Расширение EndDate */

    UPDATE Usls

    SET BegDate = new.EndDate

    WHERE ((new.EndDate BETWEEN BegDate AND EndDate) AND (PKey =

    new.PKey));

    END

    ELSE

    BEGIN

    /* Сужение EndDate */

    UPDATE Usls

    SET BegDate = new.EndDate

    WHERE ((BegDate = old.EndDate) AND (PKey = new.PKey));

    END

    END

    /* Сборка мусора */

    DELETE FROM Usls

    WHERE ((BegDate >= new.BegDate) AND (EndDate new.Code));

    END ^

    CREATE TRIGGER Usls_BIH FOR Usls

    BEFORE INSERT POSITION 0

    AS

    BEGIN

    DELETE FROM Usls

    WHERE ((BegDate >= new.BegDate) AND (EndDate

    #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 *argv)

    {

    DWORD status;

    DWORD specificError;

    ServiceStatus.dwServiceType = SERVICE_WIN32;

    ServiceStatus.dwCurrentState = SERVICE_START_PENDING;

    ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP |

    SERVICE_ACCEPT_PAUSE_CONTINUE;

    ServiceStatus.dwWin32ExitCode = 0;

    ServiceStatus.dwServiceSpecificExitCode = 0;

    ServiceStatus.dwCheckPoint = 0;

    ServiceStatus.dwWaitHint = 0;

    ServiceStatusHandle = RegisterServiceCtrlHandler(

    TEXT("SiTime"),

    ServiceCtrlHandler);

    if (ServiceStatusHandle == (SERVICE_STATUS_HANDLE)0) {

    /* Error Handling */

    return;

    }

    // Initialization code goes here.

    status = ServiceInitialization(argc,argv, &specificError);

    // Handle error condition

    if (status != NO_ERROR) {

    ServiceStatus.dwCurrentState = SERVICE_STOPPED;

    ServiceStatus.dwCheckPoint = 0;

    ServiceStatus.dwWaitHint = 0;

    ServiceStatus.dwWin32ExitCode = status;

    ServiceStatus.dwServiceSpecificExitCode = specificError;

    SetServiceStatus (ServiceStatusHandle, &ServiceStatus);

    return;

    }

    // Initialization complete - report running status

    ServiceStatus.dwCurrentState = SERVICE_RUNNING;

    ServiceStatus.dwCheckPoint = 0;

    ServiceStatus.dwWaitHint = 0;

    if (!SetServiceStatus (ServiceStatusHandle, &ServiceStatus)) {

    status = GetLastError();

    }

    // This is where the service does its work. //

    ServerProcess();

    return;

    }

    /* stub initialization function */

    DWORD ServiceInitialization(DWORD argc, LPTSTR *argv,

    DWORD *specificError)

    {

    *specificError = ServerInit();

    if (*specificError) return *specificError;

    return(0);

    }

    void WINAPI ServiceCtrlHandler ( IN DWORD Opcode)

    {

    DWORD status;

    switch(Opcode) {

    case SERVICE_CONTROL_PAUSE:

    /* Do whatever it takes to pause here. */

    ServerDoPause();

    ServiceStatus.dwCurrentState = SERVICE_PAUSED;

    break;

    case SERVICE_CONTROL_CONTINUE:

    /* Do whatever it takes to continue here.*/

    ServerDoContinue();

    ServiceStatus.dwCurrentState = SERVICE_RUNNING;

    break;

    case SERVICE_CONTROL_STOP:

    /* Do whatever it takes to stop here. */

    ServerDoStop();

    ServiceStatus.dwWin32ExitCode = 0;

    ServiceStatus.dwCurrentState = SERVICE_STOPPED;

    ServiceStatus.dwCheckPoint = 0;

    ServiceStatus.dwWaitHint = 0;

    if (!SetServiceStatus (ServiceStatusHandle, &ServiceStatus))

    {

    status = GetLastError();

    }

    return;

    case SERVICE_CONTROL_INTERROGATE:

    /* fall through to send current status */

    break;

    default:

    /* Error handling */

    break;

    }

    /* Send current status.*/

    if (!SetServiceStatus (ServiceStatusHandle, &ServiceStatus)) {

    status = GetLastError();

    }

    return;

    }

    CommonConfig.c

    Файл CommonConfig.c - Управление конфигурацией

    #include

    #include "CommonConfig.h"

    #include "EventLog.h"

    #define REGVALUENAME_LENGTH 255

    DWORD ConfigWatchingThread;

    HANDLE hConfigMutex = NULL;

    HANDLE hTaskMutex = NULL;

    unsigned char * pszProtocolSequence = "ncacn_np";

    unsigned char * pszSecurity = NULL;

    unsigned char * pszEndpoint = "\\pipe\\CommServ";

    unsigned int cMinCalls = 1;

    unsigned int cMaxCalls = 20;

    unsigned int fDontWait = FALSE;

    struct TASKENTRY TaskTable[TASK_COUNT];

    int EntryCount = 0;

    DWORD TaskThreads[TASK_COUNT];

    int TaskCount = 0;

    void UpdateVariables()

    {

    HKEY hKey;

    DWORD dwIndex = 0;

    DWORD VNameLength = REGVALUENAME_LENGTH;

    char VName[REGVALUENAME_LENGTH];

    DWORD dwLength = sizeof(struct TASKENTRY);

    int i;

    __try {

    WaitForSingleObject(hConfigMutex, INFINITE);

    // Инициализация таблицы задач

    for (i = 0; i < TASK_COUNT; i++) {

    TaskTable[i].Active = FALSE;

    TaskTable[i].ExecTime = 0;

    ZeroMemory(&TaskTable[i].DllName,

    sizeof(TaskTable[i].DllName));

    TaskTable[i].TermProc = NULL;

    TaskTable[i].TaskThread = 0;

    }

    // Загрузка таблицы задач из реестра

    if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,

    REGISTRY_TASKS_PATH,

    0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS) {

    dwIndex = 0;

    EntryCount = 0;

    while (RegEnumValue(hKey,

    dwIndex,

    (char *)&VName,

    &VNameLength,

    NULL,

    NULL,

    (LPVOID)&TaskTable[dwIndex],

    &dwLength) == ERROR_SUCCESS) {

    if (dwLength != sizeof(struct TASKENTRY)) {

    LogEvent(EVENTLOG_ERROR_TYPE, "Invalid Task

    Parameter");

    break;

    }

    EntryCount+=1;

    dwIndex+=1;

    }

    RegCloseKey(hKey);

    } else LogEvent(EVENTLOG_ERROR_TYPE, "Error Loading

    Configuration");

    }

    __finally {

    ReleaseMutex(hConfigMutex);

    }

    }

    DoService.c

    #include

    #include "DoService.h"

    #include "..\Comm.h"

    #include "CommonConfig.h"

    #include "ClientHandler.h"

    #include "EventLog.h"

    #include "ShedulerServ.h"

    void ServerProcess() {

    hConfigMutex = CreateMutex(NULL, FALSE, NULL);

    hTaskMutex = CreateMutex(NULL, FALSE, NULL);

    CreateThread(NULL, 0, ShedulingProc, NULL, 0, &ShedulingThread);

    CreateThread(NULL, 0, RPCClientHandling, NULL, 0,

    &ClientHandlingThread);

    }

    DWORD ServerInit() {

    RPC_STATUS status;

    status = RpcServerUseProtseqEp(

    pszProtocolSequence,

    cMaxCalls,

    pszEndpoint,

    pszSecurity); // Security descriptor

    if (status != NO_ERROR) {

    return(1);

    }

    status = RpcServerRegisterIf(

    CommService_ServerIfHandle, // !!!

    NULL, // MgrTypeUuid

    NULL); // MgrEpv; null means use default

    if (status != NO_ERROR) {

    return(2);

    }

    LogEvent(EVENTLOG_INFORMATION_TYPE, "\"Svyazinform\" Communicatin

    Service Initialized");

    return(0);

    }

    void ServerDoPause()

    {

    SuspendThread(&ShedulingThread);

    SuspendThread(&ClientHandlingThread);

    LogEvent(EVENTLOG_INFORMATION_TYPE, "\"Svyazinform\" Communicatin

    Service Paused");

    }

    void ServerDoContinue()

    {

    ResumeThread(&ShedulingThread);

    ResumeThread(&ClientHandlingThread);

    LogEvent(EVENTLOG_INFORMATION_TYPE, "\"Svyazinform\" Communicatin

    Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.