Форма для авторизации и подключения к серверу БД. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Форма для авторизации и подключения к серверу БД.



Форма autoriz предназначена для подключения к серверу БД.

Для подключения необходимо заполнить поля: Имя сервера, Порт, Пользователь и Пароль. Первые три значения хранятся в файле config.ini и заполняются автоматически по последним введенным Вами значениям. Пароль необходимо указывать каждый раз.

Свойства формы:

AutoCenter =.T. - True

BorderStyle = 0 – No border

Caption = ’Авторизация на сервере’

DataSession = 2 – Private Data Session

Height = 170

Icon = ’fox8.ico’

MaxButton =.F. – False

MinButton =.F. – False

Name = ’Autoriz’

ShowWindow = 2 – As Top-Level Form

Width = 297

 

Методы формы:

Перед выводом формы на экран выполняется процедура Init:

SET TALK OFF && отключить вывод промежуточных результатов

IF!FILE('config.ini') && если нету файла config.ini

STRTOFILE('[ZOO]','config.ini') && создать cjnfig.ini со строкой [ZOO]

ENDIF

path_ini=FullPath("config.ini") && имя файла config.ini с полным путем

lcBuffer = SPACE(2000) && определить буффер для получения информации

&& читать имя сервера из config.ini в буффер

lnBuffer = ReadIni("ZOO", "Server", "localhost", @lcBuffer, 2000, path_ini)

IF m.lnBuffer > 0 && если длина прочитанного больше 0

thisform.sql_server.Value=LEFT(m.lcBuffer,m.lnBuffer) && выделить из буффера только имя сервера

ENDIF

 

lcBuffer = SPACE(2000) && определить буффер для получения информации

&& читать номер порта из config.ini в буффер

lnBuffer = ReadIni("ZOO", "Port", "5432", @lcBuffer, 2000, path_ini)

IF m.lnBuffer > 0 && если длина прочитанного больше 0

thisform.port.Value=LEFT(m.lcBuffer,m.lnBuffer) && выделить из буффера только порт

ENDIF

 

lcBuffer = SPACE(2000) && определить буффер для получения информации

&& читать имя пользователя из config.ini в буффер

lnBuffer = ReadIni("ZOO", "User", "Borsh", @lcBuffer, 2000, path_ini)

IF m.lnBuffer > 0 && если длина прочитанного больше 0

thisform.user_login.Value=LEFT(m.lcBuffer,m.lnBuffer) && выделить из буффера только имя пользователя

ENDIF

 

DO CASE

CASE EMPTY(thisform.sql_server.value) && если нету имени сервера

thisform.sql_server.setfocus && установить курсор в поле сервера

CASE EMPTY(thisform.port.value) && если нету порта

thisform.port.setfocus && установить курсор в поле порта

CASE EMPTY(thisform.user_login.value) && если нету имени пользователя

thisform.user_login.setfocus && установить курсор в поле имени пользователя

OTHERWISE && иначе

thisform.user_pwd.setfocus && установить курсор в поле ввода пароля

ENDCASE

 

При выводе на экран выполняется процедура Show:

SetForegroundWindow(ThisForm.HWnd) && сделать окно активным

 

Если форму закрыть крестиком, то выполняется процедура QueryUnload:

loconn =.F. && подключения нет

 

При закрытии формы выполняется процедура Destroy:

CLEAR EVENTS

чтобы программа мгла выполняться дальше.

 

При нажатии на кнопку «Подключить» выполняется ее процедура Click:

sql_server = ALLTRIM(thisform.sql_server.value) && очистить имя сервера от лишних пробелов

port = ALLTRIM(thisform.port.value) && очистить порт от лишних пробелов

user_login = ALLTRIM(thisform.user_login.value) && очистить имя пользователя от лишних пробелов

user_pwd = ALLTRIM(thisform.user_pwd.value) && очистить пароль от лишних пробелов

 

IF TYPE('loConn')='O' AND loconn.state<>0 && если соединение уже было выполнено

loconn.close() && закрыть соединение

ENDIF

LOCAL loexception AS Exception && объявить переменную, как исключение

loconn = CREATEOBJECT('ADODB.Connection') && создать объект подключения

 

&& составить строку для подключения

loconn.connectionstring = 'DRIVER=PostgreSQL ANSI; SERVER='+sql_server+'; PORT='+port+'; DATABASE=zoopark; UID='+user_login+'; PWD='+user_pwd

 

TRY

loconn.open() && попытаться подключиться

CATCH TO loexception && если подключение не удачно

loconn=.F. && подключения нет

&& вывести сообщение об ошибке

MESSAGEBOX(loexception.message, 48, 'SQL connection error')

ENDTRY

IF TYPE('loConn')='O' && если соединение получилось

path_ini=FullPath("config.ini") && имя файла config.ini с полным путем

&& записать в файл config.ini имя сервера, порт, имя пользователя

= WriteIni("ZOO", "Server", sql_server, path_ini)

= WriteIni("ZOO", "Port", port, path_ini)

= WriteIni("ZOO", "User", user_login, path_ini)

thisform.release && закрыть форму

ELSE && иначе

thisform.user_pwd.setfocus && перейти в поле ввода пароля

ENDIF

 

При нажатии на кнопку «Закрыть» выполняется ее процедура Click:

loconn =.F. && соединения нет

thisform.release && закрыть форму

 

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 94; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.179.186 (0.007 с.)