powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как правильно писать программу для работы с БД?
61 сообщений из 61, показаны все 3 страниц
Как правильно писать программу для работы с БД?
    #38394188
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Я не профессиональный программист, но пишу мелочёвку для себя. Вот захотел написать небольшую учёную программу по рабочему оборудованию и комплектующим. Для простоты, скажу так, нечто похожее на складской учет.
Я не силен в программировании. В своей небольшой практике я встречал три похода.
Первый. База данных отдельно, программный код отдельно, интерфейс отдельно.
Видел такое в Python, PHP. Сама БД разрабатывается отдельно. После пишется программный код который реализует всю логику работы с БД. Отдельно разрабатывается интерфейс. Для Python я использовал PyQt и рисовал в QT Designer, для PHP обычные веб страницы. Логика работы обяно была такая. В программном коде формуем и отправляем запрос. Получаем массив данных с БД. Полученные данные выводим в интерфейс(тут обычный цикл крутим). Посмотрели, чего надо ввели. Забираем данные с интерфейса(тоже тут обычный цикл крутим). Собираем запрос для обновления(вставки) на сервер. Оправляем запрос. И по новой.
Второй. База данных, программный код, интерфейс все в одном флаконе. В качестве примера приведу Microsoft Access. Тут достаточно просто расписать структуру базы данных, накидаьб форму. Сам программа неким «магическим способом» будет вносит данные в БД и наполнять интрефейс(формы).
Третий. База данных отдельно, программный код и интерфейс совместно. Здесь к у меня Дельфи. Здесь возможно реализовать, как и первый подход и так частично второй. На эту тему даже ведется длительные полемики в ветке по Дельфи. Как писать с или без DB-aware компонентами. Также это поход могут реализовать и многие фреймворки.
Как правильно писать программу для работы с БД?
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38394199
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это смотря чё тебе надо. Обычно пляшут от того что умеют.Умеют ковыряться в Access - пишут все в нем. Получается в 99% паршиво, но все-же иногда работает. Умеют на Дельфях компоненты таскать - делают толстого клиента.

Но если хотят более-менее масштабируемого решения, то идут по пути тонких клиентов и двух-трехзвенных решений. (твой подход номер один).
Там тоже есть варианты.
Самый надежный - всю бизнес-логику делают на хранимых процедурах.
То что ты описал - не самый легкий и удобный вариант, но если у СУБД нету хранимых процедур то бизнес-логику придется делать как внешнее приложение.
Тут в обоих случаях обращение из пользовательского клиента к бизнес логике может идти как напрямую, так и через дополнительный сервер. В последнем случае это нужно если клиент и база находятся по разные стороны файрволла (физического или логического).
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38394292
Max_Хацкер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начни с составления ТЗ. Просто что бы понять рамки твоего "проекта". Детально распиши что твоя прога будет делать и как. Будет она сетевой или нет? Многопользовательской или нет? Какой запас прочности по объёму данных?
Исходя их ответов на эти вопросы и получается план разработки и критерии выбора тех или иных технологий и инструментов.
:))
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395332
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация с ПО на текущий момент у меня такая.
Я познакомился с программированием в ВУЗе, курс информатики базировался на Pascal 5.5. Я сразу раскусил перспективы превратить компьютер в суперкалькулятор, и в дальнейшем все расчеты перевел на него. Потом был Delphi, MathCAD, Matlad, сейчас я со всей математикой перешел на Python с его шикарными математическими пакетами. А вот как сделать GUI Python я пока не осилил, работаю в консоли. Это всякие инженерные расчётные работы. Тут я пока не ничего не планирую менять, меня все вполне устраивает, ну может GUI осилю.
Учеты заявок на обслуживание, ремонты и решения прочих проблем с оборудованием. Это у меня БД планово-предупредительного ремонта(ППР). Тут сборная солянка. Изначально было написана на Аксесе, потом он захлебнулся. Попытался переписать на Дельфи, но не смог освоить работу с БД на dbf файлах. Позже набрел на(теперь мой любимый сервер) Firebird. Более менее сделал, неоптимальное конечно, но работает. Но надо переписывать, куча костылей, да и опыта теперь больше. Для работы через браузер сделал упрощённый веб интерфейс, на PHP. У сотрудников много планшетов и смартфонов, они через них заявки на ремонты и разные вопросы технические задают. Т. е. типа небольшого форума. Тут мы ведем все записи о ремонтах, заявки, техническую информацию, что сделано, что кто делает, кто и где находится, что в работе, что остановлено. Сроки облуживания контролируем автоматом. Все тоже все пока нравится. Работает в основном мое подразделение, это шесть человек, остальные сидят через веб интерфейс – тут в пике человек 300.
Также есть база на 1С 8.2 по учету ТМЦ, реализован простой складкой учет. Изначально росли ноги из 1С7.7 ТиС, которую под меня адаптировали наши, местные, программисты 1С. Но с временем мне надоело с ними воевать, освоил 1С самостоятельно. Последний вариант – полностью переписал под УФ на 8.2 файловый вариант БД. С этим работают в основном отдел снабжения, кладовщики и мое подразделение, эпизодически экономисты, бухгалтерия. В пике 50-60 человек, обычно 20-30. Большой плюс, это работа в браузере. Очень удобно работать с планшета, завод-то большой, ноут не натаскаешься. Минусы данного решения, сама платформа довольно тяжелая, работает это все медленно, очень высокая цена как приобретения так и эксплуатации, да и нет нет, но все же нарываюсь на ограничения в самой платформе 1С. Хотелось бы уйти от 1С . Тут решаются задачи подачи заявок на материалы и расходники, их закупка, оприходование, списание, ведение складского остатка, инвентаризации. Хотелось бы добавить автоматический расчет стоимости ремонтных работ, и различных модернизации оборудования. Номенклатура около миллиона позиций, количество документов 50-80 в день по 30-50 позиций.
Есть еще внутренняя база знаний, на Вики и Друпал сделали. Пока не понятна дальнейшая судьба этого решения.
Что хочется. Переписать и переделать часть на 1С. Тут пока все работает как надо. Но для практики самое оно, не горит, решения откаты, идеи реализации проверены. Вторым этапом, после того как здесь поднатаскаюсь как программист, добавить сюда ППР.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395336
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlА это смотря чё тебе надо. Обычно пляшут от того что умеют.Умеют ковыряться в Access - пишут все в нем. Получается в 99% паршиво, но все-же иногда работает. Умеют на Дельфях компоненты таскать - делают толстого клиента.

Паршиво уже есть. Теперь хочется красиво. Да и лучше программировать хочу научиться.

White OwlНо если хотят более-менее масштабируемого решения, то идут по пути тонких клиентов и двух-трехзвенных решений. (твой подход номер один).
Там тоже есть варианты.
Самый надежный - всю бизнес-логику делают на хранимых процедурах.

А одному реально осилить написание тонких клиентов и двух-трехзвенных решений? Я много читаю это форум. Ту получается одни пишут сервера приложений, другие тонких клиентов. Или один пишет первое звено, второй второе, третий третье.
Мой основной сервер FireBerd, там есть возможность написание хранимых процедур. Но не все на них можно реализовать. Возможно, это функционал у него слаб. Может, порекомендуете что-то на эту тему? Может другой сервер БД?

White OwlТо что ты описал - не самый легкий и удобный вариант, но если у СУБД нету хранимых процедур то бизнес-логику придется делать как внешнее приложение.
Тут в обоих случаях обращение из пользовательского клиента к бизнес логике может идти как напрямую, так и через дополнительный сервер. В последнем случае это нужно если клиент и база находятся по разные стороны файрволла (физического или логического).

Поэтому я и начал писать на форуме. До этого мне хватало уже готовых ответов. С благодарностью приму любой совет, вариант.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395340
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Max_ХацкерНачни с составления ТЗ. Просто что бы понять рамки твоего "проекта". Детально распиши что твоя прога будет делать и как. Будет она сетевой или нет? Многопользовательской или нет? Какой запас прочности по объёму данных?
Исходя их ответов на эти вопросы и получается план разработки и критерии выбора тех или иных технологий и инструментов.
:))

План у меня есть. А вот с критериями тяжко. Кругозор у меня в программировании пока мал.
Однозначно сетевой, многопользовательской с выделенным сервером БД.
И очень нужен веб интерфейс, хотя бы минимальный.
Объемы небольшие(пока объем данных за пять лет 300 гиг), но аппетит приходит во время еды.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395353
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275А вот как сделать GUI Python я пока не осилилпопробуй PyQt , например
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395381
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275А одному реально осилить написание тонких клиентов и двух-трехзвенных решений?Ээээ... в принципе реально...
В 80ые была телепередача, ... не помню как называлась, там показывали людей которые делали самодельные автомобили, амфибии, даже вертолеты были. Вот взял человек и сделал себе машину сам. И ездит на ней. Все смотрели и восхищались.
Намек понятен? :)

kot275 Я много читаю это форум. Ту получается одни пишут сервера приложений, другие тонких клиентов. Или один пишет первое звено, второй второе, третий третье.Командой это действительно делать проще и быстрее. Естественно если лидер в группе есть опытный.

kot275 Мой основной сервер FireBerd, там есть возможность написание хранимых процедур. Но не все на них можно реализовать. Возможно, это функционал у него слаб. Может, порекомендуете что-то на эту тему? Может другой сервер БД?ээээ..... я не большой спец по этому серверу. Последний раз с ним работал еще 90-х, да и видел его в живую в те-же времена. Так что я все же посоветую сменить на что-либо более распространенное, на что будет проще найти спецов, когда будешь набирать свою команду. А что именно - смотри по рынку труда. FB это все-же детище Борландов и если в округе сплошняком дельфисты, то FB можно будет и оставить.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395453
Фотография Zukora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Связка Delphi + FireBird позволит писать приложение любой сложности, красоты и типа. Хоть тонкое хоть толстое. Но не думаю, что в Вашем случае надо писать трехзвенку. Вопрос не в инструменте, а в умении программировать.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395817
Max_Хацкер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тяга к программированию - это конечно хорошо, но может стоит посмотреть на готовые решения в области управления сервисом, активами, ремонтами и т.д.? Начать хотя бы с изучения предложений в мире Freeware и OpenSource. Потом глянуть в сторону платного ПО, если ничего не приглянется. Вдруг найдётся подходящее решение за приемлемое количество дензнаков.
С чего вдруг решил сам писать?
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395843
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorychkot275А вот как сделать GUI Python я пока не осилилпопробуй PyQt , например

Угуй. Сейчас вот курсы по этому направлению изучаю. Но сама концепция от меня ускользает. Получается как-то код отделено, интерфейс отделено. Мягко соединить пока не осилил.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395859
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owlkot275А одному реально осилить написание тонких клиентов и двух-трехзвенных решений?Ээээ... в принципе реально...
В 80ые была телепередача, ... не помню как называлась, там показывали людей которые делали самодельные автомобили, амфибии, даже вертолеты были. Вот взял человек и сделал себе машину сам. И ездит на ней. Все смотрели и восхищались.
Намек понятен? :)
"Это вы можете" передача называлась. Намек понятен. Нет ничего невозможного.

White Owlkot275 Я много читаю это форум. Ту получается одни пишут сервера приложений, другие тонких клиентов. Или один пишет первое звено, второй второе, третий третье.Командой это действительно делать проще и быстрее. Естественно если лидер в группе есть опытный.

Команда пока не предвидится. Так пока я одинок. Мне надо что-то попроще наверно искать.

White Owlkot275 Мой основной сервер FireBerd, там есть возможность написание хранимых процедур. Но не все на них можно реализовать. Возможно, это функционал у него слаб. Может, порекомендуете что-то на эту тему? Может другой сервер БД?ээээ..... я не большой спец по этому серверу. Последний раз с ним работал еще 90-х, да и видел его в живую в те-же времена. Так что я все же посоветую сменить на что-либо более распространенное, на что будет проще найти спецов, когда будешь набирать свою команду. А что именно - смотри по рынку труда. FB это все-же детище Борландов и если в округе сплошняком дельфисты, то FB можно будет и оставить.

На что можете посоветовать сменить? Сейчас сморю на PostgreSQL, благо он как бы родной для Python, для PHP MySQL.
Я спецов искать не буду так точно, руководству по барабану на автоматизацию, особенно после кризиса 2008, сейчас вообще мысль у них порезать на метал. Им главное максимально выжать деньги с завода. Так что это мое хобби. Если совсем меркантильно походить к этому вопросу, может и сделать хобби профессией. По 1С я понемногу подрабатываю, да и сайты небольшие делаю.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395863
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZukoraСвязка Delphi + FireBird позволит писать приложение любой сложности, красоты и типа. Хоть тонкое хоть толстое. Но не думаю, что в Вашем случае надо писать трехзвенку. Вопрос не в инструменте, а в умении программировать.

Delphi нынче для любителя дороговат. Я лично себе купить его позволить не могу. Последняя купленная версия Delphi 7.
То что вопрос не в инструменте а в умении им пользоваться, мне как инженеру прекрасно понятно. Учусь вот, благо в Интернете море материала на любой уровень и вкус. Но вот завис на выборе направления.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395874
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Max_ХацкерТяга к программированию - это конечно хорошо, но может стоит посмотреть на готовые решения в области управления сервисом, активами, ремонтами и т.д.? Начать хотя бы с изучения предложений в мире Freeware и OpenSource. Потом глянуть в сторону платного ПО, если ничего не приглянется. Вдруг найдётся подходящее решение за приемлемое количество дензнаков.
С чего вдруг решил сам писать?

Готовые решения есть. Но с коммерческими получается либо недостаток функционала. Либо все в одном флакон за невменяемые деньги. Да и на тот момент когда я начинал все это - готовых решений не было. OpenSource конечно на порядок более интересен, но опять же, что подогнать под себя надо уметь программировать. OpenSource у меня пока прижился в расчетных задачах и в базе знаний.
Ну а решил писать сам - потому что для меня программирование хобби. А тут приятное с полезным, и голову поломать и работу себе облегчить.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38395946
Max_Хацкер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kot275ZukoraСвязка Delphi + FireBird позволит писать приложение любой сложности, красоты и типа. Хоть тонкое хоть толстое. Но не думаю, что в Вашем случае надо писать трехзвенку. Вопрос не в инструменте, а в умении программировать.

Delphi нынче для любителя дороговат. Я лично себе купить его позволить не могу. Последняя купленная версия Delphi 7.
То что вопрос не в инструменте а в умении им пользоваться, мне как инженеру прекрасно понятно. Учусь вот, благо в Интернете море материала на любой уровень и вкус. Но вот завис на выборе направления.

Ну если так, то рекомендую осилить Java+C/Cpp+PostgreSQL+Firebird. У Firebird очень приличная embedded (встраиваемая в приложения) СУБД.
Получишь массу преимуществ:
- кроссплатформенность, а это лишним ни когда не бывает, особенно учитывая последние тенденции развития продуктов от Microsoft. А С/С++ позволит делать платформо-зависимые библиотеки, если таковые понадобятся (например, управление какой-нибудь железкой).
- наличие серверов типа Apache Tomcat или Glass Fish для построения полноценных Web-приложений любой сложности и размеров.
- весь инструментарий есть в бесплатном виде
- есть очень мощная заготовка для любых desktop-приложений - Eclipse Rich Client Platform называется. И оно тоже opensource!

Если за пределы винды вылазить не будешь, то копай C#. Можно Visual Studio Express на халяву качнуть и делать всё, что угодно.

Ну как-то так. :)
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38401231
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlСамый надежный - всю бизнес-логику делают на хранимых процедурах.очень спорное утверждение,
есть задачи, которые относятся к бизнес-логике, например печать документов, которые в хранимки не засунешь,
а размазывать бизнес-логику по разным слоям...
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38401250
Фотография Chop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275 , моя ИМХА:
допилите свою 1С, ваш любимый Firebird, она, вроде поддерживает,
чтобы не платить дурные деньги за пользовательские лицензии,
сделайте к ней не веб-интерфейс (разобраться со структурой БД 1с-а не такая тривиальная задача, как хотелось бы),
а сайт, который будет обмениваться с 1с-ом данными,
хоть на пхп-е, хоть на чем
1с " работает это все медленно " у тех, кто не умеет ее готовить,
50-60 человек она должна нормально тянуть,
остальные будут в вебе

любое другое решение - будет дороже и сложнее
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38401961
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ChopWhite OwlСамый надежный - всю бизнес-логику делают на хранимых процедурах.очень спорное утверждение,
есть задачи, которые относятся к бизнес-логике, например печать документов, которые в хранимки не засунешь,
а размазывать бизнес-логику по разным слоям...С чего это вдруг печать документов стала частью бизнес-логики? Это часть бизнес-процесса, да. Но не логики.
Каким шрифтом будет распечатана накладная никак не влияет на то как эта накладная будет обсчитываться. Достаточно вспомнить о том, что одна и та-же накладная может быть нужна в нескольких видах: как список товара для кладовщика (которому нафиг не нужна цена товара, но важен его вес и габариты), либо как список товара для бухгалтера, и там уже цена все а вес ничто. Но в любом случае этот товар должен быть учтен - и вот это уже задача для ХП.

Вывод документов это как раз уже задача клиента. Либо тонкого, когда всё (включая расположение объектов и шрифты) читается с сервера - например web-клиент и html-able СУБД типа SQL Anywhere. ХП определяют что и как рисовать, а браузер уже занимается раскраской пикселов.
Либо на средне-тонком клиенте, который держит определения графического представления бизнес-объектов у себя. Примеров приводить не буду - ты сам их знаешь раз уж поднял этот вопрос.
Но в обоих случаях печать документов это вещь отделенная от методов обсчета бизнес-объектов.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38402054
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275Доброго времени суток. Я не профессиональный программист, но пишу мелочёвку для себя. Вот захотел написать небольшую учёную программу по рабочему оборудованию и комплектующим. Для простоты, скажу так, нечто похожее на складской учет.
Я не силен в программировании. В своей небольшой практике я встречал три похода.
Первый. База данных отдельно, программный код отдельно, интерфейс отдельно.
Видел такое в Python, PHP. Сама БД разрабатывается отдельно. После пишется программный код который реализует всю логику работы с БД. Отдельно разрабатывается интерфейс. Для Python я использовал PyQt и рисовал в QT Designer, для PHP обычные веб страницы. Логика работы обяно была такая. В программном коде формуем и отправляем запрос. Получаем массив данных с БД. Полученные данные выводим в интерфейс(тут обычный цикл крутим). Посмотрели, чего надо ввели. Забираем данные с интерфейса(тоже тут обычный цикл крутим). Собираем запрос для обновления(вставки) на сервер. Оправляем запрос. И по новой.
Второй. База данных, программный код, интерфейс все в одном флаконе. В качестве примера приведу Microsoft Access. Тут достаточно просто расписать структуру базы данных, накидаьб форму. Сам программа неким «магическим способом» будет вносит данные в БД и наполнять интрефейс(формы).
Третий. База данных отдельно, программный код и интерфейс совместно. Здесь к у меня Дельфи. Здесь возможно реализовать, как и первый подход и так частично второй. На эту тему даже ведется длительные полемики в ветке по Дельфи. Как писать с или без DB-aware компонентами. Также это поход могут реализовать и многие фреймворки.
Как правильно писать программу для работы с БД?

Надо писать как "Первый".
Но на самом деле первый и третий -- это одно и то же.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38403343
revisionist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Как правильно писать программу для работы с БД?

любой способ, решающий поставленную задачу и соответствующий поставленным требованиям, будет правильным
"рубка" в основном идет между а) желающими сократить расходы ресурсов на разработку (время=деньги), всё упростив и б) понимающими, что такая экономия оборачивается перерасходами ресурсов на поддержку/сопровождение (в т.ч. переделки, улучшения, новые версии) - но так ли уж эти перерасходы страшны - зависит от системы оплаты, иногда они даже желательны :)

в целях упрощения поддержки однозначно рекомендуется разделение программы на уровни/участки и их максимальное абстрагирование друг от друга (так, чтобы при переделках на одном участке другие затрагивались по-минимуму, в идеале совсем не затрагивались) - например, уровень хранения данных, уровень бизнес-логики и уровень интерфейса
при этом вовсе не обязательно эти уровни разделять физически, они могут оказаться на одном компьютере и даже в одном исполняемом файле, но логически все равно будут (должны быть) разделены
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38403345
revisionist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...разделены программными интерфейсами, которые желательно заранее продумать так, чтобы менять их (в идеале) не приходилось вообще, их стабильность - залог той самой экономии ресурсов, если стабильности интерфейсов добиться не удастся - то вся идея с "разделением уровней" идет насмарку: экономии не получится, наоборот (т.е. было бы проще и быстрее ничего не разделять)
есть и другое преимущество разделения уровней - возможность и удобство автоматического тестирования
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38403346
revisionist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...разделены программными интерфейсами, которые желательно заранее продумать так, чтобы менять их (в идеале) не приходилось вообще, их стабильность - залог той самой экономии ресурсов, если стабильности интерфейсов добиться не удастся - то вся идея с "разделением уровней" идет насмарку: экономии не получится, наоборот (т.е. было бы проще и быстрее ничего не разделять)
есть и другое преимущество разделения уровней - возможность и удобство автоматического тестирования
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38403433
Акс квакс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MS Access для подобной поделки вполне подходит, надо только правильно всё делать, для этого нужны определённые знания . Для начала выбрать структуру Основы проектирования складской БД (v. 2) , база отдельно, интерфейс и логика отдельно тоже возможно для MS Access и даже желательно, интерфейс на MS Access база на MySQL и т.п. тоже приветствуется и т.д.. Вы просто не умеете его готовить :) как впрочем и 1С, а посему прекращайте метаться, выбирайте платформу и приступайте к изучению основ баз данных а затем к изучению платформы разработки и будет вам счастье.
Как второй вариант - платить тити-мити стороннему разработчику.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38403692
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Chop kot275 , моя ИМХА:
допилите свою 1С, ваш любимый Firebird, она, вроде поддерживает,
чтобы не платить дурные деньги за пользовательские лицензии,
сделайте к ней не веб-интерфейс (разобраться со структурой БД 1с-а не такая тривиальная задача, как хотелось бы),
а сайт, который будет обмениваться с 1с-ом данными,
хоть на пхп-е, хоть на чем
1с " работает это все медленно " у тех, кто не умеет ее готовить,
50-60 человек она должна нормально тянуть,
остальные будут в вебе

любое другое решение - будет дороже и сложнее

Дело в том что 1С нелюбимая. Да и дорогое это удовольствие.
По поводу медленно. Ну нет у меня дата-центра своего, и крутой серверной стойки. А в файловом варианте нормально не больше десятка пользователей тянет.
Да и фигня получается. 8,3 нормально сама веб интерфейс рисует уже. Но я для себя не вижу перспектив в 1С.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38403718
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я как-то размыто вопрос задал. Попробую немного его сфокусировать.
Для любой системы нужно некое хранилище набора данных. Тут идеальный кандидат различные SQL сервера, благо их много сейчас можно выбрать на любой вкус. И работать с ними очень удобно, ты им запрос, они прошуршали и выдали ответ. Да и в хранимые процедуры много чего напихать можно.
Второе. Нужен программный код на котором будет написано общение пользователя с БД. Так называемое система управлении базой данных(СУБД). Но тут проблем нет, языков программирования на любой вкус сейчас наделали. Да, я Java хотел освоить, курс прочитал. Пока простые вещи были, вроде просто было, но когда начали рассказывать про фабрики которые делают фабрики, тут я уже скис.
Общение программного кода с севером БД довольно просто сейчас, библиотеки написаны на любой вкус и цвет. Соединился, оправил запрос, получил ответ.
Третье. Интерфейс. Графический конечно. А вот тут у меня сплошные засады и непонятки. Попробую подробно расписать .
Получить список данных и вывести на экран. К примеру, возьмем список номенклатуры.
Тут я должен сделать лирическое отступление. Список номенклатуры обычно имеет огромное количество записей, у меня их около миллиона. Для сервера БД выбрать одну запись или несколько десятков труда не составляет, он как раз под это и заточен. Но вот проблема с пользователями. Пользователям надо обязательно вывести весь список на экран, и они там, несмотря на мощную систему фильтрации и поиска, любят крутить колёсико мышки и искать глазками. Особенно этим страдают бухгалтерия у нас. И очень часто им кажется что такую запись они не нашли и давай лепить дубли. В моих программках доступ к НСИ обычному пользователю запрещен. А в общезаводской системе, я постоянно выгребаю дубли. Конец лирического отступления
Да понимаю что вопрос организационного характера работа с НСИ. И больше чем 30-50 записей пользователю видеть на экране за раз не нужно, этого достаточно, чтобы получить преставление о наборе данных и запросит средствами поиска нужные записи.
И вот мы хотим запросить список записей. Простой запрос на выборку с неким условием. С точки зрения кода это простой запрос к серверу БД, он возвращает массив данных(или по научному курсор), дальше мне надо нарисовать интерфейс. По первому варианту, я бегу в цикле по полученному набору данных и рисую картинку пользователю. По второму варианту, мне рисует это сам компонентs(это в Delphi например), ну там DataSet+dbGrid разные. Думается там тоже цикл, но утверждать не берусь, на 100% их работа не понятна мне пока. Особо умные DataSet помимо явно прописанного запроса еще и генерируют свои. Например, вытаскивают из метаданных БД название полей, автообновляют набор данных. Я так один раз подвесил сервер, пока в тестовом режиме сам работал эффекта автобновления не заметил, когда зашло с десяток пользователей, а запрос на выборку компонент оправлял на выборку раз в секунду, сервер подвис.
В третьем варианте, все это на себя берет сам среда. И что она там крутить только Боги знают. Я когда с 1С7.7 разбирался, а у нее тоже есть автообноление и она тянет вес набор записей на клиента, постоянно получал ошибку блокировки таблиц в MS SQL.
Так вот я к чему. В любой программе получается два цикла. Первый на сервер БД, когда он выбирает данные, но тут проблемы не вижу. Там все оптимизировано и под это заточено. А вот второй цикл вывод полученного массива данных на экран, меня и напрягает. Циклы ведь вещь медленная. Да и еще цикл возможен в самой библиотеке работы с БД. Соответственно и в обратную сторону тоже циклы. Считываем с интерфейса введённые пользователем данные, отправляем в БД. Получается, что у меня в программе крутятся сплошные циклы. Пока данных мало я граблей с таким подходом не вижу, но при больших объёмах грабли наверняка будут. Везде пишут циклы медленные и лучше обойтись без них. А другого варианта я не нашел.
Я понимаю, что я пишу для участников этого форума очевидные вещи, но я привык максимально описывать непонятную ситуацию(да и сам требую), чтоб спецы понимали куда я там залез и чем при этом руководствовался. Чуть позже еще другие грабли распишу.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38403723
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Акс кваксMS Access для подобной поделки вполне подходит, надо только правильно всё делать, для этого нужны определённые знания . Для начала выбрать структуру Основы проектирования складской БД (v. 2) , база отдельно, интерфейс и логика отдельно тоже возможно для MS Access и даже желательно, интерфейс на MS Access база на MySQL и т.п. тоже приветствуется и т.д.. Вы просто не умеете его готовить :) как впрочем и 1С, а посему прекращайте метаться, выбирайте платформу и приступайте к изучению основ баз данных а затем к изучению платформы разработки и будет вам счастье.
Как второй вариант - платить тити-мити стороннему разработчику.

