Научно - Информационный портал



  Меню
  


Смотрите также:



 Главная   »  
страница 1 страница 2

Всевозможные типы полей СУБД Paradox





Тип поля

Обозначение

Хранимые значения

Alpha

A

Символьные значения длиной до 255 символов.

Number

N

Числовые значения с плавающей точкой в диапазоне -10307...+10308. Точность до 15 значащих цифр.

Money

$

Аналогичен типу Number, но предназначен для хранения денежных сумм. Число знаков после запятой по умолчанию - При показе значения выводится знак денежной единицы.

Short

S

Целочисленные значения в диапазоне -32 767..32 767.

LongInteger

I

Целочисленные значения в диапазоне -2 147 483 648 .. 2 147 483 647.

BCD

#

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

Date

D

Значения даты (в диапазоне от 01.01.9999 до н.э. до 31.12.9999).

Time

Т

Значения времени.

Timestamp

@

Значения даты и времени.

Memo

M

Строковые значения длиной более 255 символов. Максимальная длина не ограничена. От 1 до 240 символов могут храниться вместе с таблицей БД; остальные хранятся в виде Memo-файла (расширение .MB)

Formatted Memo

F

Аналогично мемо-полю, но может хранить форматированные тексты, в которых фрагменты текста представлены разным шрифтом, цветом и стилями.

Graphic Fields

G

Графические изображения в формате файлов BMP, .PCX, .TIF, .GIF, .EPS, которые при хранении преобразуются к формату. BMP. Хранятся отдельно от основной таблицы БД.

OLE

О

Информация в форматах, поддерживаемых технологией OLE (Object Linking and Embedding) фирмы Microsoft

Logical

L

Логические значения ("True", "False"). Высота 5укв не имеет значения

Autoincrement

±

Автоинкрементное поле. Значения доступны только для чтения. Обычно - ключевое поле в составе первичного ключа. При добавлении новой записи значение поля вычисляется автоматически таким образом, чтобы в одной и той же таблице не было одинаковых значений. Значения поля из удаленных записей повторно не используются

Binary

В

Произвольные двоичные значения. Должны интерпретироваться приложениями пользователя. DBD не интерпретирует значения этих полей. Хранятся в отдельных от основной таблицы .МВ -файлах. Длина не определена

Bytes

Y

Произвольные двоичные значения, интерпретируемые приложениями пользователя, длиной от 1 до 240 байт. Хранятся вместе с таблицей БД.


Рис. 8 Типы полей СУБД Paradox



Рис. 9. Определение структуры таблицы Material


Рис. 10. Окно сохранения таблицы


Рис. 11. Содержимое таблицы Materialy - записи еще не введены



Рис. 12. Структура таблицы Prihod


Рис. 13. В правой части окна появился элемент Secondary Indexes.


Рис. 14. Определение полей, входящих в состав индекса



Рис. 15. Окно сохранения индекса



Рис. 16. Список индексов, определенных для таблицы Prihod


Рис. 17. Окно для создания ссылочной целостности




Рис. 18. Определение условий ссылочной целостности


Рис. 19. Список индексов таблицы Prihod после создания ссылочной целостности


Рис. 20. Палитра компонентов Delphi


Рис. 21. Вид формы на этапе разработки



Рис. 22. Вид формы №3 во время выполнения



Рис. 23. Форма с родительским и дочерними наборами данных во время разработки



Рис. 24. В подчиненном наборе данных показываются записи, связанные с текущей записью в родительском НД



Рис. 25. Окно установки значения свойства MasterFields


Рис. 26. Связь Master-Detail - в дочернем наборе данных

показываются только подчиненные записи


Рис. 27. Форма с визуальными компонентами для работы

с полями текущей записи набора данных


Рис. 28. Добавление новой записи


Рис. 29. Окно подтверждения удаления записи

а) б) в)

Рис. 30. Работа с редактором полей: а) пустой список редактора полей:

б) добавление полей; в) заполненный список редактора полей.


Рис. 31. Состав полей DBGrid2 определяется списком редактора полей



Рис. 32. а) пустой список столбцов DBGrid2; б) заполненный список столб


Рис. 33. Установка заголовков столбцов DBGrid1 и 2


