Сохраняем Bitmap в поле dbase с именем Icon. Icon представляет собой двоичное Blob-поле.
Пишем и читаем Bitmap в Timage из поля dbase с именем Icon.
Надеюсь это поможет, поскольку найти информацию в справочной системе по этой теме практически невозможно. Чтобы сделать это, я перепробовал множество способов. Я пробовал использовать TBlobField и TBlobStream, но они не смогли мне помочь (может быть из-за убогой документации borland?).
dBASE и Paradox таблицы имеют в своем арсенале BLOB-поля, позволяющие хранить бинарные данные, в том числе bitmap-формат, отображаемый с помощью компонента TDBImage. В Database Desktop данный тип полей указан как Binary и Graphic (для dBASE и Paradox таблиц, соответственно). Тем не менее, процесс сохранения изображений в InterBase BLOB-полях и их использование в компонентах TDBImage не такой уж простой.
Таблицы InterBase не имеют простого типа BLOB-поля. Есть три варианта, или подтипа: тип 0, тип 1 и подтип, определенный пользователем. Типы 0 и 1 - "встроенные" типы. Тип 0 - BLOB-поля (тип по умолчанию) для хранения общих бинарных данных. Тип 1 - BLOB-поля для хранения текстовых BLOB-данных. Ни один из предопределенных типов не допускает автоматического извлечения данных изображения из BLOB-поля для его последующего отображения в компоненте TDBImage. BLOB-поля типа 0 могут использоваться для хранения данных bitmap-формата, но данные должны извлекаться и передаваться в объект типа TBitmap программным путем. Вот пример ручного извлечения данных изображения, хранящихся в BLOB-поле типа 0 (Table1BLOBField), и его показ в компоненте TImage (не предназначенным для работы с БД) :
Естественно, поскольку это должно делаться вручную, данный процесс менее желателен в приложении, нежели автоматическое отображение данных изображения в комбинации BDE и компонента TDBImage. Здесь происходит определение подтипа определенного пользователем BLOB-поля. При работе с данными подтип BLOB-поля учитывается, т.к. сохраненные первыми данные устанавливают тип данных для этого поля для всей таблицы целиком. Таким образом, если данные bitmap-формата оказывается первым загружаемым типом, то данный формат будет единственно возможным для данного поля. До сих пор по умолчанию тип бинарного BLOB-поля (предопределенный тип 0) позволял BDE читать и отображать данные в компоненте TDBImage без особых проблем.
Утилиты Database Desktop допускают создание бинарных BLOB-полей только типа 0 и не имеют возможности самим определять подтипы BLOB-полей. Из-за такого ограничения таблицы, подразумевающие хранение и вывод изображений, должны создаваться с помощью SQL-запросов. Обычно это делается посредством утилиты WISQL, но вполне достаточно выполнение SQL-запроса с помощью компонента TQuery. Ниже приведен SQL-запрос, создающий таблицу с определенным пользователем подтипом BLOB-поля:
После создания таблицы с совместимыми BLOB-полями, для хранения данных изображения в BLOB-поле и его вывода в компоненте TDBImage используются те же самые методы, что и при работе с таблицами dBASE и Paradox.
Имеется множество способов загрузки изображений в BLOB-поле. Три самых простых метода включают в себя:
копирование данных из буфера обмена Windows в компонент TDBImage, связанный с BLOB-полем
использование метода LoadFromFile компонента TBLOBField
использование метода Assign для копирования объекта типа TBitmap в значение свойства Picture компонента TBDBImage.
Первый способ, когда происходит копирование изображения из буфера обмена, вероятно, наиболее удобен в случае, когда необходимо добавить изображение в таблицу при использовании приложения конечным пользователем. В этом случае компонент TDBImage используется в роли интерфейса между BLOB-полем таблицы и изображением, хранящимся в буфере обмена. Метод PasteFromClipboard компонента TDBImage как раз и занимается тем, что копирует изображение из буфера обмена в TDBImage. При сохранении записи изображение записывается в BLOB-поле таблицы.
Поскольку буфер обмена Windows может содержать данные различных форматов, то желательно перед вызовом метода CopyFromClipboard осуществлять проверку формата хранящихся в нем данных. Для этого необходимо создать объект TClipboard и использовать его метод HasFormat, позволяющий определить формат хранящихся в буфере данных. Имейте в виду, что для создания объекта TClipboard вам необходимо добавить модуль Clipbrd в секцию uses того модуля, в котором будет создаваться экземпляр объекта.
Вот исходный код примера, копирующий содержание буфера обмена в компонент TDBImage, если содержащиеся в буфере данные имеют формат изображения:
Второй способ заполнения BLOB-поля заключается в загрузке изображения непосредственно из файла в BLOB-поле. Данный способ одинаково хорош как при создании приложения (формирование данных), так и при его использовании.
Этот способ использует метод LoadFromFile компонента TBLOBField, который применяется в Delphi для работы с dBASE-таблицами и двоичными Windows полями или таблицами Paradox и графическими Windows полями; в обоих случаях с помощью данного метода возможно загрузить изображение и сохранить его в таблице.
Методу LoadFromFile компонента TBLOBField необходим единственный параметр типа String: имя загружаемого файла с изображением. Значение данного параметра может быть получено при выборе файла пользователем с помощью компонента TOpenDialog и его свойства FileName.
Вот пример, демонстрирующий работу метода LoadFromFile компонента TBLOBField с именем Table1Bitmap (поле с именем Bitmap связано с таблицей TTable, имеющей имя Table1):
Третий способ для копирования содержимого объекта типа TBitmap в свойство Picture компонента TDBImage использует метод Assign. Объект типа TBitmap может быть как свойством Bitmap свойства-объекта Picture компонента TImage, так и отдельного объекта TBitmap. Как и в методе, копирующем данные из буфера обмена в компонент TDBImage, данные изображения компонента TDBImage сохраняются в BLOB-поле после успешного сохранения записи.
Ниже приведен пример, использующий метод Assign. В нашем случае используется отдельный объект TBitmap. Для помещения изображения в компонент TBitmap был вызван его метод LoadFromFile.
Извлечение изображения из BLOB-поля таблицы dBASE или Paradox -- без первой записи изображения в файл -- простейший процесс использования метода Assign для сохранения содержимого BLOB-поля в объекте, имеющим тип TBitmap. Отдельный объект TBitmap или свойство Bitmap объекта Picture, в свою очередь являющегося свойством компонента TIMage, могут служить примером совместимой цели для данной операции.
Вот пример кода, демонстрирующего использование метода Assign для копирования изображения из BLOB-поля в компонент TImage.
В данном примере, объект Table1Bitmap типа TBLOBField - BLOB-поле таблицы dBASE. Данный TBLOBField-объекты был создан с помощью редактора полей (Fields Editor). Если редактор полей для создания TFields для полей таблицы не используется, получить доступ к полям можно с помощью метода FieldByName или свойства Fields, оба они являются членами компонентов TTable или TQuery. В случае ссылки на BLOB-поле таблицы с помощью одного из приведенных членов, перед использованием метода Assign указатель на поле должен быть прежде приведен к типу объекта TBLOBField. Для примера:
Изображение, хранящееся в BLOB-поле, может быть скопировано непосредственно в отдельный TBitmap объект. Ниже приведен пример, демонстрирующий создание объекта TBitmap и сохранения в нем изображения из BLOB-поля.
TField-компоненты (или, точнее, потомки компонента TField с соответствующим типом поля) могут создаваться во время проектирования программы с помощью Fields Editor (редактора полей). Fields Editor вызывается двойным щелчком на иконке компонента TTable или TQuery. Но потомки TField могут быть созданы и удалены и в режиме выполнения программы.
Потомки компонента TField (такие как, например, TStringField, TIntegerField и др.) создаются методом Create для того типа потомка TField, который подходит к соответствующему полю набора данных. Другими словами, для поля строкового типа текущего набора данных необходимо вызвать метод Create класса TStringField, являющегося потомком TField. Методу Create необходим один параметр - владелец потомка TField, расположенный на TForm. После создания компонента наследника TField для того, чтобы новый экземпляр объекта мог установить связь с необходимым полем набора данных, необходимо установить несколько ключевых свойств. Вот их список:
Index: позиция компонента-потомка TField в массиве TFields (свойство Fields компонента TTable или TQuery, с которым будет связан TField).
DataSet: компонент TTable или TQuery, с которым будет связан TField.
Приведенный ниже код демонстрирует способ создания TStringField. TForm названа Form1 (здесь ссылка на переменную Self), активный набор данных TQuery имеет имя Query1 и поле, для которого создается компонент TStringField, расположено в таблице dBASE с именем CO_NAME. Новый потомок TField будет вторым TField в свойстве-массиве Fields компонента Query1. Имейте в виду, что набор данных, связанный с новым потомком TField (в нашем случае Query1), перед добавлением TField должен быть закрыт, а после добавления вновь открыт.
Вышеприведенный пример создает новый TStringField с именем Query1CO_NAME.
Для удаления существующего потомка TField достаточно вызова метода Free данного компонента. В примере, приведенном ниже, метод TForm FindComponent используется для получения указателя на компонент TStringField с именем Query1CO_NAME. Возвращаемая функцией FindComponent величина в случае успешного завершения будет иметь тип TComponent или nil в противном случае. Возвращаемое значение может использоваться для того, чтобы определить, действительно ли существует компонент до того, как будет применен метод Free.
Как и при создании TField, набор данных, связанный с потомком TField и активный в настоящий момент, перед вызовом данного метода должен быть закрыт и впоследствии вновь активирован.
В практической работе приходится проводить импорт данных в "1С:Предприятие" из различных внешних приложений, обслуживающих базы данных. Встроенный язык программы "1С:Предприятие" и стандартизированные методы построения баз данных позволяют создавать универсальные обработки по импорту данных из внешних источников. Написание универсальной обработки, зачастую, - это сложный, но и достаточно увлекательный процесс. Сложным я могу назвать его потому, что на этапе разработки нужно заранее предусмотреть все возможные варианты импортирования и обработки данных. А увлекательным процесс написания универсальных обработок по импорту данных в 1С мне видится потому, что постоянно ощущаешь огромные выгоды от использования обработки в последующей работе.
Файловая система
Для начала давайте посмотрим, как проводится работа с файловой системой из программы 1С:Предприятие.
Импорт данных в 1С из MS Excel
Программу Microsoft Excel сегодня можно называть стандартом работы с электронными таблицами. Именно поэтому довольно часто приходится встречаться с ситуациями, когда массивы данных хранятся именно в файлах формата MS Excel. Для того, чтобы умело импортировать данные из файлов формата MS Excel в базу данных 1С:Предприятия, вы можете воспользоваться следующими примерами.
Импорт данных в 1С из текстового файла.
Основными преимуществами текстовых файлов являются их маленький размер и простота хранения данных внутри файла. Пожалуй, именно поэтому многие данные до сего дня передаются посредством текстовых файлов. Учитывая существующую потребность, вам могут потребоваться умения в импортировании данных в 1С из текстового файла. И нижеприведённые примеры помогут вам в приобретении необходимых знаний.
Самым распространённым случаем передачи данных текстовым файлом является способ выгрузки данных из системы Клиент-Банк. В примере, приведённом ниже, вы можете увидеть, каким образом производится загрузка данных о банковских операциях в 1С из текстового файла, в который предварительно выгружены данные из системы Банк-Клиент.
Импорт данных из файла формата DBF
Старый добрый формат dBase по-прежнему используется для хранения массивов данных. Чего уж говорить, если обычная версия 1С:Предприятия (не SQL) сама хранит базы данных в файлах с расширением DBF? Формат файлов DBF, на мой взгляд, очень удобен для передачи данных в базу 1С, поскольку преимуществами файла формата dBase являются маленький размер и матричная система хранения данных.
Программист 1С может встретиться с необходимостью импортировать данные в 1С из файла DBF, в который экспортированы данные о банковских операциях из системы Банк-Клиент. В нижеприведённом примере вы можете увидеть пример обработки файла DBF, из которого в 1С импортируется банковская выписка.
Импорт данных из файла формата XML
С недавних пор набирает популярность новый формат передачи многомерных массивов данных, который носит название eXtensible Markup Language или XML. Возможности нового языка разметки, используемого для хранения данных, огромны настолько, что его стали использовать даже для. передачи данных в программу 1С:Предприятие. Поэтому современный специалист по платформе 1С обязан уметь импортировать данные в 1С из файла, имеющего формат XML.
//процедура формирует печатную таблицу с данными, содержащимися в файле формата XML
Процедура Сформировать()
Перем Файл,Каталог;
Если ФС.ВыбратьФайл(0,Файл,Каталог,"Открытие документа XML","Документы XML|*.xml")=0 Тогда
Возврат;
КонецЕсли;
//таблица
Т=СоздатьОбъект("Таблица");
Т.ИсходнаяТаблица("");
Т.ВывестиСекцию("Шапка");
//документ
Анализатор=СоздатьОбъект("AddIn.XMLParser");
Д=Анализатор.СоздатьДокумент();
Д.Загрузить(Каталог+Файл);
//узлы
Узел=Д.ВыбратьУзел("Данные");
Для i=1 По Узел.КоличествоПодчиненных() Цикл
ТекУзел=Узел.ПолучитьПодчиненныйПоНомеру(i);
Состояние(ТекУзел.Текст);
//строка
тЭлемент=ТекУзел.Наименование;
тЗначение=ТекУзел.Значение;
Т.ВывестиСекцию("Строка");
КонецЦикла;
//таблица
Т.Опции(1,1,1,0);
Т.ПовторятьПриПечатиСтроки(1,1);
Т.ТолькоПросмотр(1);
Т.Показать("XML");
КонецПроцедуры
Ну вот собственно и все. Надеюсь данная статья оказалась вам полезна.
В статье продемонстрированы программные методы экспортирования данных из программы "1С:Предприятие 7.7".
Экспорт данных из 1С в Текстовой файл TXT, CSV
Экспорт данных из 1С в файл dBase формата DBF
Экспорт данных из 1С на лист MS Excel
Управление MS Word из 1С
Методы работы с MS Word через OLE активно использованы в конфигурации "Договоры". Для определения числового кода текстовых констант MS Word использована обработка "Константы VBA".
21 – ФТП пртокол, может использоваться если открыт анонимный доступ или стоит кривая версия софта (WU 2.6.0 (1) War FTPd и тд)
23 – Телнет протокол. Используеться для входа в систему с удалённого компьютера. Так же может показать версию ОС.
25 – Протокол для отправки почты, может использоваться в основном когда стоит кривая версия sendmail (самое распространённое) так же имеют место команды EXPN и VRFY которые могут дать взломщику некторую дополнительную информацию.
53 – Показывает установлен ли DNS. Может использоваться для так называемого DNS Spoofing. Т.е. подменой объекта ДНС.
79 – Это Finger. При должном везении и ошибках в программном обеспечении можно получить список всех пользователей залогиненых в систему.
80 – WWW Сервер. показывает присутствует ли WWW сервер на машине. Использовать можно для проверки на ЦГИ скрипты, так же показывает версию и название программного обеспечения установленного на машине.
110 – POP протокол для просмотра почтовых сообщений. Может использоваться при кривой версии ПО как например всем известный QPOP.
111 – Sun RPC. Может использоваться при наличии ответа на команду rpcinfo -d |grep bind - ypbind tcp и тд.
119 – NNTP. Проткол для чтения и отправки новостей в новостные группы, используеться так же при наличии ошибок в ПО
139 – NETBIOS. Пртокол для работы с локальной сетью. Может использовать для сканирования на расшаренные ресурсы и получение информации о сети.
443 – HTTPS, SSL. Тоже самое что и HTTP но использует безопасный протокол.
513 – rlogin. Если у хоста есть запись в файле .rlogin то вы коннектитесь на удалённый хост без использования логина и пароля.
Описание всех портов
1=TCP-MUX - TCP Port Service Multiplexer
2=COMPRESSNET - Management Utility
3=COMPRESSNET - Compression Process
5=RJE - Remote Job Entry
7=ECHO - Echo
9=DISCARD - Discard
11=SYSSTAT - System Status
13=DAYTIME - Daytime
15=NETSTAT - Network Status
17=QOTD - Quote of the Day
18=MSP - Message Send Protocol
19=CHARGEN - Character Generator
20=FTP-DATA - File Transfer Protocol [Default Data]
21=FTP - File Transfer Protocol [Control]
22=SSH - SSH (Secure Shell) Remote Login Protocol
23=TELNET - Telnet
24=PMS - Private Mail System
25=SMTP - Simple Mail Transfer Protocol
27=NSW-FE - NSW User System FE
29=MSG-ICP - Messege ICP
31=MSG-AUTH - Messege Authentication
33=DSP - Display Support Protocol
35=PPS - Private Printer Server
37=TIME - Time
38=RAP - Route Access Protocol
39=RLP - Resource Location Protocol
41=GRAPHICS - Graphics
42=NAMESERVER - Host Name Server
43=WHOIS - Who Is
44=MPM-FLAGS - MPM FLAGS Protocol
45=MPM - Message Processing Module [recv]
46=MPM-SND - MPM [default send]
47=NI-FTP - NI FTP (File Transfer Protocol)
48=AUDITD - Digital Audit Daemon
49=BBN-LOGIN - Login Host Protocol (TACACS)
50=RE-MAIL-CK - Remote Mail Checking Protocol
51=LA-MAINT - IMP Logical Address Maintenance
52=XNS-TIME - XNS Time Protocol
53=DOMAIN - Domain Name Server
54=XNS-CH - XNS Clearinghouse
55=ISI-GL - ISI Graphics Language
56=XNS-AUTH - XNS Authentication
57=MTP - Private terminal access
58=XNS-MAIL - XNS Mail
59=PFS - Private File System
60=Unassigned
61=NI-MAIL - NI MAIL
62=ACAS - ACA Services
63=WHOIS++ - whois++
64=COVIA - Communications Integrator (CI)
65=TACACS-DS - TACACS-Database Service
66=SQL*NET - Oracle SQL*NET
67=BOOTPS - Bootstrap Protocol Server
68=BOOTPC - Bootstrap Protocol Client
69=TFTP - Trivial File Transfer Protocol
70=GOPHER - Gopher
71=NETRJS-1 - Remote Job Service
72=NETRJS-2 - Remote Job Service
73=NETRJS-3 - Remote Job Service
74=NETRJS-4 - Remote Job Service
75=PDOS - Private dial out service
76=DEOS - Distributed External Object Store
77=RJE - Private RJE (Remote Job Entry) service
78=VETTCP - vettcp
79=FINGER - Finger
80=WWW-HTTP - World Wide Web HTTP (Hyper Text Transfer Protocol)
81=HOSTS2-NS - HOSTS2 Name Server
82=XFER - XFER Utility
83=MIT-ML-DEV - MIT ML Device
84=CTF - Common Trace Facility
85=MIT-ML-DEV - MIT ML Device
86=MFCOBOL - Micro Focus Cobol
87=LINK - Private terminal link
88=KERBEROS - Kerberos
89=SU-MIT-TG - SU/MIT Telnet Gateway
90=DNSIX - DNSIX Securit Attribute Token Map
91=MIT-DOV - MIT Dover Spooler
92=NPP - Network Printing Protocol
93=DCP - Device Control Protocol
94=OBJCALL - Tivoli Object Dispatcher
95=SUPDUP - SUPDUP
96=DIXIE - DIXIE Protocol Specification
97=SWIFT-RVF - Swift Remote Virtural File Protocol
98=TACNEWS - TAC News
99=METAGRAM - Metagram Relay
100=NEWACCT - [unauthorized use]
101=HOSTNAMES - NIC Host Name Server
102=ISO-TSAP - ISO-TSAP Class 0
103=X400 - x400
104=X400-SND - x400-snd
105=CSNET-NS - Mailbox Name Nameserver
106=3COM-TSMUX - 3COM-TSMUX
107=RTELNET - Remote Telnet Service
108=SNAGAS - SNA Gateway Access Server
109=POP - Post Office Protocol - Version 2
110=POP3 - Post Office Protocol - Version 3
111=SUNRPC - SUN Remote Procedure Call
112=MCIDAS - McIDAS Data Transmission Protocol
113=IDENT - Authentication Service
114=AUDIONEWS - Audio News Multicast
115=SFTP - Simple File Transfer Protocol
116=ANSANOTIFY - ANSA REX Notify
117=UUCP-PATH - UUCP Path Service
118=SQLSERV - SQL Services
119=NNTP - Network News Transfer Protocol
120=CFDPTKT - CFDPTKT
121=ERPC - Encore Expedited Remote Pro.Call
122=SMAKYNET - SMAKYNET
123=NTP - Network Time Protocol
124=ANSATRADER - ANSA REX Trader
125=LOCUS-MAP - Locus PC-Interface Net Map Ser
126=UNITARY - Unisys Unitary Login
127=LOCUS-CON - Locus PC-Interface Conn Server
128=GSS-XLICEN - GSS X License Verification
129=PWDGEN - Password Generator Protocol
130=CISCO-FNA - cisco FNATIVE
131=CISCO-TNA - cisco TNATIVE
132=CISCO-SYS - cisco SYSMAINT
133=STATSRV - Statistics Service
134=INGRES-NET - INGRES-NET Service
135=RPC-LOCATOR - RPC (Remote Procedure Call) Location Service
136=PROFILE - PROFILE Naming System
137=NETBIOS-NS - NETBIOS Name Service
138=NETBIOS-DGM - NETBIOS Datagram Service
139=NETBIOS-SSN - NETBIOS Session Service
140=EMFIS-DATA - EMFIS Data Service
141=EMFIS-CNTL - EMFIS Control Service
142=BL-IDM - Britton-Lee IDM
143=IMAP - Interim Mail Access Protocol v2
144=NEWS - NewS
145=UAAC - UAAC Protocol
146=ISO-TP0 - ISO-IP0
147=ISO-IP - ISO-IP
148=CRONUS - CRONUS-SUPPORT
149=AED-512 - AED 512 Emulation Service
150=SQL-NET - SQL-NET
151=HEMS - HEMS
152=BFTP - Background File Transfer Program
153=SGMP - SGMP
154=NETSC-PROD - NETSC
155=NETSC-DEV - NETSC
156=SQLSRV - SQL Service
157=KNET-CMP - KNET/VM Command/Message Protocol
158=PCMAIL-SRV - PCMail Server
159=NSS-ROUTING - NSS-Routing
160=SGMP-TRAPS - SGMP-TRAPS
161=SNMP - SNMP (Simple Network Management Protocol)
162=SNMPTRAP - SNMPTRAP (Simple Network Management Protocol)
163=CMIP-MAN - CMIP/TCP Manager
164=CMIP-AGENT - CMIP/TCP Agent
165=XNS-COURIER - Xerox
166=S-NET - Sirius Systems
167=NAMP - NAMP
168=RSVD - RSVD
169=SEND - SEND
170=PRINT-SRV - Network PostScript
171=MULTIPLEX - Network Innovations Multiplex
172=CL/1 - Network Innovations CL/1
173=XYPLEX-MUX - Xyplex
174=MAILQ - MAILQ
175=VMNET - VMNET
176=GENRAD-MUX - GENRAD-MUX
177=XDMCP - X Display Manager Control Protocol
178=NEXTSTEP - NextStep Window Server
179=BGP - Border Gateway Protocol
180=RIS - Intergraph
181=UNIFY - Unify
182=AUDIT - Unisys Audit SITP
183=OCBINDER - OCBinder
184=OCSERVER - OCServer
185=REMOTE-KIS - Remote-KIS
186=KIS - KIS Protocol
187=ACI - Application Communication Interface
188=MUMPS - Plus Five's MUMPS
189=QFT - Queued File Transport
190=GACP - Gateway Access Control Protocol
191=PROSPERO - Prospero Directory Service
192=OSU-NMS - OSU Network Monitoring System
193=SRMP - Spider Remote Monitoring Protocol
194=IRC - Internet Relay Chat Protocol
195=DN6-NLM-AUD - DNSIX Network Level Module Audit
196=DN6-SMM-RED - DNSIX Session Mgt Module Audit Redir
197=DLS - Directory Location Service
198=DLS-MON - Directory Location Service Monitor
199=SMUX - SMUX
200=SRC - IBM System Resource Controller
201=AT-RTMP - AppleTalk Routing Maintenance
202=AT-NBP - AppleTalk Name Binding
203=AT-3 - AppleTalk Unused
204=AT-ECHO - AppleTalk Echo
205=AT-5 - AppleTalk Unused
206=AT-ZIS - AppleTalk Zone Information
207=AT-7 - AppleTalk Unused
208=AT-8 - AppleTalk Unused
209=QMTP - The Quick Mail Transfer Protocol
210=Z39.50 - ANSI Z39.50
211=914C/G - Texas Instruments 914C/G Terminal
212=ANET - ATEXSSTR
213=IPX - IPX
214=VMPWSCS - VM PWSCS
215=SOFTPC - Insignia Solutions
216=CAILIC - Computer Associates Int'l License Server
217=DBASE - dBASE Unix
218=MPP - Netix Message Posting Protocol
219=UARPS - Unisys ARPs
220=IMAP3 - Interactive Mail Access Protocol v3
221=FLN-SPX - Berkeley rlogind with SPX auth
222=RSH-SPX - Berkeley rshd with SPX auth
223=CDC - Certificate Distribution Center
242=DIRECT -
243=SUR-MEAS - Survey Measurement
244=DAYNA -
245=LINK - LINK
246=DSP3270 - Display Systems Protocol
247=SUBNTBCST_TFTP -
248=BHFHS -
256=RAP -
257=SET - Secure Electronic Transaction
258=YAK-CHAT - Yak Winsock Personal Chat
259=ESRO-GEN - Efficient Short Remote Operations
260=OPENPORT -
261=NSIIOPS - IIOP Name Service Over TLS/SSL
262=ARCISDMS -
263=HDAP -
264=BGMP -
280=HTTP-MGMT -
281=PERSONAL-LINK -
282=CABLEPORT-AX - Cable Port A/X
308=NOVASTORBAKCUP - Novastor Backup
309=ENTRUSTTIME -
310=BHMDS -
311=ASIP-WEBADMIN - Appleshare IP Webadmin
312=VSLMP -
313=MAGENTA-LOGIC -
314=OPALIS-ROBOT -
315=DPSI -
316=DECAUTH -
317=ZANNET -
321=PIP -
344=PDAP - Prospero Data Access Protocol
345=PAWSERV - Perf Analysis Workbench
346=ZSERV - Zebra server
347=FATSERV - Fatmen Server
348=CSI-SGWP - Cabletron Management Protocol
349=MFTP -
350=MATIP-TYPE-A - MATIP Type A
351=MATIP-TYPE-B - MATIP Type B or bhoetty
352=DTAG-STE-SB - DTAG, or bhoedap4
353=NDSAUTH -
354=BH611 -
355=DATEX-ASN -
356=CLOANTO-NET-1 - Cloanto Net 1
357=BHEVENT -
358=SHRINKWRAP -
359=TENEBRIS_NTS - Tenebris Network Trace Service
360=SCOI2ODIALOG -
361=SEMANTIX -
362=SRSSEND - SRS Send
363=RSVP_TUNNEL -
364=AURORA-CMGR -
365=DTK - Deception Tool Kit
366=ODMR -
367=MORTGAGEWARE -
368=QBIKGDP -
369=RPC2PORTMAP -
370=CODAAUTH2 -
371=CLEARCASE - Clearcase
372=ULISTSERV - Unix Listserv
373=LEGENT-1 - Legent Corporation
374=LEGENT-2 - Legent Corporation
375=HASSLE - Hassle
376=NIP - Amiga Envoy Network Inquiry Proto
377=TNETOS - NEC Corporation
378=DSETOS - NEC Corporation
379=IS99C - TIA/EIA/IS-99 modem client
380=IS99S - TIA/EIA/IS-99 modem server
381=HP-COLLECTOR - HP Performance Data Collector
382=HP-MANAGED-NODE - HP Performance Data Managed Node
383=HP-ALARM-MGR - HP Performance Data Alarm Manager
384=ARNS - A Remote Network Server System
385=IBM-APP - IBM Application 386=ASA - ASA Message Router Object Def.
387=AURP - Appletalk Update-Based Routing Pro.
388=UNIDATA-LDM - Unidata LDM Version 4
389=LDAP - Lightweight Directory Access Protocol
390=UIS - UIS
391=SYNOTICS-RELAY - SynOptics SNMP Relay Port
392=SYNOTICS-BROKER - SynOptics Port Broker Port
393=DIS - Data Interpretation System
394=EMBL-NDT - EMBL Nucleic Data Transfer
395=NETCP - NETscout Control Protocol
396=NETWARE-IP - Novell Netware over IP
397=MPTN - Multi Protocol Trans. Net.
398=KRYPTOLAN - Kryptolan
399=ISO-TSAP-C2 - ISO Transport Class 2 Non-Control over TCP
400=WORK-SOL - Workstation Solutions
401=UPS - Uninterruptible Power Supply
402=GENIE - Genie Protocol
403=DECAP - decap
404=NCED - nced
405=NCLD - ncld
406=IMSP - Interactive Mail Support Protocol
407=TIMBUKTU - Timbuktu
408=PRM-SM - Prospero Resource Manager Sys. Man.
409=PRM-NM - Prospero Resource Manager Node Man.
410=DECLADEBUG - DECLadebug Remote Debug Protocol
411=RMT - Remote MT Protocol
412=SYNOPTICS-TRAP - Trap Convention Port
413=SMSP - SMSP
414=INFOSEEK - InfoSeek
415=BNET - BNet
416=SILVERPLATTER - Silverplatter
417=ONMUX - Onmux
418=HYPER-G - Hyper-G
419=ARIEL1 - Ariel
420=SMPTE - SMPTE
421=ARIEL2 - Ariel
422=ARIEL3 - Ariel
423=OPC-JOB-START - IBM Operations Planning and Control Start
424=OPC-JOB-TRACK - IBM Operations Planning and Control Track
425=ICAD-EL - ICAD
426=SMARTSDP - smartsdp
427=SVRLOC - Server Location
428=OCS_CMU - OCS_CMU
429=OCS_AMU - OCS_AMU
430=UTMPSD - UTMPSD
431=UTMPCD - UTMPCD
432=IASD - IASD
433=NNSP - NNSP
434=MOBILEIP-AGENT - MobileIP-Agent
435=MOBILIP-MN - MobilIP-MN
436=DNA-CML - DNA-CML
437=COMSCM - comscm
438=DSFGW - dsfgw
439=DASP - dasp
440=SGCP - sgcp
441=DECVMS-SYSMGT - decvms-sysmgt
442=CVC_HOSTD - cvc_hostd
443=HTTPS - HTTPS (Hyper Text Transfer Protocol Secure) - SSL (Secure
Socket Layer)
444=SNPP - Simple Network Paging Protocol
445=MICROSOFT-DS - Microsoft-DS
446=DDM-RDB - DDM-RDB
447=DDM-DFM - DDM-RFM
448=DDM-BYTE - DDM-BYTE
449=AS-SERVERMAP - AS Server Mapper
450=TSERVER - TServer
451=SFS-SMP-NET - Cray Network Semaphore server
452=SFS-CONFIG - Cray SFS config server
453=CREATIVESERVER - CreativeServer
454=CONTENTSERVER - ContentServer
455=CREATIVEPARTNR - CreativePartnr
456=MACON-TCP - macon-tcp
457=SCOHELP - scohelp
458=APPLEQTC - Apple Quick Time
459=AMPR-RCMD - ampr-rcmd
460=SKRONK - skronk
461=DATASURFSRV - DataRampSrv
462=DATASURFSRVSEC - DataRampSrvSec
463=ALPES - alpes
464=KPASSWD - kpasswd
465=SSMTP - ssmtp
466=DIGITAL-VRC - digital-vrc
467=MYLEX-MAPD - mylex-mapd
468=PHOTURIS - proturis
469=RCP - Radio Control Protocol
470=SCX-PROXY - scx-proxy
471=MONDEX - Mondex
472=LJK-LOGIN - ljk-login
473=HYBRID-POP - hybrid-pop
474=TN-TL-W1 - tn-tl-w1
475=TCPNETHASPSRV - tcpnethaspsrv
476=TN-TL-FD1 - tn-tl-fd1
477=SS7NS - ss7ns
478=SPSC - spsc
479=IAFSERVER - iafserver
480=IAFDBASE - iafdbase
481=PH - Ph service
482=BGS-NSI - bgs-nsi
483=ULPNET - ulpnet
484=INTEGRA-SME - Integra Software Management Environment
485=POWERBURST - Air Soft Power Burst
486=AVIAN - avian
487=SAFT - saft
488=GSS-HTTP - gss-http
489=NEST-PROTOCOL - nest-protocol
490=MICOM-PFS - micom-pfs
491=GO-LOGIN - go-login
492=TICF-1 - Transport Independent Convergence for FNA
493=TICF-2 - Transport Independent Convergence for FNA
494=POV-RAY - POV-Ray
495=INTECOURIER -
496=PIM-RP-DISC -
497=DANTZ -
498=SIAM -
499=ISO-ILL - ISO ILL Protocol
500=ISAKMP -
501=STMF -
502=ASA-APPL-PROTO -
503=INTRINSA -
504=CITADEL -
505=MAILBOX-LM -
506=OHIMSRV -
507=CRS -
В статье описан процесс регистрации базы данных в BDE из программы.
Для доступа к BDE будем использовать компонент Session (вкладка BDE на панели компонент). Поместим его на форму, пусть это будет Session1. Положим на форму также компонеты Table, DataSource и DBGrid.
1. Простая регистация базы данных (алиаса)
Для добавления стандартного алиаса можно воспользоваться методом AddStandardAlias(Name, Path, DefaultDriver) объекта Session1, где Name - имя алиаса, Path - физический путь к базе данных, DefaultDriver - тип базы данных.
Для стандарного алиаса DefaultDriver может быть трех типов: Paradox, DBASE, ASCIIDRV. Перед запуском метода AddStandardAlias должно быть определено значение SessionName.
Пример:
Регистарция базы данных в BDE производится методом AddAlias(Name, Driver, List) объекта Session1, где Name - имя алиаса, Driver - используемый драйвер БД, List - список параметров.
Вот пример кода, выполняющего действия, аналогичные описанным в пункте 1.
.
.
.
.
.
.
.
.
.
.
.
.
. 3. Удаление базы данных (алиаса) из BDE
Здесь все просто, запускаем метод Alias с указанием имени алиаса.
Проверить, существует ли интересующий нас алиас можно с помощью методa IsAlias.
Очевидно, BDE содержит номер версии структуры, по крайней мере для файлов Paradox. (Я не могу поручиться за dBase и другие форматы.) Всякий раз при изменении структуры (например, в Database Desktop) BDE увеличивает номер версии. Следующий модуль содержит функцию, которая возвращает версию структуры базы данных: