2.2.5 Требования к контрольному примеру

Входными данными для контрольного примера служит информация, извлеченная из следующих документов:

- 2 и более БД от лечебных учреждений города и области

- Часть единой информационной базы данных. Для полноты представления контрольного примера необходимо как минимум 1 000 записей.

Данный объем информации позволяет оценить все возможности системы. Основные требования к контрольному примеру:

- использование реальной информации и в реальных объемах. На этих данных производится контроль полноты и правильность производимых расчетов и сформированных баз данных;

- кроме реально используемой в системе информации в контрольном примере должны быть представлены служебные данные, отражающие поведение аппаратной части АРМ в процессе его функционирования;

- использование таких алгоритмов работы системы при расчете контрольного примера, которые в полной мере отражают все аспекты ее работы;

- данные контрольного примера должны охватывать полную цепочку функциональных задач в рамках технологического процесса обработки информации;

Часть используемых алгоритмов, а также примеры выходных сообщений представлены в приложении.

2.3. Программная реализация

Для оптимальной работы АРМ необходимо использование следующей архитектуры персонального компьютера:

Аппаратные средства:

Компьютер на базе процессора Intel Pentium 3 (1 GHz) или AMD Athlon 1600 XP или выше.

Оперативная память: не менее 256 Mb (рекомендуется 512 Mb) или выше.

Объем жесткого диска: не менее 40 Gb.

Программные средства:

Операционная система Windows 98, NT, 2000, XP

BDE Administrator (прилагается к системе программирования Delphi 7)

Oracle для Windows 98, NT

Система программирования Delphi 7 для устранения возможных ошибок аппаратных или программных средств, а также для возможной модернизации или обновления продукта.

Любая современная СУБД (FoxPro, Clarion, Paradox и др.) позволяющая использовать формат dbf для создания баз данных.

Детальное описание и рисунки блок-схем, отлаженных модулей комплекса задач здесь не приводятся, в приложениях можно увидеть готовые тексты только некоторых из них, т.к. как это уже было сказано выше – эта информация является коммерческой тайной.

Поскольку этот проект реализован на базе прикладных программ, то далее описываются работы, выполненные по их адаптации.

Общие замечания по входному контролю счетов ЛПУ. На начало практики планировалась следующая схема работы этой программы: рано утром автоматически включается ROBOT(сервер), загружается программа обработки счетов ЛПУ и она запускает программу переноса БД полисов на ORACLE. А программа обработки счетов начинает работать автоматически согласно составленному расписанию и проверяя наличие флага отсутствия питания от UPS ( файл C:\POWERFLG\POWER.FLG). Сейчас действует переходный вариант к этой модели работы : при запуске программы обработки счетов ЛПУ устанавливается флаг автоматической обработки, осуществляется проверка запуска переноса БД полисов на ORACLE и если его не было в последние сутки, то он автоматически запускается, а по завершении переноса флаг автоматической обработки снимается.

О проблемах и ошибках программы, а также их устранении.

Контроль счетов поликлиник и стоматологий иногда завершается с ошибкой “Index iN_KART not found…”. При контроле поликлиники эта ошибка была лишь один раз за все время практики, в стоматологии - 2-3 раза в неделю. Похоже эта ошибка BDE при выполнении запросов (DBASE + ORACLE). Как правило это случается при контроле либо большого счета стоматологии, либо большого и маленького счета одновременно. При ручном запуске обработки счетов я стремился в стоматологии подбирать счета примерно одного размера. Если случилась эта ошибка, то обрабатываемые счета из каталога D:\DATA\STO (D:\DATA\AMB) удалить и повторить входной контроль.

Если что-то произошло при переносе счетов на ORACLE (например, компьютер “умер”). В этом случае необходимо удалить с ORACLE те счета, перенос которых был аварийно завершен (из всех четырех таблиц – основной, иногородних жителей, некорректных и услуг(операций)).

Далее необходимо очистить соответствующие таблицы в D:\DATA\TOORA. Это можно сделать программно, но я просто копирую нужные пустые БД из соответствующего каталога. Каталог C:\TODAY\TOORA имеется на моем компьютере и на ROBOT-е. После того, как все следы неудачного переноса удалены, можно повторить перенос.

Если при контроле счетов появилась ошибка “Access violation …” , то повторите контроль счетов, предварительно удалив неудачно обработанные счета. Если ошибка повторяется вновь, то смотрите исходный текст программы.


Заключение

Данный курсовой проект явился завершающим этапом изучения дисциплины «Проектирование информационных систем». Его основная цель состоит в самостоятельной разработке проектных решении, имеющих практическую ценность, а также в их технико-экономическом обосновании. В процессе работы над курсовым проектом во время технико-организационной практики мною были реализовать полученные теоретические знания.

Я стремился к тому, чтобы этот проект был практически реализуем, способствовал совершенствованию управления, выполнялся на конкретных материалах, и мог быть использован на предприятии. И в конечном итоге эта цель была мною достигнута – версия данного проекта принята к сведению в Ивановском отделений ТФОМС и скоро планируется его внедрение. Особенно полезными оказались замечания по поводу существующего способа передачи информации в системе.

В перспективе следует улучшать параметры работы данного продукта как за счет улучшения быстродействия всей системы в целом (замена устаревшего оборудования более новым, создание новых систем передачи информации и т.д.), так и с помощью модернизации кода программных модулей, структуры баз данных и др.

Особое внимание при усовершенствовании системы следует обратить на способы и скорости передачи информации, а также на возможные варианты увеличения производительности всей системы в целом. Следует стремиться к тому, чтобы при максимальных информационных нагрузках на отдельные компьютеры (клиенты) достигались высокие показатели быстродействия.

Поскольку большая часть информации, использующаяся в системе является личной тайной любого гражданина РФ, то необходимо разработать систему по ее защите, а именно: предупреждение несанкционированного доступа к данным, а также их изменение или уничтожение как со стороны «нелегальных» пользователей, так и при сбоях аппаратных или программных средств. Средства и методы защиты информации должны использоваться комплексно с использованием технических и программных средств.

В обязанности администратора системы следует включить работу по обеспечению защиты локальных баз данных, а именно:

- классификация данных;

- определение прав доступа отдельных пользователей и ограничений на характер операций;

- организация системы контроля доступа к данным;

- тестирование средств защиты;

- прочие работы по защите системы.

В дальнейшем следует более полно и комплексно использовать возможности современных операционных систем. Многие функций администратора системы могут быть возложены на операционную систему. А также необходимо переходить от централизованного к распределенному способу обработки данных. Распределенная обработка данных позволяет разместить базу данных в различных узлах компьютерной сети. Таким образом, каждый компонент базы данных располагается по месту наличия техники и ее обработки.


Список использованных источников

1. «Итоги научно-практической конференции, посвященной 10-летию системы обязательного медицинского страхования» - Медицинская газета №44 20.06.2003 Иваново 2003г.

2. «ОМС: реальность и перспективы» - Медицинская газета №68 12.09.2003 Иваново 2003г.

3. «Методические подходы к формированию сочетанных и многоуровневых программ медицинского страхования в современных условиях» - В.В. Петухова, М.В. Айвазова и др. – Санкт-Петербургский институт медицинского страхования М. 2001г.

4. «Работа системы ОМС Ивановской области по реализации программы государственных гарантий обеспечения бесплатной медицинской помощью граждан РФ в 2002 году. Задачи на 2003 год (Сборник научных трудов)» - Территориальный фонд ОМС по Ивановской области, Управление здравоохранения Ивановской области, Ивановская государственная медицинская академия – Иваново 2003г.

5. «Проектирование баз данных (Учебное пособие)» - В.Г. Шишкин – Ивановский государственный университет – Иваново 1999г.

6. «Налоги. 4-е издание (учебное пособие)» - Д.Г. Черник и др. – «Финансы и статистика» - М. 1999г.

7. «Справочное руководство по языку SQL» - Andrew Mendelsohn, Ken Jacobs и др. – Нью-Йорк 1999г.

8. «Руководство администратора базы данных ORACLE» - Sanjay Bulchandani, Dennis Cochran и др. - Нью-Йорк 1996г.

9. «Проектирование баз данных в примерах и задачах» - Т.И. Гусева - М. 1992г.

10. «Компьютерные системы в управлении финансами» - А.П. Колесник - М.: "Финансы и статистика" 1997г.


Приложение №1

Пример распечатки счета в режиме «Стационар»

Лечебное учреждение Родниковская ЦРБ счёт № 01 [стационар]

Дата счёта 05.02.2001

Дата принятия счёта 06.02.2001

Номер карты 999000

Фамилия ВОРОНЦОВ

Имя СЕРГЕЙ

Отчество ЕВГЕНЬЕВИЧ

Адрес Родниковский район г.Родники Мк-н Шагова д.16 кв.53

Дата рождения 29.12.1974

Полис 0

Вид направления Поступил по СМП

Категория работающего Работающий СП

Место работы РУП

Профиль койки Хирургические взросл. Т06.3

Диагноз основной Повреждения кровеносных сосудов, захватывающие несколько областей

тела

Диагноз сопутствующий S21.1 Открытая рана передней стенки грудной клетки

Диагноз осложнения R57.8 Другие виды шока Экстренная, первичная

Госпитализация Экстренная, первичная

Дата поступления 28.12.2000 01.01.2001

Время поступления 22.10

Дата выписки 01.01.2001

Длительность лечения 4

Случай обслуживания Законченный

Исход лечения Летальный исход

Специальность врача ВРАЧ-ХИРУРГ

Стоимость Операции: 429,72

Дата Наименование
28.12.2000 Z38.93 Катетеризация вены др.
28.12.2000 Z46.73 Сшивание разрыва тонкой кишки (кроме 12-перстной кишки)
28.12.2000 Z39.31 Наложение шва на артерии
29.12.2000 Z38.08 Рассечение артерии нижней конечности

Диагноз непосредственной причины смерти:

J81. Легочный отек Диагноз заболевания, обусловивший причину смерти:

ТО6.З Повреждения кровеносных сосудов, захватывающие несколько областей тела Диагноз заболевания, способствовавший смертельному исходу:

R57.8 Другие виды шока Диагноз патологоанатомический:

Т06.3 Повреждения кровеносных сосудов, захватывающие несколько областей тела


Приложение № 2

Пример распечатки счета в режиме «Поликлиника»

Лечебное учреждение Городская клин, б-ца N7 счёт N'87 [поликлиника]

Дата счёта 05.02.2001

Дата принятия счёта 07.02.2001

Фамилия АВЕРЬЯНОВ

Имя БОРИС

Отчество АЛЕКСЕЕВИЧ

Дата рождения 08.07.1926

Полис 372400 4006580726

Адрес г.Иваново ул.Лежневская д.156 кв.18

Категория работающего Пенсионер

Место работы

Повод обращения Лечебно-диагностический

Длительность лечения 11

Диагноз основной l6. Коксартроз [артроз тазобедренного сустава]

Случай обслуживания Законченный

Исход лечения направление к др. врачу

Стоимость 9,2

Доп. Информация к физиотерапевту

Дата Наименование услуги Специальность врача
1 03.01.2001 Лечебно-диагностический приём Врач-хирург
2 09.01.2001 Лечебно-диагностический приём Врач-хирург
3 11.01.2001 Лечебно-диагностический приём Врач-хирург
4 13.01.2001 Лечебно-диагностический приём Врач-хирург

Приложение №3

Пример распечатки счета в режиме «Стоматология»

Лечебное учреждение Городская клин, б-ца N7 счёт № 11 [стоматология]

Дата счёта 05.02.2001

Дата принятия счёта 07.02.2001

Фамилия АНДРИАНОВА

Имя ИРИНА

Отчество АЛЕКСАНДРОВНА

Дата рождения 28.11.1952

Полис 372400 7008281152

Адрес г.Иваново ул.Воронина д.З кв.47

Категория работающего Работающий

Место работы Школа-лицей № 67

Повод обращения лечебно-диагностический

Длительность лечения 1

Случай обслуживания Законченный

Исход лечения выздоровление

Стоимость 2,5

Дата Услуги Стоимость Диагноз
31.01.2001 Осмотр полости рта первичного больного. 0,15
31.01.2001 Сбор анамнеза. 0,15
31.01.2001 Оформление документации первичного больного. 0,2 Кариес зубов не уточненный
31.01.2001 Цементная пломба на две поверхности зуба 2 Кариес зубов не уточненный

СУММА (УЕТ) = 2,5


Приложение №4

Наименование и структура основных справочников.

1. ORACLE:KIS.SVSCHET -справочник сводных счетов ЛПУ

2. ORACLE:SNMDN_ST -справочник видов дневного стационара

3. ORACLE:SNMGRAFIK -справочник графиков дн.стационаров ЛПУ

4. ORACLE:SNMGRUP -справочник группировки ЛПУ.

5. ORACLE:SNMKAT -категории населения при проверке стационара

6. ORACLE:SNMKAT1 -категории населения при проверке поликлиники

7. ORACLE:SNMMKB -справочник диагнозов

8. ORACLE:SNMMKB_N -справочник взаимосвязей поводов и услуг

9. ORACLE:SNMMKB_O -справочник ятрогении

10 ORACLE:SNMNAPRAV -справочник направлений

11. ORACLE:SNMPO_TAR - тарифы поликлиник , работающих по полной программе

12. ORACLE:SNMPO_TAR_C -тарифы поликлиник , работающих по неполной программе

13. ORACLE:SNMST_TAR -тарифы стационаров , работающих по полной программе

14. ORACLE:SNMST_TAR_C -тарифы стационаров, работающих по неполной программе

15. ORACLE:SNMPROFIL -справочник профилей коек

16. ORACLE:SNMSCOB -справочник целей обращения

17. ORACLE:SNMSPR_INV -справочник видов инвалидности

18. ORACLE:SNMSPR_LPU -справочник ЛПУ

19 ORACLE:SNMSPR_OTK -справочник отказов

20. ORACLE:SNMSPUSL -справочник услуг стоматологии

21. ORACLE:SNMSPL -справочник исходов лечения

22. ORACLE:SNMTARIF1 -справочник специальностей врачей

23. ORACLE:SNMUSLUGI -справочник услуг

24. ORACLE:SNMYEAR -календарь работы 6-дн. дневного стационара

25. ORACLE:SNMYEAR_5 -календарь работы 5-дн. дневного стационара

1.ORACLE:KIS.SVSCHET - справочник сводных счетов ЛПУ

KOD_LPU NUMBER(3, 0)Код ЛПУ

VID NUMBER(1, 0)Вид ЛПУ

N_SCH VARCHAR2(10) Номер счета

DT_SCH DATEДата формирования счета

DT_IN DATEДата первичной обработки счета

COUNT NUMBER(6, 0)Количество корректных записей

TOTAL NUMBER(10, 2)Стоимость корректных записей

COUNT_BAD NUMBER(6, 0)Количество некорректных записей

TOTAL_BAD NUMBER(10, 2)Стоимость некорректных записей

DOG_YN NUMBER(1, 0)Признак работы по полной программе

FIRST NUMBER(1, 0)

OMS NUMBER(1, 0)Признак проверки отделом ОМС

MEDEKS NUMBER(1, 0)Признак проверки экспертами

PEO NUMBER(1, 0)Признак обработки счета плановым отделом

ARX NUMBER(1, 0)Признак отправки счета в архив

EKSPERT NUMBER(1, 0)

2. ORACLE:SNMDOGOVOR - ЛПУ, работающие по полной программе

LPU NUMBER(3, 0) Код ЛПУ

DATA DATE Дата заключения договора

3. ORACLE:SNMDN_ST - справочник видов дневного стационара

KOD NUMBER(1, 0) Код вида дневного стационара

PROFIL CHAR(3)Профиль койки

NAIM VARCHAR2(40)Наименование

GRAFIK NUMBER(1, 0) Вид графика

4. ORACLE:SNMGRAFIK - справочник графиков дн.стационаров ЛПУ

KOD_LPU NUMBER(3, 0)Код ЛПУ

VID NUMBER(1, 0)Вид дневного стационара

GRAF NUMBER(1, 0)График дневного стационара

5. ORACLE:SNMGRUP - справочник группировки ЛПУ.

GLAV CHAR(3)Код главного ЛПУ

LPU CHAR(5)Код ЛПУ в символьном формате

LPU_N CHAR(5)Код ЛПУ в числовом формате

PUTH1 VARCHAR2(30)Путь для рассылки

GLN NUMBER(3, 0)Код главного ЛПУ в числовом формате

NLPU NUMBER(4, 0)

RAI NUMBER(3, 0)Код района

SS NUMBER(1, 0)

6. ORACLE:SNMKAT - категории населения при проверке стационара

KATEGOR NUMBER(1, 0) Категория населения

NAIM VARCHAR2(25) Наименование

7. ORACLE:SNMKAT1 - категории населения при проверке поликлиники

KATEGOR NUMBER(1, 0) Категория населения

NAIM VARCHAR2(25) Наименование

8. ORACLE:SNMMKB - справочник диагнозов

GRU NUMBER(3, 0)

KOD VARCHAR2(8)Код диагноза

NAIM VARCHAR2(72)Наименование

HIR CHAR(2)

9. ORACLE:SNMMKB_O - справочник ятрогении

KOD VARCHAR2(8)Код диагноза

NEK NUMBER(2, 0)Код отказа

10. ORACLE:SNMMKB_N - справочник взаимосвязей поводов и услуг

COB NUMBER(1, 0)Код обращения

KOD VARCHAR2(8)Код диагноза

NEK NUMBER(2, 0)Код отказа

FLG NUMBER(1, 0)Флаг

11. ORACLE:SNMNAPRAV - справочник направлений

KOD NUMBER(2, 0) Код направления

NAIM VARCHAR2(40) Наименование

15. ORACLE:SNMPROFIL - справочник профилей коек

KOD CHAR(3) Код профиля койки

NAIM VARCHAR2(30)Наименование

SR_DL NUMBER(5, 2)Средняя длительность

SR_DL1 NUMBER(5, 2)Средняя длительность

16.ORACLE:SNMSCOB - справочник целей обращения

KC NUMBER(2, 0) Код обращения

NC VARCHAR2(25) Наименование

18. ORACLE:SNMSPR_LPU - справочник ЛПУ

KOD_LPU NUMBER(3, 0) Код ЛПУ

NAIM_LPU VARCHAR2(45) Наименование

KOD_TMO NUMBER(2, 0)

VL NUMBER(1, 0)

ADR_LPU VARCHAR2(50)Адрес

FIO_LPU VARCHAR2(20)Руководитель

TEL_LPU VARCHAR2(9)Телефон

KOD_RAY NUMBER(2, 0)Код района

RAS_CH CHAR(20)Расчетный счет

BANK VARCHAR2(50)Наименование банка

GOROD_BN VARCHAR2(25)Город банка

INN VARCHAR2(15)ИНН ЛПУ

OKONX VARCHAR2(10)Код ОКОНХ

OKPO VARCHAR2(8)Код ОКПО

20. ORACLE:SNMSPL -справочник исходов лечения

KRL NUMBER(2, 0) Код исхода лечения

NRL VARCHAR2(30) Наименование

21. ORACLE:SNMTARIF1 - справочник специальностей врачей

KOD NUMBER(3, 0) Код специальности врача

SPEC VARCHAR2(45) Наименование

22. ORACLE:SNMUSLUGI - справочник услуг

KODUSL NUMBER(1, 0) Код услуги

NUSL VARCHAR2(20)Наименование

25. ORACLE:SNMYEAR_5 - календарь работы 5-дн. дневного стационара

YEAR NUMBER(4, 0) Год

MES_1 CHAR(42) 1-й месяц года

MES_2 CHAR(42)2-й месяц года

MES_3 CHAR(42) 3-й месяц года

MES_4 CHAR(42) 4-й месяц года

MES_5 CHAR(42)5-й месяц года

MES_6 CHAR(42)6-й месяц года

MES_7 CHAR(42) 7-й месяц года

MES_8 CHAR(42) 8-й месяц года

MES_9 CHAR(42) 9-й месяц года

MES_10 CHAR(42) 10-й месяц года

MES_11 CHAR(42) 11-й месяц года

MES_12 CHAR(42) 12-й месяц года


Приложение №5

Код основного модуля

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ComCtrls, Buttons, ExtCtrls, RxGrdCpt, Grids, DBGrids,

bdeutils, fileutil, strutils, Db, DBTables, RXCtrls, SpeedBar, vclutils, ToolWin,

ImgList,DBLists;

type

TForm1 = class(TForm)

RxGradientCaption1: TRxGradientCaption;

SpeedBar1: TSpeedBar;

SpeedbarSection1: TSpeedbarSection;

SpeedItem1: TSpeedItem;

ToolBar1: TToolBar;

tbtn1: TToolButton;

tbtn2: TToolButton;

RxGradientCaption2: TRxGradientCaption;

ImageList1: TImageList;

Panel1: TPanel;

Animate1: TAnimate;

Label1: TLabel;

ToolButton1: TToolButton;

RxGradientCaption3: TRxGradientCaption;

Label2: TLabel;

Tbtn3: TToolButton;

procedure FormShow(Sender: TObject);

procedure SpeedItem1Click(Sender: TObject);

procedure ToolButton1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure FormDestroy(Sender: TObject);

private

{ Private declarations }

procedure TblUpdt(s: TDatabaseItems);

public

{ Public declarations }

end;

var

Form1: TForm1;

reg : Byte;

implementation

{$R *.DFM}

uses data1, Data, main;

procedure create_msg(fi: string; n_ch: integer; d: tdatetime;cou, cou_bad: integer; tot, tot_bad: real);

const

str1:AnsiString='Получен счет:';

str2:AnsiString='Счет:';

str3:AnsiString='Дата:';

str4:AnsiString='Результаты автоматичекой проверки:';

str5:AnsiString='Документов без ошибок ';

str6:AnsiString='Документов с ошибками ';

str7:AnsiString='Отдел АИО ТФ ОМС г.Иваново';

str8:AnsiString=' на сумму ';

var f: textFile;

begin

if fileexists(fi) then Exit;

AssignFile(f,fi);

Rewrite(f);

writeln(f,strtooem(str1));

writeln(f,strtooem(str2)+inttostr(n_ch));

writeln(f,strtooem(str3)+DateTimeToStr(d));

writeln(f,strtooem(str4));

writeln(f,strtooem(str5)+IntToStr(cou)+strtooem(str8)+floattostrF(tot, ffFixed,10,2 ));

writeln(f,strtooem(str6)+IntToStr(cou_bad)+strtooem(str8)+floattostrF(tot_bad,ffFixed,10,2));

writeln(f,strtooem(str7));

CloseFile(f);

end;

procedure create_pst(p,fi1,fi2: string);

var f: textFile;

begin

AssignFile(f,fi1);

Rewrite(f);

writeln(f,'PATH:'+p);

writeln(f,'FILE:'+fi2);

writeln(f,strtooem('КТО : decodsch.exe'));

writeln(f,strtooem('ДАТА: '+ datetimetostr(now)));

CloseFile(f);

end;

procedure ChangeLangDrv(drv: string);

var l: TStrings;

begin

Session.Close;

l := TStringList.Create;

l.Add('LANGDRIVER='+drv);

Session.ModifyDriver('DBASE',l);

Session.Open;

l.Free;

end;

procedure kod_lpu(t: TTable);

begin

t.TableName := 'L2'+Copy(t.TableName,3,3)+'.DBF';

t.Open;

if not(t.IsEmpty) then

with dm1.Query1 do begin

Close;

SQL.Clear;

sql.Add('UPDATE AMB_US SET KOD_LPU='+

t.FieldByName('kod_lpu').asstring+' , N_CH='''+

t.FieldByName('n_ch').asstring+''' , DAT_SC='''+

t.FieldByName('dat_sc').AsString+''' WHERE KOD_LPU IS NULL');

ExecSQL;

end;

t.Close;

end;

procedure TForm1.TblUpdt(s: TDatabaseItems);

var t: TTable;

begin

Label1.Caption := 'Идет подготовка таблиц ...'; delay(10);

t := TTable.Create(self);

case reg of

1: t.DatabaseName := 'dbSTA';

2: t.DatabaseName := 'dbAMB';

4: t.DatabaseName := 'dbSTO';

end;

{cоздание БД переносимых LPU и счетов}

if deletefile('d:\data\toORA\z.dbf') then;

with dm1.Query2 do

begin

sql.Clear;

sql.Add('CREATE TABLE "z" (kod_lpu numeric(3),n_ch character(10), dat_sc date, vid numeric(1) )');

Prepare;

ExecSQL;

end;

with s do begin

Open;

First;

while not eof do begin

t.TableName := ItemName;

TableUpdate(t);

Next;

end;

Close;

{Формирование БД переносимых LPU и счетов}

{ если весь счет забракован в ошибки, то усложняется SQL на INSERT в z.dbf }

with dm1.Query2 do

begin

sql.Clear;

case reg of

1: sql.Add('INSERT INTO "z" (kod_lpu, n_ch, dat_sc, vid) select distinct kod_lpu, n_ch, dat_sc, 1 as vid from sta ');

2: sql.Add('INSERT INTO "z" (kod_lpu, n_ch, dat_sc, vid) select distinct kod_lpu, n_ch, dat_sc, 2 as vid from amb ');

4: sql.Add('INSERT INTO "z" (kod_lpu, n_ch, dat_sc, vid) select distinct kod_lpu, n_ch, dat_sc, 4 as vid from sto ');

end;

ExecSQL;

sql.Clear;

case reg of

1: sql.Add('INSERT INTO "z" (kod_lpu, n_ch, dat_sc, vid) select distinct kod_lpu, n_ch, dat_sc, 1 as vid from sta_bad where kod_lpu not in (select distinct kod_lpu from sta) ');

2: sql.Add('INSERT INTO "z" (kod_lpu, n_ch, dat_sc, vid) select distinct kod_lpu, n_ch, dat_sc, 2 as vid from amb_bad where kod_lpu not in (select distinct kod_lpu from amb) ');

4: sql.Add('INSERT INTO "z" (kod_lpu, n_ch, dat_sc, vid) select distinct kod_lpu, n_ch, dat_sc, 4 as vid from sto_bad where kod_lpu not in (select distinct kod_lpu from sto) ');

end;

ExecSQL;

Close;

end;

end;

t.Free;

end;

procedure TForm1.FormShow(Sender: TObject);

begin

Icon := Application.Icon;

ToolBar1.Buttons[0].Down := True;

Label1.Caption := '';

Label2.Caption := '';

try

dm1.dbORA.Connected := True;

except

MessageDlg('Ошибка при подключении к серверу ORACLE(WG73)!', mtWarning, [mbOK], 0);

end;

end;

procedure TForm1.ToolButton1Click(Sender: TObject);

begin

ChangeLangDrv('db866ru0');

Close;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

ChangeLangDrv('db866ru0');

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

ChangeLangDrv('db866ru0');

end;

end.


Информация о работе «Проектирование АРМ сотрудника отдела автоматизации информационного обеспечения Ивановского филиала ФОМС»
Раздел: Информатика, программирование
Количество знаков с пробелами: 56718
Количество таблиц: 10
Количество изображений: 3

0 комментариев


Наверх