Так за знаниями сюда и пришел.
Можно конечно. Только на мой взгляд, это забивание гвоздей микроскопом.
На MS Access обычно клиента по MS SQL и пишут. Еще под Opacle видел, но как сказали сами разработчики, это знатное извращение, но заказчик так захотел.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38403776
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275Я как-то размыто вопрос задал. Попробую немного его сфокусировать.Это называется "сфокусировать"????

kot275 Нужен программный код на котором будет написано общение пользователя с БД. Так называемое система управлении базой данных(СУБД).Нет. СУБД это та часть которая хранит данные. Общение с пользователем это уже интерфейс.

kot275 А в общезаводской системе, я постоянно выгребаю дубли. Вот чтобы дублей не было - на стороне СУБД делается проверка, и если новая запись это дубль, то ругаемся и не записываем.
Почему на стороне СУБД а не в GUI? Потому что GUI'ев у тебя может быть много - классическое десктопное приложение, веб-сайт, мобильное приложение на телефоне и все это в нескольких версиях... Можно конечно и в GUI такую проверку повторить, но это не всегда возможно. Хотя если возможно, то лучше сделать - удобнее для пользователя.
А в СУБД это обычно оформлено как триггер на таблице. А если вставка делается не напрямую в таблицу а через хранимую процедуру, то можно проверку в ХП положить. Хотя триггер все равно будет очень полезен (особенно для тех кто полезет в базу минуя ХП).

kot275простой запрос к серверу БД, он возвращает массив данных(или по научному курсор),Нет. Массив данных возвращаемый СУБД и курсоры это две очень разные вещи. Первое это несколько строк, а второе это указатель на одну строку. Не надо их путать.

kot275 дальше мне надо нарисовать интерфейс. По первому варианту, я бегу в цикле по полученному набору данных и рисую картинку пользователю. По второму варианту, мне рисует это сам компонентs(это в Delphi например), ну там DataSet+dbGrid разные. Думается там тоже цикл, но утверждать не берусь,Да, там тоже цикл, но.... Обычно там цикл основанный на курсоре, но каждый курсор это открытый запрос к СУБД. Вполне работоспособно если доступ к базе идет в монопольном режиме и если ты показываешь только одну табличку за раз. Если надо делать многопользовательское приложение или показывать несколько табличек на экране одновременно - дельфевые компоненты становятся чрезвычайно неудобными.
Так что лучше вытягивать весь датасет в массив в памяти, а потом уже рисовать его на экране.

Представь что тебе надо работать с архивом. Архивом заведует специальный человек - архивариус. Ты ему говоришь: пойди в архив и принеси папки с делами за прошлый месяц. Он идет, копирует все дела за прошлый месяц и плюхает тебе на стол стопку папок с копиями. Ты в этой стопке копаешься, что-то делаешь. А в это время твой коллега отправляет архивариуса за делами за тот-же самый месяц - архивариус снова делает копии и отдает твоему коллеге его стопку. А если тебе нужно сделать изменение, ты пишешь бумажку и отдаешь ее архивариусу с командой: положи ее в папку номер АБВГД или убери из папки ФЫВА бумажку с заголовком ЙЦУКЕН. Это метод работы с массивами данных которые ты вытянул из базы целиком прежде чем работать с ними.
А теперь представь что ты говоришь архивариусу: дай первую папку за прошлый месяц - арихвариус бежит в архив приносит тебе папку и стоит возле твоего стола пока ты не вернешь ее, потом бежит за второй папкой за прошлый месяц... и на каждую папку ты даешь отдельную команду и архивариус бегает в архив и при этом приносит тебе не копию, а саму папку. Добавить или поправить какую-нибудь бумажку в этой папке становится очень просто.... Но в это время твой коллега сидит и скучает, потому что папки по одной появляются у тебя на столе. И архивариус бегает по твоим заказам и у него нету времени выслушать заказ твоего коллеги. Это метод работы с курсором.

kot275Особо умные DataSet помимо явно прописанного запроса еще и генерируют свои. Например, вытаскивают из метаданных БД название полей, автообновляют набор данных.Ни в коем случае не используй их! Это тот случай когда архивариус не только стоит возле твоего стола, но еще и советует как именно надо читать эти папки. А если ты читаешь их "не так", то следует немедленный удар дубинкой по голове.

kot275 Циклы ведь вещь медленная.С чего это вдруг?
Медленны не циклы, а то что внутри них. Сам по себе цикл это всего-лишь команда "повтори!" а вот что именно надо повторять - вот это уже может быть быстрым или медленным.

kot275 Везде пишут циклы медленные и лучше обойтись без них.Это писали идиоты.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38403779
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275На MS Access обычно клиента по MS SQL и пишут. Еще под Opacle видел, но как сказали сами разработчики, это знатное извращение, но заказчик так захотел.Любое использование MS Access это извращение.

MS Access это прямой идеологический потомок однопользовательских систем типа FoxPro, Paradox, Clipper, etc. Но если эти СУБД изначально задумывались и работали как однопользовтельские СУБД. То MS Access это чрезвычайно тормозная однопользовательская база, в многопользовательском окружении.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38404019
Акс квакс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlЛюбое использование MS Access это извращение.

MS Access это прямой идеологический потомок однопользовательских систем типа FoxPro, Paradox, Clipper, etc. Но если эти СУБД изначально задумывались и работали как однопользовтельские СУБД. То MS Access это чрезвычайно тормозная однопользовательская база, в многопользовательском окружении.

Вот только не надо гнать на Access, и в случае ТС

kot275Вот захотел написать небольшую учёную программу по рабочему оборудованию и комплектующим. Для простоты, скажу так, нечто похожее на складской учет.

Access самое оно.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38404494
Max_Хацкер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблемы с большими выборками были и будут всегда. Это определяется только качеством используемых компонентов и качеством проектирования самого приложения. Например, у меня в одной выборке было до 90 тыс записей и операции фильтрации и сортировки шли очень туго. Частично решить проблему удалось заменой компонентов доступа к данным. Новые компоненты работали с клиентскими библиотека СУБД напрямую, а потому на порядок быстрее.
Тут надо смотреть в сторону серверных курсоров, постраничных выборок и уловок позволяющих сократить объем выборок изначально. Например, выборка может выполняться сервером приложений или самой СУБД, а клиенту выдавать частями только чтобы заполнить пространство на экране. Только при этом становятся бесполезными многие фишки компонентов представления данных. Например, сортировку по щелчку в заголовок колонки они уже сами сделать не могут, составить список уникальных значений для быстрого фильтра уже не могут, корректно подсчитать количество записей тоже не могут и т.д.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38404501
Max_Хацкер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Акс квакс,

Access - часть монстро подобного офисного пакета с массой глюков за неприличные деньги. Делать на его основе что либо не для личного использования это ставить своё предприятие в зависимость от этого продукта.
Вообще для подобных ситуаций и придуманы различные платформы вроде 1С, Tomcat и тому подобные Application Servers. Там уже есть готовые сервер приложений, клиентская часть и большинство технических тонкостей взаимодействия между ними и СУБД решены. Остаётся только заложить свою бизнес логику.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38404521
Max_Хацкер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kot275Дело в том что 1С нелюбимая. Да и дорогое это удовольствие.
По поводу медленно. Ну нет у меня дата-центра своего, и крутой серверной стойки. А в файловом варианте нормально не больше десятка пользователей тянет.
Да и фигня получается. 8,3 нормально сама веб интерфейс рисует уже. Но я для себя не вижу перспектив в 1С.

На счёт дорого это надо сравнивать с другими. Тот же Oracle стоимость миллионами исчисляет, а про SAP даже вспоминать не стоит.
1С очень не плохой выбор. Особенно с выходом 8.3 которая уже работает с PostgreSQL без всяких 1С-патчей и может работать вся в Linux, а не только сервер. А это позволяет сэкономить на лицензиях Windows Server и SQL Server. Там как раз на 1С с 20-30 клиентскими лицензиями и наберётся. Плюс ряд уже готовых и обкатанных решений, например, та же Бухгалтерия.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38404945
Акс квакс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Max_ХацкерАкс квакс,

Access - часть монстро подобного офисного пакета с массой глюков за неприличные деньги. Делать на его основе что либо не для личного использования это ставить своё предприятие в зависимость от этого продукта.
Вообще для подобных ситуаций и придуманы различные платформы вроде 1С, Tomcat и тому подобные Application Servers. Там уже есть готовые сервер приложений, клиентская часть и большинство технических тонкостей взаимодействия между ними и СУБД решены. Остаётся только заложить свою бизнес логику.

В одной конторе, где я сисадминю, есть программист 1С и используется его самописная конфигурация. Это я к тому что в зависимость предприятие можно поставить на любой продукт, пока жив и здоров разработчик. А потом что? Кому то придётся в его коде ковыряться, да ещё в нашей глуши, что практически не реально. В общем это не аргумент.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38405078
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прекратить обсуждение 1С в этой ветке. 1С это для заработка, для ученых систем. Для хобби, и для себя не годится. Дорого и функционал ограниченный.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38405095
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Max_Хацкерразличные платформы вроде 1С, Tomcat и тому подобные Application Servers
Брадт, 1С и Tomcat не пишут через запятую. Это просто анреал. Это как жёлтое с квадратным.
Надеюсь мысль донёс?
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38405288
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

Спасибо за подробный ответ. Переварю с более толковыми вопросами приду, а то видать мыслей по древу растекаюсь.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38408348
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlЛюбое использование MS Access это извращение.

MS Access это прямой идеологический потомок однопользовательских систем типа FoxPro, Paradox, Clipper, etc. Но если эти СУБД изначально задумывались и работали как однопользовтельские СУБД. То MS Access это чрезвычайно тормозная однопользовательская база, в многопользовательском окружении.
Это утверждение неверно. У аксеса много недостатков, есть очень яркие преимущества, но в многопользовательском окружении она "тормозит", если ее неправильно использовать. Вы наверняка мало знаете про аксесс АДП на базе МС СКЛ.

Так что для определенных случаев использование аксес - оптимальный выбор.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38408939
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
П-ЛWhite OwlЛюбое использование MS Access это извращение.

MS Access это прямой идеологический потомок однопользовательских систем типа FoxPro, Paradox, Clipper, etc. Но если эти СУБД изначально задумывались и работали как однопользовтельские СУБД. То MS Access это чрезвычайно тормозная однопользовательская база, в многопользовательском окружении.
Это утверждение неверно. У аксеса много недостатков, есть очень яркие преимущества, но в многопользовательском окружении она "тормозит", если ее неправильно использовать. Вы наверняка мало знаете про аксесс АДП на базе МС СКЛ.

Так что для определенных случаев использование аксес - оптимальный выбор.Да, про "аксесс АДП" я не знаю ничего.
Зато я знаю о том как пишутся клиенты на других фреймфорках. И да, в моей практике был один клиент к большой СУБД написанный на Акцессе и пара баз целиком основанных на Акцессе...
По моему личному мнению, оптимальным выбором MS Access будет только для одной задачи: есть много данных в формате MS Access и надо с ними поиграться, а в нормальную базу переливать данные лениво. Во всех остальных случаях использование MS Access это извращение.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38414771
ambarka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПроблемы с большими выборками были и будут всегда
Это от лукавого, не нужны гибкие интерфесы НСИ прямо вот для 1 миллиона строк. Инертность мышления пользователей. Привычка работать в экселе или еще что. Нужна просто "политическая воля начальника" - ограничить 30 строками выборку, и все. Хочешь точнее - уточняй критерии поиска. Ибо нет необходимости "работать" одновременно со всеми строками. Работают в 1 момент времени только с несколькими (1,2 ну 10). В выгружать весь склад в интерфейс - это безобразие, которое влечет за собой кучу проблем. Еще хорошо придумать хорошую иерархию, где на каждом уровне будет не сильно много элементов.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38414819
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мысль верная, но реализация хреновая.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38415144
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovМысль верная, но реализация хреновая.
+100

К тому же как писал ТС, работа зависит от справочника, который бездумно пополняется юзерами в другой системе. ТС на это повлиять не может.

Тут наверно нужен какой-то гибридный вариант - своя иерархия к плоским исходным данным, плюс доп. поле(поля), которые позволят не показывать дубли (вместо них по ссылке на "причесанные" данные). Только здесь причесывать ручками надо... и не один раз, а периодически...
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38415343
ambarka_max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanBez... который бездумно пополняется юзерами в другой системе.
Это самое страшное. Безобразный ввод ни к чему хорошему не приводит. Соболезную, если так.
sanBez... Только здесь причесывать ручками надо... и не один раз, а периодически...
Это бывает довольно трудозатратно а визуально профита для компании = 0.
От дублей, как следствия неверной организации бизнеспроцесса(и/или структуры стправочников), очень тяжело избавиться, т.к. по сути начинается борьба со следствием а не с причиной - а это бесконечные процесс.
____
Если таблица своя собственная а вставка из внешней системы, то крайним решением можно прикрутить супер-пупер-триггер, который будет артачится при попытке вставить дубли, но это опять борьба со следствием. Нужен удобный и грамотный интерфейс добавления новых артикулов.

Хотя есть и другой путь, нужно лишь принять темную сторону...
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38418201
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
до диез + мс скл
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38419519
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Покопался я в разных примерах и на форумах почитал. Да, другого варианта как работать с массивом кроме как цикл гонять не увидел.
Ну ладно с циклом можно разобрался и его оптимизировать. Тут проблем не вижу.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38419520
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovМысль верная, но реализация хреновая.

Можете более развернуто ответить? Я не въехал. Спасибо.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38419521
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sanBezBasil A. SidorovМысль верная, но реализация хреновая.
+100

К тому же как писал ТС, работа зависит от справочника, который бездумно пополняется юзерами в другой системе. ТС на это повлиять не может.

Тут наверно нужен какой-то гибридный вариант - своя иерархия к плоским исходным данным, плюс доп. поле(поля), которые позволят не показывать дубли (вместо них по ссылке на "причесанные" данные). Только здесь причесывать ручками надо... и не один раз, а периодически...

Ну у меня так и сделано. Плоский справочник, плюс ситемае тегов как на веб сайтах, можно собрать любую иерархию, кому как удобно.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38419523
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kmawдо диез + мс скл

Дорого. Да и сильно на винду завязано.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38419663
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275kmawдо диез + мс скл

Дорого. Да и сильно на винду завязано.Если вам обязательно в новую систему тащить все 300 ГБ накопленных данных, то дешево не будет.
Я сначала хотел посоветовать Oracle Application Express (бесплатно идет в комплекте с ораклом, в освоении не сложнее аксесса), но бесплатная версия оракла позволяет хранить только 11 ГБ. Если у вас нет возможности ужать данные - ничем не могу помочь.
Берите бесплатный Lazarus (вместо любимого вами Delphi) и PostgreSQL, и переезжайте на линукс/макось/куда хотите. Веб-интерфейс как сделать - не знаю пока, что вам посоветовать.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38419731
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kot275А вот второй цикл вывод полученного массива данных на экран, меня и напрягает.
Это техническая проблема. Решается так - идет запрос на сервер на большое число строк. Но читается и выводится на экран только первые 30. При листании вперед считываются следущие 30. При листании назад показываются уже считаные.
зы совет такой - писать всю логику на хранимках (pl/sql), а тонкий интерфейс на чем угодно.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38419745
kot275Доброго времени суток. Я не профессиональный программист, но пишу мелочёвку для себя. Вот захотел написать небольшую учёную программу по рабочему оборудованию и комплектующим. Для простоты, скажу так, нечто похожее на складской учет.
Я не силен в программировании. В своей небольшой практике я встречал три похода.
Первый. База данных отдельно, программный код отдельно, интерфейс отдельно.
Видел такое в Python, PHP. Сама БД разрабатывается отдельно. После пишется программный код который реализует всю логику работы с БД. Отдельно разрабатывается интерфейс. Для Python я использовал PyQt и рисовал в QT Designer, для PHP обычные веб страницы. Логика работы обяно была такая. В программном коде формуем и отправляем запрос. Получаем массив данных с БД. Полученные данные выводим в интерфейс(тут обычный цикл крутим). Посмотрели, чего надо ввели. Забираем данные с интерфейса(тоже тут обычный цикл крутим). Собираем запрос для обновления(вставки) на сервер. Оправляем запрос. И по новой.
Второй. База данных, программный код, интерфейс все в одном флаконе. В качестве примера приведу Microsoft Access. Тут достаточно просто расписать структуру базы данных, накидаьб форму. Сам программа неким «магическим способом» будет вносит данные в БД и наполнять интрефейс(формы).
Третий. База данных отдельно, программный код и интерфейс совместно. Здесь к у меня Дельфи. Здесь возможно реализовать, как и первый подход и так частично второй. На эту тему даже ведется длительные полемики в ветке по Дельфи. Как писать с или без DB-aware компонентами. Также это поход могут реализовать и многие фреймворки.
Как правильно писать программу для работы с БД?


