| 
| 
 | Вопрос # 334/ вопрос открыт / | 
 |  Приветствую!!!У меня появилось несколько вопросов:1.Как во время выполнения программы узнать все установленные серверы баз данных;2.Как по известному имнеи сервера узнать какие там находятся базы данных;3.Как определить что программа уже запушенна(кроме создания фалов,или записей в файлах)???? Огромное СПАСИБО!!! 
|  |   Вопрос задал: KilkaMS (статус: Посетитель)Вопрос отправлен: 22 февраля 2007, 00:32
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Просьба на дальше: никогда не намешивайте кучу вопросов в одном вопросе. А если мешаете, то они должны быть хотя бы связаны.
 а теперь по существу
 1)Никак. Если на компе есть кокой-то сервер, которого вы не знаете, то вы его не найдёте.
 Что же делать? Каждый сервер имеет свои "отпечатки". К примеру MySQL висит на 3306 порту. Можно попробывать туда подсоединиться,  но не факт, что он там будет. Вариант два - поискать в реестре (они обычно имеют стандартные ключи) поискать в списке сервисов (это и MySQL,MSSQL, FireBird)
 Вариант два - используя средства делфи (технологии dbExpress, DBP)  попытаться "нашару" подключиться. Если получилось - сервер есть.
 2) тут чуточку проще. Если вы можете подключиться к серверу, то можно у него это запросить. Для каждого сервера свои команды. Например, MySQL для этого нужно подключиться к специальной таблице и оттудова можно "стянуть"
 3)В своих программах я использовал следующие методы. С помощью FindWindow я ищу окно своей программы. Если нахожу, то принимаю соответствующие действия. Недостаток - ваше приложение должно иметь форму с именем, которое отсутствует в системе. Но можно не только по имени, но и по типу. приведу пример
 if FindWindow('TMyCoolForm','MyCoolFormCaption')<>nil then Application.Terminate.
 Первый параметр - это тип формы, второй - Caption. Если у вас заглавие формы меняется, то можно искать только по типу - тогда в качестве второго параметра пишем nil
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 22 февраля 2007, 01:03
 Оценка за ответ: 5
 |  
 Мини-форум вопросаВсего сообщений: 1; последнее сообщение — 22 февраля 2007, 01:09; участников в обсуждении: 1. 
|   | Вадим К (статус: Академик), 22 февраля 2007, 01:09 [#1]:малось описался в коде if FindWindow('TMyCoolForm','MyCoolFormCaption')<>0 then Application.Terminate.
 Галочка "подтверждения прочтения" - вселенское зло. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |