Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
Необходима прога, работающая с различных компов (локалка, Инет) с одной базой. На чем лучше это хозяйство организовать? Сейчас это делается весьма извращенно: на серваке стоит IB, у клиентов - тоже. А пересылка информации идет через почтовые аттачи (скриптовые запросы в теме письма). В аттаче лежит упакованная IB-база, которая смотрится либо клиентом, либо серваком - смотря к кому пришла. Это конечно коряво, но работает (особенно, если у клиентов нету выделенки). А те у кого и-нет быстрый, хотелось бы, чтобы было в реалтайме обновление информации. Как быть? P.S. проги написаны на Delphi. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 11:20 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
Необходима прога, работающая с различных компов (локалка, Инет) с одной базой. На чем лучше это хозяйство организовать? Сейчас это делается весьма извращенно: на серваке стоит IB, у клиентов - тоже. А пересылка информации идет через почтовые аттачи (скриптовые запросы в теме письма). В аттаче лежит упакованная IB-база, которая смотрится либо клиентом, либо серваком - смотря к кому пришла. Это конечно коряво, но работает (особенно, если у клиентов нету выделенки). А те у кого и-нет быстрый, хотелось бы, чтобы было в реалтайме обновление информации. Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 11:23 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
На InterBase такого не сделаешь - не будешь же давать доступ из инета к компьютеру напрямую :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 11:40 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
На Delphi 7 довольно просто можно сделать Web приложения. VCL - Intraweb + TMS Intraweb Если об этом речь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 11:47 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
в смысле прямой доступ? достаточно только доступа к определенному порту и все. а вообще все зависит от задач... можно связку PHP+MySQL, можно (и вроде как пропагандируется) IIS+MSSQL это если Web-клиенты а так в принципе почти любая база, главное открыть канал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 11:48 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
Репликация спасет отца Русской демократии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 11:53 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
2Tygra Что то я не совсем понял, почему это "На InterBase такого не сделаешь"? :-) мне кажется что любой sql сервер, который допускает подключение клиентов по tcp/ip позволит реализовать подобного рода схему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 12:15 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
2Данил Организуй ВиПиЭн сеть, и через эту сеть подключайся к одному компу с реальной базой. Если выделенка более-менее приличная, то никаких проблем не будет ни со скоростью(ну хотя тут от задачи и реализации зависит) ни с безопасностью. Хорошо бы, чтобы сервер с InterBaseом был подключен через нормальный гейт, чтобы порты позакрывать ненужные. А если на Яффил перейти, то там можно настроить чтобы он слушал коненекты только на определенном интерфейсе, (хотя FireBird возможно тоже так умеет, я не в курсе). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 12:19 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
Давно я с Интербэйзом не работал, были раньше какие-то проблемы. Сейчас может уже и нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 12:54 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
По поводу защиты - там на И-нет сервере гейт нормальный стоит, а база будет лежать на другом компьютере (внутреннем серваке). Только вот вопрос насчет сохранности информации при обрыве связи (и-нет плохой, питание у клиента исчезло, техничка провод задела и т.п.). Чтоб никаких косяков на серверной базе не возникало. Насчет надежности IB у меня возникают сомнения. Неохота просто базу восстанавливать при каждом неблагоприятном случае. База сама приличная - около 5 таблиц по 10-15 метров каждая и еще парочка табличек по 20-30 метров. Для локалки - это фигня, но вот если это дело через И-нет пропускать, то трафик получается довольно-таки нехилый. Я конечно же не имею ввиду, что клиенты напрямую через И-нет будут с сервачной базой работать (до такого маразма я еще не дошел), просто о запросу пользователя обновлять несколько табличек - это значит нужно как минимум грузить метров 30 по И-нету. Подождать-то пару минут можно (при хорошей скорости), а вот если глюкнет во время запроса, тогда КАК ОТСЛЕДИТЬ ОБРЫВ СВЯЗИ через IB, чтоб потом все обратно восстановить? Кстати, спасибо за дельные советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 14:41 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
А может проще паковать всю базу и прямо на клиентский компутер отсылать (через сокеты например)? Ужимается она в 2-3 метра? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 14:43 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
А зачем тебе все 30 метров на клиенте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 15:19 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
2Даниил >через И-нет будут с сервачной базой работать Это не маразм это нормально. И не нужно 20-30 мегабайт передавать клиенту. Клиент ведь тоже человек и он физически не сможет просмотреть 20-30 мегабайт информации. Нужно организовать нормальную серверную бизнес логику, когда клиенту по его запросу выдается только то что он должен увидеть, а не все подряд. В случае обрыва связи пропадут данные только в текущей транзакции. Насчет надежности, это тоже ты напрасно сомневаешся, возьми FireBird 1.0.2 последний буилд, все будет прекрасно. >около 5 таблиц по 10-15 метров каждая У тебя что, каждая таблица в отдельном файле? или как ты оценивал размер таблицы? В общем, думай об этом как об обычной локальной сети. Настрой VPN. Ничего страшного и необычного, вполне работоспособгая схема, и трафик получается небольшой если правильно логика продумана и реализованна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 15:19 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
2 tygra >А зачем тебе все 30 метров на клиенте? Вкратце поясню, что это за програ: На серваке лежат большущие прайсы. В каждой таблице - по свое тематике (т.к. структура полей разная). Прайсы обновляются несколько раз в неделю (меняют несколько менеджеров по локалке). Клиенту нужно периодически обновлять цены и номенклатуру, делать из них заказ и отправлять заказ (еще одна табличка) обратно на сервак. Этот заказ обрабатывается менеджерами (уточняется всякое) и отправляется обратно клиенту. И так до полного консенсуса :) Дак это я к чему... У клиента должен быть ВСЕГДА ПОЛНЫЙ прайс, независимо есть доступ к И-нету или его нету (... почти каламбур :) ). Поэтому даже если и можно считывать нужный кусок какой-либо большой таблицы и показывать его на экране и листать его, то при обрыве связи - все накроется медным тазом. Поэтому таблицы нужны ВСЕ и СРАЗУ. 2 alex_k >У тебя что, каждая таблица в отдельном файле? или как ты оценивал размер таблицы? Это я примерно на глазок :) Про FireBird я много хорошего слышал и давно хотел перейти (стоит IB 6), только сдерживает одно: Поставил я его как-то себе и у меня перестали работать программки, написанные когда стоял IB. В конторах с моими прогами то же самое. Вот я поостерегся переходить на него. А вообще, спасибо за дельные слова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 16:12 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
Так тебе можно весь файл БД отправлять, это даже лучше будет. А заказы оформлять если нужно - то тогда по сети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 16:29 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
>У клиента должен быть ВСЕГДА ПОЛНЫЙ прайс, независимо есть доступ к И-нету или его нету ну, тогда, как уже сказал уважаемый Александр Спелицин - репликация. А репликация дело тонкое и мне, скудоумному, совершенно непонятное. К стати, пользуясь случаем, хочу спросить массы: А как делается путняя репликация sql серверов вообще и InterBase`a в частности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 16:29 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
IMHO, здесь собственно уже речь идет о работе целого решения, а не какой-то конкретной базы. Как пример реализации: Client - клиентское приложение + ДБ (пофиг какая) AppServer (чисто условно) - да что угодно, на чем быстрее напишите (Delfi,Java, PHP) Database - собственно твои данные (IB) Online сценарий ( ну чистый webservice :-) ) Client [XML request] -> AppServer -> DB DB <- AppServer -> XML response -> Client Offline сценарий: Client [XML request] -> Mail message (XML request) -> mail server -> AppServer... AppServer -> Mail (XML response) -> Client inbox (Xml файлик) -> Client app... или же еще метод типа как subscription.... В общем, данные абстрагированны от реальной системы, что собственно и позволяет делать вольности как и настороне клиента, так и настороне сервера. И еще пару +: - У клиента всегда будут свежие данные и способ их получения относительно прозрачный для большенства компонентов системы. - Изолированный клиент со своим приложением и базой данных (ну если у Вас там клиентов будет много, и Вы решите ставить у себя Oracle например, что будет тогда? ) Cписок можно продолжать и продолжать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 20:18 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
IMHO, здесь собственно уже речь идет о работе целого решения, а не какой-то конкретной базы. Как пример реализации: Client - клиентское приложение + ДБ (пофиг какая) AppServer (чисто условно) - да что угодно, на чем быстрее напишите (Delfi,Java, PHP) Database - собственно твои данные (IB) Online сценарий ( ну чистый webservice :-) ) Client [XML request] -> AppServer -> DB DB <- AppServer -> XML response -> Client Offline сценарий: Client [XML request] -> Mail message (XML request) -> mail server -> AppServer... AppServer -> Mail (XML response) -> Client inbox (Xml файлик) -> Client app... или же еще метод типа как subscription.... В общем, данные абстрагированны от реальной системы, что собственно и позволяет делать вольности как и настороне клиента, так и настороне сервера. И еще пару +: - У клиента всегда будут свежие данные и способ их получения относительно прозрачный для большенства компонентов системы. - Изолированный клиент со своим приложением и базой данных (ну если у Вас там клиентов будет много, и Вы решите ставить у себя Oracle например, что будет тогда? ) Cписок можно продолжать и продолжать.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2003, 20:19 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
Я вот только не понял, прайсы в блобах лежат? Или это обычные и нормальные таблички? Клиент вебовский (IE) или твоя прога? Мое предложение. Все прайсы пишешь в таблицы, все стильно и красиво никаких файлов в блобах и прочего. Пишешь своего клиента и работаешь. А чтобы тебе целой табличкой не гонять... так никто не заставляет тебя фетчить (Fetch) все данные. Достаточно показывать только то что влазиет на экран. И не придется зараз гонять весь объем данных. Перенеси по максимуму обработку информации на сервер и будешь радоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2003, 03:38 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
2 StarWind >Я вот только не понял, прайсы в блобах лежат? Или это обычные и >нормальные таблички? Клиент вебовский (IE) или твоя прога? Цены, количество на складе - INTEGER, а вот тех.параметры - в некоторых прайсах в одной строке (CHAR(250)), а есть такие, в которых число строк по каждому товару доходит до 20 (это лежит в BLOB). >никто не заставляет тебя фетчить (Fetch) все данные. Достаточно >показывать только то что влазиет на экран. И не придется зараз гонять весь >объем данных. Перенеси по максимуму обработку информации на сервер и > >будешь радоваться. На это повторюсь еще раз собственными словами: У клиента должен быть ВСЕГДА ПОЛНЫЙ прайс, независимо есть доступ к И-нету или его нету. Свежая база лежит на серваке, а у клиента (который сидит в другом городе или стране) - периодически обновляемая та же самая база. Необходимо, чтобы у клиента была всегда ПОЛНАЯ копия сервачной базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2003, 07:44 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
>Необходимо, чтобы у клиента была всегда ПОЛНАЯ копия сервачной базы. Ну, к стати, всегда не получится. Если обрыв связи, а на серваки вдруг добавили сом строк в прайс, то у клиента будет старый прайс. Правлильнее выразится так: Хочу чтобы на клиенте был наиболее полный прайс. Можно сделать примитивео. Если клиент не обновляет прайсы сам, то выбирать из серверной базы в клиентскую те строки у которых ID больше чем максимальный ID клиентской базы. И пытаться проделать это допустим раз в 10 минут, трафик будет в итоге копеечный и прайс практически всегда свежий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2003, 07:56 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
Я бы сделал так: 1) сделать сайт с этим самым прайсом (все данные, естественно, из БД). 2) написать своего веб-клиента (на делфях, TWebBrowser). 3) при 100% загрузку страницы из инета сохранять полученные данные на клиенте: не в виде html, а перегнать в базу. 4) веб-клиент работает в фоне, а юзер работает с локальными данными. То есть запускает юзер прогу и работатет. А прога в фоне пытается скачать свежий прайс: если успешно - у юзера данные обновляются, если нет - то нет. Можно сделать еще и конвертер в юзеровскую БД, чтоб можно было в offline`е передать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2003, 07:59 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
так они и будут полными. как только пользователь захочет увидеть новую строчку, она ему передается. Например, простой компонент TDBGrid со всеми связками до БД. При открытии запроса, происходит чтение десятка других строчек и все, дальше при перемещении к следующей строке происходит подкачка новой информации. И все тут. Ну не разместишь ты 30 мегобайт текста сразу на экран, чтоб он еще и читался. (в смысле не мелким был бы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2003, 09:48 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
Да проще архив БД каждый день закачивать - IB хорошо пакуется, как минимум в 10 раз меньше будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2003, 10:31 |
|
||
|
Работа с ДБ через И-нет
|
|||
|---|---|---|---|
|
#18+
2 alex_k >выбирать из серверной базы в клиентскую те строки у которых ID больше чем максимальный ID клиентской базы А если номенклатура та же, а цены изменились? Тогда, что все товары удалять и заново заносить под новыми ID? 2 tygra >Да проще архив БД каждый день закачивать - IB хорошо пакуется, как минимум в 10 раз меньше будет Именно так я хочу сделать... и раньше хотел... теперь думаю как бэкапить ее в реальном времени (в смысле без отруба работающих с базой пользователей по локалке). Или придется ночью бэкапить и клиентам по запросу в течении дня отсылать. А из дельфийской проги это так делается?: 1. запустить бэкап в процессе с нужными ключами. 2. дождаться, пока процесс завершиться. 3. если все в порядке - ... ну тогда хорошо... :) Я правильно думаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2003, 16:59 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=32148562&tid=1554359]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 391ms |

| 0 / 0 |
