|
|
|
|
#1 |
|
Участник
|
Цитата:
Сообщение от ice321i
Через сокет попробуй подсоединиться к серверу на тот порт где крутится firebird. Если соединение прошло успешно значит сервер и служба доступны
![]() Примерно так: X++: #Socks
int socket;
DLL dll;
DLLFunction func;
;
dll = new DLL('WS2_32.dll');
func = new DLLFunction(dll,'socket');
func.arg(ExtTypes::DWord,ExtTypes::DWord,ExtTypes::DWord);
func.returns(ExtTypes::DWord);
socket = func.call(#AF_INET,#SOCK_STREAM,#IPPROTO_IP);к сожалению не нашел эту форму т.к. у меня 4.0! а где указывать ай пи адрес сервера и порт? |
|
|
|
|
#2 |
|
Участник
|
Почему бы не использовать NET ? (Работа FireBird(FDB) в AX 2009)
Зачем все эти извращения с ODBC и DLL на клиенте ? Это прошлый век ИМХО. Ведь можно установить клиентскую библиотеку подключения к FB (NET) на сервер АОС и обращается к FB только оттуда! Проверить работоспособность сервера FB можно перехватывая исключения в методе (что то типа) X++: try { connection.Open(); } catch(Exception::CLRError) { } |
|
|
|
|
#3 |
|
Участник
|
Еще можете воспользоваться такой функцией (тоже NET)
Она может "пинговать" сервер по адресу, и выдаст информацию о его доступности по сети X++: static server boolean ping(str _serverAddress) { System.Net.NetworkInformation.Ping pingSender; System.Net.NetworkInformation.PingReply reply; ; new InteropPermission(InteropKind::ClrInterop).assert(); pingSender = new System.Net.NetworkInformation.Ping(); reply = pingSender.Send(_serverAddress, 1000); if (reply.get_Status() == System.Net.NetworkInformation.IPStatus::Success) { return true; } return false; } |
|
|
|
| За это сообщение автора поблагодарили: coolibin (2). | |
| Теги |
| firebird, ping |
|
|
|