Рис. 34. Материалы отсортированы по дате поступления


Рис. 35



Рис. 36 Вид запущенного приложения


Рис. 37. Соединение данных из разных таблиц в одном наборе данных


Рис. 38 Пустая сетка отчета. Образуется после размещения в форме компонента TquickRep


Рис. 39 Сетка отчета с размещенными в ней компонентами отчета


Рис. 40 В отчете определен только его заголовок



Рис. 41. Отчет с заголовком и группой детальной информации


Рис. 42 Содержимое отчета в окне предварительного просмотра


Рис. 43 В отчете появились заголовки столбцов


Рис. 44 Построение формулы


Puc. 45 Макет отчета с группировкой по товару


Рис. 46 Отчет с группировкой по товару в окне предварительного просмотра


Рис. 47 Макет итогового отчета


Puc. 48 Отчет по товарам с итоговым значением


П2. Листинг модуля Writesum.pas
Unit Writesum;

interface

uses SysUtils;

{ Функция перевода суммы, записанной цифрами в сумму прописью: например, 23.12 -> двадцать три тенге 12 тиын. Переводит до 999999999 тенге 99 тиын. Функция не отслеживает, правильное ли значение получено в параметре Number (т.е. положительное и округленное с точностью до сотых) - эту проверку необходимо провести до вызова функции.}


function SumNumToFull(Number:real):string;

implementation

function SumNumToFull(Number:real):string;

var


PartNum, TruncNum, NumTMP, D: integer;

NumStr : string;

i, R : byte;

Flag11 : boolean;

Begin

D:=1000000;



R:=4;

TruncNum:=Trunc(Number); //выделяем тенге

if TruncNum<>0

then


repeat

PartNum:=TruncNum div D;

Dec(R);

D:=D div 1000;



Until PartNum<>0

else


R:=0;

// перевод тенге

FOR i:=R DOWNTO 1 DO

BEGIN


Flag11:=False;

NumTMP:=PartNum div 100; {выделение цифры сотен}

Case NumTMP of

1: NumStr:=NumStr+'СТО ';

2: NumStr:=NumStr+'ДВЕСТИ ';

3: NumStr:=NumStr+'ТРИСТА ';

4: NumStr:=NumStr+'ЧЕТЫРЕСТА ';

5: NumStr:=NumStr+'ПЯТЬСОТ ';

6: NumStr:=NumStr+'ШЕСТЬСОТ ';

7: NumStr:=NumStr+'СЕМЬСОТ ';

8: NumStr:=NumStr+'ВОСЕМЬСОТ ';

9: NumStr:=NumStr+'ДЕВЯТЬСОТ ';

end;

NumTMP:=(PartNum mod 100) div 10; {выделение цифры десятков }



Case NumTMP of

1: begin


NumTMP:=PartNum mod 100;

case NumTMP of

10: NumStr:=NumStr+'ДЕСЯТЬ ';

11: NumStr:=NumStr+'ОДИННАДЦАТЬ ';

12: NumStr:=NumStr+'ДВЕНАДЦАТЬ ';

13: NumStr:=NumStr+'ТРИНАДЦАТЬ ';

14: NumStr:=NumStr+'ЧЕТЫРНАДЦАТЬ ';

15: NumStr:=NumStr+'ПЯТНАДЦАТЬ ';

16: NumStr:=NumStr+'ШЕСТНАДЦАТЬ ';

17: NumStr:=NumStr+'СЕМНАДЦАТЬ ';

18: NumStr:=NumStr+'ВОСЕМНАДЦАТЬ ';

19: NumStr:=NumStr+'ДЕВЯТНАДЦАТЬ ';

end;

case i of



3: NumStr:=NumStr+'МИЛЛИОНОВ ';

2: NumStr:=NumStr+'ТЫСЯЧ ';

1: NumStr:=NumStr+'ТЕНГЕ ';

end;


Flag11:=True;

end;


2: NumStr:=NumStr+'ДВАДЦАТЬ ';

3: NumStr:=NumStr+'ТРИДЦАТЬ ';

4: NumStr:=NumStr+'СОРОК ';

5: NumStr:=NumStr+'ПЯТЬДЕСЯТ ';

6: NumStr:=NumStr+'ШЕСТЬДЕСЯТ ';

7: NumStr:=NumStr+'СЕМЬДЕСЯТ ';

8: NumStr:=NumStr+'ВОСЕМЬДЕСЯТ ';

9: NumStr:=NumStr+'ДЕВЯНОСТО ';

end;

NumTMP:=PartNum mod 10; {выделение цифры единиц}



if not Flag11 then

begin


case NumTMP of

1: if i=2 then NumStr:=NumStr+'одна ' else NumStr:=NumStr+'ОДИН ';

2: if i=2 then NumStr:=NumStr+'две ' else NumStr:=NumStr+'ДВА ';

3: NumStr:=NumStr+'ТРИ ';

4: NumStr:=NumStr+'ЧЕТЫРЕ ';

5: NumStr:=NumStr+'ПЯТЬ ';

6: NumStr:=NumStr+'ШЕСТЬ ';

7: NumStr:=NumStr+'СЕМЬ ';

8: NumStr:=NumStr+'ВОСЕМЬ ';

9: NumStr:=NumStr+'ДЕВЯТЬ ';

end;

case i of



3: case NumTMP of

1 : NumStr:=NumStr+'МИЛЛИОН ';

2,3,4: NumStr:=NumStr+'МИЛЛИОНА ';

else NumStr:=NumStr+'МИЛЛИОНОВ ';

end;

2: case NumTMP of



1 : NumStr:=NumStr+'ТЫСЯЧА ';

2,3,4: NumStr:=NumStr+'ТЫСЯЧИ ';

else if PartNum<>0 then NumStr:=NumStr+'ТЫСЯЧ ';

end;


1: case NumTMP of

1 : NumStr:=NumStr+'ТЕНГЕ ';

2,3,4: NumStr:=NumStr+'ТЕНГЕ ';

else NumStr:=NumStr+'ТЕНГЕ ';

end;

end;


end;

if i>1 then begin

PartNum:=(TruncNum mod (D*1000)) div D;

D:=D div 1000;

end;

END;


//перевод тиынок

PartNum:=Round(Frac(Number)*100);

if PartNum=0 then

begin


SumNumToFull:=NumStr+'00 ТИЫН';

Exit;


End;

NumTMP:=PartNum div 10; {выделение цифры десятков }

if NumTMP=0 then NumStr:=NumStr+'0'+IntToStr(PartNum)+' '

else NumStr:=NumStr+IntToStr(PartNum)+' ';

NumTMP:=PartNum mod 10; {выделение цифры единиц}

Case NumTMP of

1: if PartNum<>11 then NumStr:=NumStr+'ТИЫН'

else NumStr:=NumStr+'ТИЫН';

2,3,4: if (PartNum<5) or (PartNum>14)

then NumStr:=NumStr+'ТИЫН'

else NumStr:=NumStr+'ТИЫН';

else NumStr:=NumStr+'ТИЫН';

end;

SumNumToFull:=NumStr;



end; //---SumNumToFull

end.


Задания для самостоятельного выполнения:


              1. Создать базу данных «Школа» на Аccess С использованием форм. Кнопок управления (3 неделя).

              2. Создать базу данных «Поликлиника» на Аccess и связать с Дельфи.(4-5 неделя).

              3. Создать базу данных «Товары» на Paradox-e в Database Desktop (6-7 неделя).

              4. Создать базу данных «Салон красоты» на Paradox-e в Database Desktop (6-7 неделя).

              5. Создать базу данных «Учет товаров в продуктовом магазине» на Paradox-e e в Database Desktop (6-7 неделя).

              6. Создать базу данных «Продажа компьютерных дисков» используя среду программирования Дельфи (8-9 неделя).

              7. Создать базу данных «Учет товаров в мебельном цехе» используя среду программирования Дельфи (10-11 неделя).

              8. Создать базу данных «Библиотека» используя среду программирования Дельфи (12-13 неделя)

              9. Создать базу данных «Учет товаров по продаже сотовых телефонов» используя среду программирования Дельфи (14-15 неделя).


страница 1 страница 2

Смотрите также: