Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Базы данных и репортинг > ip адреса |
Автор: sgentstuff 24.7.2006, 11:02 |
В БД MSSQL хранятся ip адреса в поле ip типа varchar в таком формате:
[225.255.255.3] [225.255.255.4] [225.255.255.5] [225.255.255.6] |
Автор: kostas 24.7.2006, 11:33 |
В MSSQL есть встроенные фукнции для конвертации длинного формата IP в короткий integer и наоборот - INET_ATON и INET_NTOA. Таким образом можно будет вытащить IP адреса из необходимого диапазона. Вообще я бы хранил изначально именно в числовом формате, т.к. и места требует меньше и работать удобней. |
Автор: sgentstuff 24.7.2006, 12:47 |
можно пример? |
Автор: comtat 24.7.2006, 12:48 |
Как сказал, kostas, так делать лучше и правильнее, таким же образом можно хранить еще и маски |
Автор: sgentstuff 24.7.2006, 12:50 |
[*2] [*3] |
Автор: comtat 24.7.2006, 12:54 | ||
Таблица Nets address | mask | 3558234880 | 0 |
Автор: sgentstuff 24.7.2006, 12:59 |
вот такую ошибку пишет 'INET_NTOA' is not a recognized function name. |
Автор: kostas 24.7.2006, 20:14 |
база данных точно mSsql ? может вы путаете с mYsql... и какая версия? |
Автор: sgentstuff 25.7.2006, 06:41 | ||
У меня Microsoft SQL Server 2000, может это не одно и тоже что и MSSQL? |
Автор: comtat 25.7.2006, 07:28 |
kostas, под MySQL эти функции работают ![]() |
Автор: sgentstuff 25.7.2006, 12:36 |
У меня Microsoft SQL Server 2000, может это не одно и тоже что и MSSQL? Ответьте на этот вопрос... |
Автор: sgentstuff 26.7.2006, 05:38 | ||
Так почему он не может найти эту функцию? |
Автор: sgentstuff 26.7.2006, 06:52 |
под MSSQL подразумевают в общем Microsoft SQL Server, поэтому в данной ситуации можно сказать что это одно и то же ;) А вобще есть такая СУБД кот. называется MSSQL, но она не тоже самое что Microsoft SQL? |
Автор: sgentstuff 26.7.2006, 09:43 | ||
Искал. Скорее всего в MSSQL таких функций нет. |
Автор: kobra 26.7.2006, 10:28 |
эти функции не из MSSQL. мне кажется что нужно написать функцию, каторая будет приводить запис к формату ххх.ххх.ххх.ххх. соответственно условие филтра тоже нада также форматировать. |
Автор: Vit 27.7.2006, 17:01 | ||||
Вот реализация конвертации строки с адресом в число:
Этим кодом надо создать функцию а потом можно использовать типа такого:
|
Автор: sgentstuff 28.7.2006, 08:03 | ||
Vit cпасибо, вот попроще
|
Автор: Vit 28.7.2006, 21:36 |
sgentstuff, Круто! Я не додумался использовать PARSENAME таким нетрадиционным способом! Класс! Восхрищён! |
Автор: kostas 29.7.2006, 08:50 |
Ну вот и решение вопроса ![]() PS. Кстати если кому нужна их реализация в делфи, могу поделится ;) |
Автор: sgentstuff 1.8.2006, 08:30 |
kostas - если не трудно выложи в реализацию в делфях, думаю мне и много кому пригодится. |
Автор: kostas 1.8.2006, 20:15 | ||
Между прочим в делфи где то есть эти функции, по крайней мере в семерке, но когда писал эти о тех еще не знал ![]() |
Автор: sgentstuff 2.8.2006, 13:06 | ||||
Туда.
Обратно.
|
Автор: Демо 5.8.2006, 01:09 | ||||
Реализация в сетях есть:
|