В твоем случае правильно не писать, а освоить уже понаписанное в 1С.

Даже абсолютно грамотно написанное нечто - будет непроходимой глупостью с силу наличия уже готового и почти бесплатного функционала.

Всегда ваш - капитан очевидность.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38420837
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rockclimberkot275пропущено...


Дорого. Да и сильно на винду завязано.Если вам обязательно в новую систему тащить все 300 ГБ накопленных данных, то дешево не будет.
Я сначала хотел посоветовать Oracle Application Express (бесплатно идет в комплекте с ораклом, в освоении не сложнее аксесса), но бесплатная версия оракла позволяет хранить только 11 ГБ. Если у вас нет возможности ужать данные - ничем не могу помочь.
Берите бесплатный Lazarus (вместо любимого вами Delphi) и PostgreSQL, и переезжайте на линукс/макось/куда хотите. Веб-интерфейс как сделать - не знаю пока, что вам посоветовать.

Тащить данные не надо. Меня волне устраивает Firebird. Проблема реализовать интерфейс и обработку данных.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38420839
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_модkot275А вот второй цикл вывод полученного массива данных на экран, меня и напрягает.
Это техническая проблема. Решается так - идет запрос на сервер на большое число строк. Но читается и выводится на экран только первые 30. При листании вперед считываются следущие 30. При листании назад показываются уже считаные.
зы совет такой - писать всю логику на хранимках (pl/sql), а тонкий интерфейс на чем угодно.

Я пошел проще я больше 50 записей в принципе не тащу, нет вижу смысла простыни лепить.
А вот с тонким интерфейсом у меня беда.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38420840
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Капитан очевидность на проводеВ твоем случае правильно не писать, а освоить уже понаписанное в 1С.

Даже абсолютно грамотно написанное нечто - будет непроходимой глупостью с силу наличия уже готового и почти бесплатного функционала.

Всегда ваш - капитан очевидность.

Нет готового, к сожалению. И делать некому.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38421108
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kot275Я пошел проще я больше 50 записей в принципе не тащу, нет вижу смысла простыни лепить.
А вот с тонким интерфейсом у меня беда.
Так это пользователь дает запрос на 100500 записей.
В тонком клиенте вся обработка дергает хранимки и вьюшки. Кода по минимуму.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38421899
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275Можете более развернуто ответить?Вытянуть на клиента миллион строк - само по себе не проблема. Случай "клиент со спутниковым каналом" - пока не рассматриваем.
А вот упихнуть тот же миллион строк в грид для отображения клиенту - очень плохо.
Но решается эта проблема не "политическими ограничениями", а вдумчивой разработкой интерфейса.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38423689
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_модkot275Я пошел проще я больше 50 записей в принципе не тащу, нет вижу смысла простыни лепить.
А вот с тонким интерфейсом у меня беда.
Так это пользователь дает запрос на 100500 записей.
В тонком клиенте вся обработка дергает хранимки и вьюшки. Кода по минимуму.

А в ответ фига ему. У меня и так все на хранимках и вьюшкиах, удобно однако, чтоб не обжирались вывод идет через оконные функции. Но не все удается в хранимки и вьюшки засунуть.
Вот с тонким клиентом беда. Вот получил я в ответ на запрос массив данных. В программе используем ООП, удобно однако, надо заполнить поля объекта, куча операторов присваивания, потом вывести его на экран, опять куча операторов прививания, потом считать с экрана, опять операторы присваивания, потом в БД отправить опять операторы прививания. И все это в циклах крутится. Жуть и мрак.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38423694
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovkot275Можете более развернуто ответить?Вытянуть на клиента миллион строк - само по себе не проблема. Случай "клиент со спутниковым каналом" - пока не рассматриваем.
А вот упихнуть тот же миллион строк в грид для отображения клиенту - очень плохо.
Но решается эта проблема не "политическими ограничениями", а вдумчивой разработкой интерфейса.

У меня именно случай "клиент со спутниковым каналом" иль еще с каким эксклюзивом.Провинция, интернет еще не дошел.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38423921
rockclimber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275_модпропущено...

Так это пользователь дает запрос на 100500 записей.
В тонком клиенте вся обработка дергает хранимки и вьюшки. Кода по минимуму.

А в ответ фига ему. У меня и так все на хранимках и вьюшкиах, удобно однако, чтоб не обжирались вывод идет через оконные функции. Но не все удается в хранимки и вьюшки засунуть.
Вот с тонким клиентом беда. Вот получил я в ответ на запрос массив данных. В программе используем ООП, удобно однако, надо заполнить поля объекта, куча операторов присваивания, потом вывести его на экран, опять куча операторов прививания, потом считать с экрана, опять операторы присваивания, потом в БД отправить опять операторы прививания. И все это в циклах крутится. Жуть и мрак.Используйте Lazarus и DB-aware компоненты. Там все перечисленное вами делается мышкой, без единого оператора присваивания.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38424757
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kot275У меня именно случай "клиент со спутниковым каналом" иль еще с каким эксклюзивомОцените реальные объёмы данных, возможности (потокового) сжатия и подумайте - о том ли вы думаете?
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38425037
kot275Капитан очевидность на проводеВ твоем случае правильно не писать, а освоить уже понаписанное в 1С.

Даже абсолютно грамотно написанное нечто - будет непроходимой глупостью с силу наличия уже готового и почти бесплатного функционала.

Всегда ваш - капитан очевидность.

Нет готового, к сожалению. И делать некому.


Чего чего именно нет в 1С?

Вот этого?

авторВот захотел написать небольшую учёную программу по рабочему оборудованию и комплектующим.


Такое там как раз есть - минимум в трех разных вариантах - от просто учета аля склад, до полного цикла по ремонтам, в т.ч. ППР и т.п.

Но ты пиши пиши, свой лисапет всегда милее.
...
Рейтинг: 0 / 0
Как правильно писать программу для работы с БД?
    #38427402
kot275
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Капитан очевидность на проводе,

За Ваши деньги любой каприз.
...
Рейтинг: 0 / 0
61 сообщений из 61, показаны все 3 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как правильно писать программу для работы с БД?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]