Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Интересно подискусировать с профессионалами возможность написания баз данных по следующим принципам (см. сайт mzc.narod.ru ): 1. отказываемся от SQL-сервера и команды select, 2. пишем свой сервер на базе каких-либо таблиц и реализации функций работы с этими таблицами, 3. клиент делает запрос к базе, вызывает эти функции По моему мнению, писать функции на любимом С++ для баз данных, а не писать, например, на PL/SQL или на декларативном языке SQL - это на много интереснее, возможно, продуктивнее. Прав ли я? Или я нахожусь на ложном пути? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 08:24 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Пилите Шура, пилите...) Когда я учился в школе тоже мечтал создать пилотируемый корабль). А если серьезно: прочитайте сколько человек работали над созданием стабильной версии Oracle, SQLServer. Уверен что среди них как минимум 10% были большими специалистами чем вы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 08:43 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
>А если серьезно: прочитайте сколько человек работали над созданием >стабильной версии Oracle, SQLServer. >Уверен что среди них как минимум 10% были большими специалистами чем вы. да вроде нормально работает... ну покрайней мере для простых приложений с одной, двумя, тремя табличками, для простых систем, разве нет??? так можно к любой программе подвести, что её надо отлаживать, что не надо изобретать колесо, что все программы уже написаны... и т.д. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 09:03 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
автортак можно к любой программе подвести, что её надо отлаживать, что не надо изобретать колесо, что все программы уже написаны... и т.д. ... Зашел на Ваш сайт. Посмотрел, прикололся. Что думаю: 1. Для самообразования изобретать велосипеды хорошо. Но главное не заниматься гигантоманией (типа написать свою ОС, свою БД и т.д.). 2. Прежде чем таким образом заниматься самообразованием неплохо бы ознакомиться с существующими технологиями. В Вашем случае я бы просто порекомендовал немножно оторваться от Borland C Builder и познакомиться с C# и Java. Так же прежде чем утверждать насчет того, что на C++ можно быстрее и эффективнее писать хранимые процедуры, чем на разных диалектах SQL (TSQL, PLSQL, WatcomSQL и т.д.), я бы порекомендовал ознакомиться с самими СУБД и их возможностями, причем на сложных и больших БД. Не думаю, что Вас прельщает идея изобрести свой велосипед, который окажется жалким подобием существующих. 3. Ознакомиться с историей создания удачных велосипедов. Как окажется, писались они в основном специалистами в определенных областях, когда для них явно возникала такая необходимость и они понимали, что решать надо самим (для начала рекомендую ознакомиться с историей создания PHP и Python). Из всего этого следует вывод: прежде чем написать велосипед, нужно доказать: 1. Такого велосипеда в природе нет 2. Этот велосипел возможно написать существующими силами человека/команды 3. Предлагаемое решение востребованно и можно обосновать его необходимость доказательствами, а не голыми утверждениями, что так будет лучше 4. При реализации проекта команда получит различные поощрительные плюшки в виде славы/рекламы/денег или еще чего. То есть есть прямая заинтересованость в доведение проекта до конца. Если все условия совпадают, то велосипед имеет право на жизнь. Если нет, то просто зайдите в интернет, купите умных книг и начинайте заниматься самообразованием. P.S. Borland C Builder не самые лучшее доказательство того, что в мире чего то нет и не самый лучший инструмент, чтобы сделать что то свое. Для меня он - сборная дикая солянка C++ и VCL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 10:27 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Если имеется в виду что-нибудь вроде использования Visual FoxPro в качестве сервера приложений, то вполне реально (см. примеры и MSDN). Хотя некоторые обязательно скажут, что этот путь для извращенцев ;-). Ну а вот если речь о том, чтобы самому написать все низкоуровневые функции по работе с данными - это, по-моему, непродуктивная трата времени. И уже я скажу фразу про путь ;-). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 10:29 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
На счёт глобальных идей типа своей операционной системы, использую принцип - ставлю перед собой очень глобальные и недостижимые цели, стараясь достигнуть которые - достигаю более простых... В защиту C++ Builder скажу, что Microsoft Visual C++.NET применил свои формсы, явно основываясь на том же принципе, что и у Borland C++ Builder... хотя, как мне кажется Borland идею для Delphi и Builder взял у Visual Basic... Да и потом, для меня какая разница какое средство использовать, - всё равно я пишу своё, правда на базе С++ !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:43 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Мне бы хотелось заметить, что все таки лучше писать свое, но то, чего еще нет, а в жизни бы не помешало. Например у Вас на сайте много чего расписано про Конструктор и расширения языка, которые в примитивном виде дублируют все то, что уже давно сделано в C# и Java. Напрашивается вопрос - а зачем тогда все это делать то ? Ведь сами же знаете, что лучше по любому не получиться. Не легче ли выучить существующее, разобраться и стать спецом, а потом просто расширять возможности существующих систем до необходимого уровня, которого по Вашему мнению не хватает. Мне кажется, что время систем с нуля уже давно и безвозвратно прошло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:50 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Ознакомиться с историей создания удачных велосипедов. Как окажется, писались они в основном специалистами в определенных областях, когда для них явно возникала такая необходимость и они понимали, что решать надо самим Можно список продолжить: Linux, C++, ... По моему мнению, писать функции на любимом С++ для баз данных, а не писать, например, на PL/SQL или на декларативном языке SQL - это на много интереснее, возможно, продуктивнее. Интереснее - понятие субъективное. А вот насчет продуктивнее - сомневаюсь. Были преценденты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 12:56 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
В продолжение к ASCRUS. 2автор Можете поинтересоваться как например учат в НИИ: Проанализировать текущий мировой опыт в своей области, и далее на основе этого опыта и определеннолй методологической базы начать свои исследования(разработки). И стремиться эти разработки сделать быстрее(ибо таких как вы исследователей - миллионы),дешевле (- для России) чем коллеги за бугром или в другом городе. ТОлько тогда вам обеспечен почет и уважение. А заново изобретать теорию относительности, пусть даже с моделью на С+ - ,бесцельная трата 1)вашего времени 2)денег вашего государства потраченного на ваше образование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 13:02 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Цитата с сайта автораЧто такое база данных? Это набор файлов, в которых, естественно, в табличной форме хранятся данные. ... Библиотека MzLib, а вернее её часть MzDbNet содержит классы, с помощью которых любой может запрограммировать свой сервер баз данных. ... Использование такого нестандартного подхода, возможно, позволит вам отказаться от дорогостоящих серверов баз данных американских компаний типа Oracle или Microsoft. Думаю, что единственный совет, который можно дать автору - учитесь, читайте книжки, думайте о знаниях, а не о славе. Поменьше сидите за компьютером и побольше общайтесь с народом, не забывайте про прекрасный пол и т.д. и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 13:06 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
to ASCRUS Наверное одна из самых здравых мыслей на этом форуме :) Полностью поддерживаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 13:19 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
2All Чего на человека налетели? Правильный подход! 1. Сначала пишется свой компилятор и собственный язык программирования 2. Потом пишется своя среда для разработки приложений на собственном языке программирования 3. В среде для разработки приложений на собственном языке программирования пишется собственная СУБД на собственном языке программирования 4. Далее, разарабатываются собственные правила бухучета и финансового управления 5. Создается собственная система, основанная на собственных правилах бухучета и управления финансами, использующая собственную СУБД и написанная на собственном языке программирования 6. Наступает блаженство!!! (кстати, и пенсия похоже тоже наступает) Что, не скучная жизнь? То-то! :0)) ЗЫ А если серьезно - прислушайтесь к ASCRUS. --------------- Работай с умом, а не до ночи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 18:25 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Как окажется, писались они в основном специалистами в определенных областях, когда для них явно возникала такая необходимость не знаю про большинство - но то что упоминалось, а точнее Linux&PHP разработка студентов, причем Линус не далее как пару дней грил что смотрел свои коды и удивлялся как непрофесионально он писал когда-то :) так что изобрести свой велосипед обязан каждый, главное чтоб программер был ленив, тогда просветвление наступит вовремя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 18:55 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Если взять историю Линукса, PHP или Питона, то окажется, что люди, написавшие их в свое время "наработались и упарились" с другими системами и явно видели, как все это можно сделать легче и красивее. Линукс писался после активной работы Торвальда с Юниксом, PHP написан человеком, который долго работал на Perl и т.д. Думаю если копнуть, то окажется, что многое из прекрасного ПО было или содрано с идей спецов теоретиков (тот же Вирт дал немалый толчок для развития Delphi и Java) или же было рождено в муках работы с существующем ПО. Хочу заметить, что я лично еще не помню ни одного вышедшего на большую арену продукта, который бы был просто рожден в муках творчества. Хотя конечно я и сам мало знаю, чтобы слишком авторитетно об этом рассуждать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 19:35 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
да пусть пока витает в облаках окончит школу, потом институт, пойдёт работать - тут юзеры ему крылья и пообламают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 21:36 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Это круче, чем у 1024! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 21:56 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Да, это круче... Если бы не одно но! Давай, mzprog опиши конкретней, что бы ты хотел видеть еще в С++. Довольно много было споров по поводу расширения С++ стандартами предусматривающими что-то вроде reflection в дотнете. Кстати, а ты MC++ видел? и как? Может есть уже, то что ты хотел? Далее, почему не видно активного использования шаблонов? Это что, наследие OPascal? Далее, какая нафиг разница, каким компилятором компилить, особенно сейчас. "Затачивая" это дело под BC++ ты обрубаешь большую часть плюсовиков, им даже будет лень взглянуть на это детище. Да и правила именования у тебя попахивают серединой 90-х... Да и еще инициалы туда же влепил... Ну ты брат, загнул малость. Серьезней надо быть, особенно если такая амбициозность немаленькая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2004, 22:33 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
ASCRUSНапрашивается вопрос - а зачем тогда все это делать то ? Ведь сами же знаете, что лучше по любому не получиться. Не легче ли выучить существующее, разобраться и стать спецом, а потом просто расширять возможности существующих систем до необходимого уровня, которого по Вашему мнению не хватает. Мне кажется, что время систем с нуля уже давно и безвозвратно прошло. Процесс изучения существующего мне давно уже наскучил... изучаешь, изучаешь, а они всё новое придумывают, придумывают... С другой стороны завидно, кто-то придумывает, ты ты так в качестве юзера, да и за страну обидно, у нас много талантливых программистов, а они все на штаты в основном работают... авторИспользование такого нестандартного подхода, возможно, позволит вам отказаться от дорогостоящих серверов баз данных американских компаний типа Oracle или Microsoft. Это скорее не стремление к славе, а выдавание желаемого за действительное... Jimmy1. Сначала пишется свой компилятор и собственный язык программирования 2. Потом пишется своя среда для разработки приложений на собственном языке программирования 3. В среде для разработки приложений на собственном языке программирования пишется собственная СУБД на собственном языке программирования 4. Далее, разарабатываются собственные правила бухучета и финансового управления 5. Создается собственная система, основанная на собственных правилах бухучета и управления финансами, использующая собственную СУБД и написанная на собственном языке программирования 6. Наступает блаженство!!! (кстати, и пенсия похоже тоже наступает) Что, не скучная жизнь? То-то! :0)) НЕ УЧИ МЕНЯ ЖИТЬ!!! Если взять историю Линукса, PHP или Питона, то окажется, что люди, написавшие их в свое время "наработались и упарились" с другими системами и явно видели, как все это можно сделать легче и красивее. Вообще-то, опыт программирования не менее 15 лет... Далее, почему не видно активного использования шаблонов? Это что, наследие OPascal? ну, конечно... "Затачивая" это дело под BC++ ты обрубаешь большую часть плюсовиков надо же на чём-то начинать... в конечном итоге, должно работать стандартный C++ Да и еще инициалы туда же влепил... Ну ты брат, загнул малость инициалы для того, чтобы разрулить такую ситуацию: например, есть уже стандартный класс CObject и создаю свой стандартный класс CObject, короче, чтобы не запутаться - вставил свои инициалы, да и потом они мне душу греют ... :) В принципе, я и сам понимаю, что цели, поставленные мною - нереальные !!! и полность они никогда не будут выполнены, просто этими целями построен вектор направления движения (примерно, как при СССРе, цель - КОММУНИЗМ), а достижение этой цели, этого вектора - изначально нереальная задача. Если осмыслить сайт, то там сразу же и даны все ограничения, то есть написание своего компилятора и оси - об этом пока и речи нет (и скорее всего не будет)... Разработка своих баз данных - это просто эксперимент, который, кстати, работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 09:41 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
авторВообще-то, опыт программирования не менее 15 лет... Вы уж меня извините, но после Ваших высказываний о СУБД я честно говоря сомневаюсь, что Вы работали хоть на одной из существующих СУБД и представляете себе сложность ее реализации. Если же Вы хотите сделать маленькую примитивную СУБД, которая умеет хранить таблички и путем перебора записей их на клиенте обрабатывать, то рекомендую Вам просто посмотреть на файл-серверные системы, даже чтобы сделать аналог Fox-а или Jet Access-а, Вам придеться здорово попотеть. И все для чего - чтобы только показать всем, что в России есть "талантливые программисты". Лучше бы Вы стремились к тому, чтобы доказать, что в России есть профессиональные программисты, которые благодаря своим знаниям, опыту, нашему национальному нестандартному мышлению, могут успешно решать сложные поставленные задачи. Цитата: Люди странные существа - сначала Вы изобретаете что-то, а потом начинаете придумывать зачем это изобрели (c) Пан Сатирус (Ричард Уормсер) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 10:42 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Вы уж меня извините, но после Ваших высказываний о СУБД я честно говоря сомневаюсь, что Вы работали хоть на одной из существующих СУБД и представляете себе сложность ее реализации Базам данных я предпочитаю объектно-ориентированное программирование, то есть в базах я слаб... поэтому и обратился в форум... Если же Вы хотите сделать маленькую примитивную СУБД, которая умеет хранить таблички и путем перебора записей их на клиенте обрабатывать, то рекомендую Вам просто посмотреть на файл-серверные системы, даже чтобы сделать аналог Fox-а или Jet Access-а, Вам придеться здорово попотеть. А что, пример базы данных, опубликованный на сайте mzc.narod.ru не работает? Кстати, ВЫ, наверное, не поняли смысла, но обработка всех записей идёт на сервере...Итак, для сервера, под ваш проект, пишется программа на основе класса CMzDbServer. Эта программа и будет сервером. Работа с клиентом осуществляется путём вызова функций с параметрами (типа хранимых процедур). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 12:12 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Что вы! Я не учу никого жить. Напротив, я сам как раз закончил очередную версию собственной СУБД - Oracle 10. Может, слышали? :0)) ЗЫ Профессионализм программиста, по моему, это - не пиписьками (пардон, талантами) с другими меряться, а употребить свой талант на действительно реальные вещи. Да хотя-бы на изобретение Perpetuum Mobile (шутка) --------------- Работай с умом, а не до ночи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 12:30 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
15 лет ... мда сурово... По моему мнению, писать функции на любимом С++ для баз данных вы знаете, что такое языки 4G поколения ? зачем именно их суют в базы ? конечно на счет таланта вы заставили нас за сумневатся, но если реально есть опыт попробуйте сделать нечто полезное, ну что-нибудь для posgres/mysql, например древовидные запросы для mysql. а люди заценят :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 12:38 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Базам данных я предпочитаю объектно-ориентированное программирование, то есть в базах я слаб... поэтому и обратился в форум... Ну вот примитивная задачка: есть две таблицы, в каждой по одной колонке. Надо выбрать из первой таблицы записи, которых нет во второй. Хотел бы посмотреть как это на много интереснее, возможно, продуктивнее выглядит на С++ Для сравнения на SQL это будет примерно так Код: plaintext Неинтересно конечно, но на мой взгляд продуктивней чем на каждый запрос городить объекты. Ну а насчет опыта 15 лет... Извиняюсь, но судя по заданиям как-то не верится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 14:00 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Да, кстати, теоретическая проработанность вопроса характеризуется следующей цитатой: Код: plaintext 1. 2. 3. 4. --------------- Работай с умом, а не до ночи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 14:14 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
да уж, человек еще и до четырёх не научился считать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 14:35 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Нда... авторБазам данных я предпочитаю объектно-ориентированное программирование, то есть в базах я слаб... поэтому и обратился в форум... и авторИнтересно подискусировать с профессионалами возможность написания баз данных по следующим принципам (см. сайт mzc.narod.ru): 1. отказываемся от SQL-сервера и команды select, 2. пишем свой сервер на базе каких-либо таблиц и реализации функций работы с этими таблицами, 3. клиент делает запрос к базе, вызывает эти функции По моему мнению, писать функции на любимом С++ для баз данных, а не писать, например, на PL/SQL или на декларативном языке SQL - это на много интереснее, возможно, продуктивнее. Как можно вообще говорить онаписании самим баз данных, если в оных слаб.... ЗЫ Я вот думаю, может начать самолеты делать - че там Боинги, мне такие не нужны. Нужен под разные задачи свой - че же, покупать? Не, сам спаяю. Правда нифига не знаю, как его делать, но видел - летают, и даже сам летал, дык чего, такое сам не сделаю? Железнодородный вагон с крыльями - и вперед....... Ну может не вагон, погорячился я. Ну ладно, маленькую вагонетку. -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 15:14 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Я и СУБД не сильно то представляю, как оно там внутрях :) Но использую на всю катушку. .... А повторять такое нет желания. И не было -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 15:17 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Щас расскажу свою иссторию... Я свою sql однажды написал (бывает такое, когда учишься в институте) :), причем к ней обращались машин 15, и все работало :). Естественно все было очень примитивно. Потом пошли базы, MySQL, MSSQL, ASA, и др. И начинаешь понимать, что то, что ты делал есть ерунда по сравнению с готовыми разработками. Но я не жалею о потраченном времени, потому как разрабатывая подобные велосипеды обретаешь опыт... который может быть и никогда не получишь, всю жизнь работая на профессионально выполненных вещах... Дорогие "нападающие", не нападайте слишком ... всему свое время... человеку нужно дать его. Хотя главное вы уже сделали - посеяли в его душу зерно сомнения, задели, это должно послужить стимулом. Дорогой "оборогяющийся", С++ это не самоцель в жизни. Стоит отвлечься от ООП и заняться другими вещами. Поверьте, однажды мне пришлось даже изучать ёксель; я считал, что я его знаю, но увидев, как управляется с ним другой юзверь, просто обалдел. Мой вам совет, будьте "всеядны"... Например, возьмите для начала PHP + MySQL... откроете для себя массу нового... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 16:25 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Подписываюсь под словами Рыжего. ========= Рыжий. Нащ смайлик - $ > : < Без пробелов. ======== Из неписанного Кодекса SQL.ru "Коты могут обращатся друг к другу, опуская слово "кот". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 20:28 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
FAR - лучшее средство разработки на C++ tar + make - лучший органайзер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2004, 23:06 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2004, 10:44 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
SuperSergНу вот примитивная задачка: есть две таблицы, в каждой по одной колонке. Надо выбрать из первой таблицы записи, которых нет во второй. Ну, хорошо, напиши на чистом SQL - ле следующее: выбрать из таблицы записи с 5-ой по 10-ю... JimmyДа, кстати, теоретическая проработанность вопроса характеризуется следующей цитатой: Установим четыре постулата нашей концепции: 1. Все типы данных заменяются на классы типов данных. 2. Исходный код программы хранится в файле со своим спецформатом. 3. Визуальные объекты строятся на базе простых графических функций. Спасибо, что внимательно читал сайт... Рыжий Кот Мой вам совет, будьте "всеядны"... Например, возьмите для начала PHP + MySQL... откроете для себя массу нового... Я думаю наоборот, что каждый человек должен специализироваться на чём-то, конечно, хорошо бы изучить PHP + MySQL... Сделаю это сразу же после достижения ощутимого результата в создании Mz C++ Constructor !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 08:48 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
извините что вмешиваюсь :-) Ну, хорошо, напиши на чистом SQL - ле следующее: выбрать из таблицы записи с 5-ой по 10-ю... К сожалению, у вас мало опыта. Да и с теоретическими познаниями туговато. По крайней мере что касается современных rdbms и sql интерфейсов. В таблицах нет установленной очередности строк. Очередность строк можно установить при помощи команды(если можно так выразится) order by и выбрать с 5 по 10 при помощи (в различных диалектах по разному) first 5 seek 5. таким образом задача решается такой строчкой: select first 5 seek 5 from sometable order by somefield Революционные работы хороши, но имхо, нужно найти действительно полезную и не разработанную область. А новый язык, новая операционка и новая база данных не имеют ничего нового на самом деле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 09:46 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Кроме реляционных СУБД, есть ещё ОО ориентированные. Попробуйте их в работе. Возможно всё что вы пытаетесь сделать самостоятельно, уже было решено в рамках так горячо вами любимой ОО методологии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 10:01 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
http://www.ispras.ru/~knizhnik/gigabase.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 10:14 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
alex_k select first 5 seek 5 from sometable order by somefield Microsoft SQL мне выдаёт на это ошибку: Server: Msg 170, Level 15, State 1, Line 1 Line 1: Incorrect syntax near '5'. Что-то не прокатывает?!! Чистый SQL, такой синтаксис не поддерживает!!! Революционные работы хороши, но имхо, нужно найти действительно полезную и не разработанную область. А новый язык, новая операционка и новая база данных не имеют ничего нового на самом деле. Новая - не значит, что там применено что-то такое новое, революционное... просто другое, мне просто интересно писать... я не изобретатель, я просто программист, просто хочу написать своё средство разработки (при этом появляются наработки, которых хватит на половину операционной системы), думал, что и своя модель базы данных будет, для меня по крайней мере, наиболее эффективней... Попробуйте их в работе. Возможно всё что вы пытаетесь сделать самостоятельно, уже было решено в рамках так горячо вами любимой ОО методологии.Возможно... какие базы поддерживаю её? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 11:58 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
> Что-то не прокатывает?!! Чистый SQL, такой синтаксис не поддерживает!!! а SQL Server это не чистый SQL, хоть и называется SQL Server. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 12:18 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
на самом деле, с уважением отношусь к попыткам mzprog, так как сам не стесняюсь заниматься чем-то подобным! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 12:19 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
все мы не стесняемся заниматься чем-то подобным. но почему-то все стсняются сделать систему распознавания речи или наоборот воспроизведения текста, но никто не стесняется разработать пару классов читающих структурированный файл и не стесняются назвать это "новым сервером базы данных" как-то неудобно заявить, что мол я напишу новую игру для младшего школьного возраста, интересную, не требовательную, полезную в воспитании и обучении, а заявить я мол напишу новую операционную систему, всем воспринимается "ну, парень хочет, дерзает, удачи ему". А вот хер, а не удачи. пусть полезным делом займется, тогда удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 12:27 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
авторНовая - не значит, что там применено что-то такое новое, революционное... просто другое, мне просто интересно писать... я не изобретатель, я просто программист, просто хочу написать своё средство разработки (при этом появляются наработки, которых хватит на половину операционной системы), думал, что и своя модель базы данных будет, для меня по крайней мере, наиболее эффективней... Я бы Вам порекомендовал задасться вопросом - а кто на Вашей СУБД будет работать ? То что Вы не знаете, как в MSSQL вывести записи с 5 по 10 не говорит о том, что MSSQL ничего не умеет, а говорит только о том, что Вы его просто не знаете и не умеете работать с форумами в интернете и читать BOL. Самое главное в любом ПО - это его востребованность. Согласитесь не интересно писать "свое" и только для себя. Труда много, а толку и материальных выгод мало. P.S. Вообще то меня удивляет Ваше "нежелание" просто начать учить принципы работы РСУБД, мотивируя это тем, что легче самому написать. Если таким принципам следовать, то зачем спрашивается C++ учить, время зазря тратить, пишите уж на ассемблере сразу все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 12:42 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
просто не совсем понятно почему он именно субд решил написать, а не самолет построить или станцевать ... судя по его постам он все это сможет сделать примерно одинаково ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 12:45 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
> А вот хер, а не удачи. пусть полезным делом займется, тогда удачи.\r \r > Вообще то меня удивляет Ваше "нежелание" просто начать учить принципы работы РСУБД, мотивируя это тем, что легче самому написать. \r \r лень - двигатель прогресса. может, его пока родители кормят. и вобще, добрее надо быть, человечней.\r \r хотя я вспомнил, мне вот это на самом деле понравилось. перепутал изобретателей.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 12:53 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
2 Yo! Это точно!!!!! Еще можно свой фотошоп написать. Для себя. А то эти буржуи неправильно картинки обрабатывают :) -- Tygra's -- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 12:53 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
mzprog Что-то не прокатывает?!! Чистый SQL, такой синтаксис не поддерживает!!! Чистый SQL с данными работает, с отношениями этих данных между собой, а не с записями, с записями должен клиент работать. А я, видать, так и не увижу как это на много интереснее, возможно, продуктивнее выглядит на С++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 13:02 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Что вы к человеку придираетесь? Пусть пишет. Можно подумать вы никогда не писали абсолютно никому (кроме вас самих) ненужных прог, в душе надеясь побить славу Товальдса, Гейтса и Эллисона вместе взятых :-) 2 mzprog: сильно не увлекайся написанием собственной СУБД. Лучше пойди пивка попей. eNose ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2004, 13:04 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
select first 5 seek 5 from sometable order by somefield В MSSQL я переписал эту запись так: select first 5 seek 5 from orders order by orderid Почему то не прокатывает? Что здесь не правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 07:26 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
авторВ MSSQL я переписал эту запись так: select first 5 seek 5 from orders order by orderid Почему то не прокатывает? Что здесь не правильно? MSSQL не поддерживает семантику MySQL (см. BOL). Почитать ответ на Ваш вопрос можно в FAQ . Задать другие вопросы можно на форуме MSSQL . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 08:09 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Спасибо, ASCRUS. Вот что я нашёл по вашей ссылке.... SELECT TOP 100 * FROM MyTable WHERE id NOT IN (SELECT TOP 100 id FROM MyTable ORDER BY id) ORDER BY id согласитесь, что это не эффективный подход, вместо того, чтобы сразу взять нужные записи (пример на С++): //пусть MyTable - это таблица в виде массива //а Count - кол-во записей в таблице for (int i = 100; i < 200; i++) { // берём данные по строчкам из MyTable } такой подход поскорости быстрее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 08:34 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Да кто Вам сказал, что этот подход не эффективен ??? Сервер БД сам решает каким образом выполнять запрос. Как правило, планы которые он строит достаточно эффективны и не Вам с ними соревноваться. Больше читайте прежде чем нести ахинею. Извините, накипело. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 08:45 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
мзпрог, а сколько вам лет? просто интересно... 15 лет программирования, значит должно быть больше 30? Мну в институте тоже не разрешалось разрабатывать курсовые НЕ на dbase или foxpro... иначе говорили, что взял, натыкал и все готово... Просто серьезных вещей вы не делали, потому что выбрать 5 записей после двадцатой, это не задача для крупного проекта. (это вообще не задача). Посмотрел бы я на ваш подход в решении задачи биллинга, например, для сотового оператора, банка. Вы же доверяете оптимизацатору С++ при компиляции? Почему же считаете, что оптимизатор в СУБД сделает это хуже? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 09:16 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
GlukДа кто Вам сказал, что этот подход не эффективен ??? Сервер БД сам решает каким образом выполнять запрос. Как правило, планы которые он строит достаточно эффективны и не Вам с ними соревноваться. Больше читайте прежде чем нести ахинею. итак смотрим что для SELECT TOP 100 * FROM MyTable WHERE id NOT IN (SELECT TOP 100 id FROM MyTable ORDER BY id) ORDER BY id нарешал оптимизатор Microsoft: select - top - merge join right - 1,2 // разбивается на две ветки... 1 - top - order.rk+order 2 - order.rk+order это что оптимальный подход для этой задачи? В чём заключается ахинея? Просто все реляционные СУБД построены на базе реляционной алгебры... Эффективна ли она в некоторый подходах... Рассмотрим select... select * from T1 на C++ выглядело бы так: for (int i = 0; i < T1.Count; i++) { ... = T1 ; } select T1.id from T1,T2 where T1.id = T2.id на C++ выглядело бы так: for (int j = 0; j < T2.Count; j++) for (int i = 0; i < T1.Count; i++) { if (T1.id == T2[j].id) ... = T1.id; } а если теперь нам нужно выбрать только по чётные id? в С++ я бы написал так: for (int j = 0; j < T2.Count; j++) for (int i = 0; i < T1.Count; i++) { if (T1.id == T2[j].id && i % 2 == 0) ... = T1.id; } интересно, как в SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 09:46 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
to mzprog. М.б. я чего-либо недопонял, но СУБД у вас нет. Переубедите меня, ответив на следующие вопросы: 1. Многопользовательский доступ к данным. 2. Наличие транзакций 3. Обеспечение безопасности данных. 4. Обеспечение надежности (архивирование, зеркалирование и т.д.) 5. Наличие средств администрирования БД. 6. Далее. Приведенный пример: for (int i = 100; i < 200; i++) { // берём данные по строчкам из MyTable } просто не имеет смысла. Потому что данные в БД а) не упорядочены; б)количество нужных записей обычно заранее не известно. Жду ваших убедительных возражений! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 09:51 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
авторselect T1.id from T1,T2 where T1.id = T2.id на C++ выглядело бы так: for (int j = 0; j < T2.Count; j++) for (int i = 0; i < T1.Count; i++) { if (T1.id == T2[j].id) ... = T1.id; } Думаю, даже на C++ это выглядело бы не так. Не делать T1.Count*T2.Count сравнений должны учить еще в школе. А сортировать пузырьком будете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 10:00 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
а что, в mssql нельзя пропустить несколько строк в упорядоченном запросе? странно... все у них не как у людей :-) а по поводу шедеврального Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ну это анекдот :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 10:06 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
2 mzprog Вообще-то удивляет Ваше нежелание ознакомиться с предметом спора в который вы ввязались. Е. Ф. КоддБудущие пользователи больших банков данных должны быть освобождены от необходимости знать организацию данных в машине (внутреннее представление). Нельзя считать удовлетворительной какую-либо службу, если она предоставляет такую информацию. Изменение внутреннего представления данных и даже изменение некоторых аспектов их внешнего представления не должны влиять на работу пользователей за их терминалами и на выполнение большинства прикладных программ. Изменения представления данных часто требуются по причине изменения потока запросов, операций обновления и отчетов, естественного увеличения числа типов хранимой информации. Полный текст см Реляционная модель данных для больших совместно используемых банков данных PS. Вообще-то это грустно. Да ладно. Скажите как будет происходить на C++ Примерно такое: select T1.id from T1,T2 where T1.id = T2.id and T1.name like '%Панты%марала% ' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 10:14 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
авторselect T1.id from T1,T2 where T1.id = T2.id на C++ выглядело бы так: for (int j = 0; j < T2.Count; j++) for (int i = 0; i < T1.Count; i++) { if (T1.id == T2[j].id) ... = T1.id; } Вы уж меня извините еще раз, но теперь я начинаю сомневаться, что Вы профессионал C++ , так как пример приведен неудачно - достаточно в таблицах T1 и T2 иметь по 10 миллионов записей, чтобы из Вашего алгоритма, который могут предложить только студенты 1-го курса получился самый большой в мире тормоз. Возникает подозрение, что Вы никогда не задумывались об алгоритмах индексов, хэш-таблицах, ведению статистики наборов данных и т.д. А из всего этого возникает вопрос - а на каком собственно говоря курсе Вы учитесь ? :) P.S. Кстати я могу посоветовать Вам насчет СУБД - не пытайтесь применить ООП на РСУБД, начните изучать SQL с "чистого" листа. Забудьте про классы, обьекты, алгоритмические подходы и позаписную обработку данных, мыслите множествами, учитесь абстрагировать обработку множества данных от методов их обработки. Через это прошли почти все присутствующие в этом форуме. Мне тоже в свое время в 95 году было нелегко менять свою парадигму мышления с FoxPro и Delphi на SQL. Как ни странно, но помог именно MS Access, который в мягкой, не навязчивой форме приучает программиста мыслить релляционно и получать данные через запросы при построение форм и отчетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 10:25 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
A.A.S.select T1.id from T1,T2 where T1.id = T2.id на C++ выглядело бы так: for (int j = 0; j < T2.Count; j++) for (int i = 0; i < T1.Count; i++) { if (T1.id == T2[j].id) ... = T1.id; } Думаю, даже на C++ это выглядело бы не так. Не делать T1.Count*T2.Count сравнений должны учить еще в школе. А сортировать пузырьком будете? Кто это такое выдумал, в C++ можно делать всё что угодно!!! Можно даже while (1){ ... } :) А сортировать в условии задачи и не требовалось вовсе... alex_k а по поводу шедеврального select T1.id from T1,T2 where T1.id = T2.id на C++ выглядело бы так: for (int j = 0; j < T2.Count; j++) for (int i = 0; i < T1.Count; i++) { if (T1.id == T2[j].id) ... = T1.id; } ну это анекдот :-) В чём анекдот заключается??? f_w_p М.б. я чего-либо недопонял, но СУБД у вас нет. Переубедите меня, ответив на следующие вопросы: 1. Многопользовательский доступ к данным. 2. Наличие транзакций 3. Обеспечение безопасности данных. 4. Обеспечение надежности (архивирование, зеркалирование и т.д.) 5. Наличие средств администрирования БД. 6. Далее. Приведенный пример: for (int i = 100; i < 200; i++) { // берём данные по строчкам из MyTable } просто не имеет смысла. Потому что данные в БД а) не упорядочены; б)количество нужных записей обычно заранее не известно. Жду ваших убедительных возражений! В том простейшем примере, который приведён на сайте mzc.narod.ru возможен многопользовательский доступ к данным... к сожалению, пока только в таком режиме: каждое клиентское приложение должно находиться на разных компьютерах (для каждого клиента необходимо установить уникальный порт). Кстати, для этого надо исправить исходник... Наличие транзакций присутствует лишь в зачаточном виде... Обеспечение безопасности данных и Обеспечение надежности архивирование, зеркалирование ) - нет Наличие средств администрирования БД - администратором является программист, который пишет данный сервер... а пример переделаем на: for (int i = 100; i < 200 && i < T1.Count; i++) { // берём данные по строчкам из MyTable } ErmakВообще-то это грустно. Да ладно. Скажите как будет происходить на C++ Примерно такое: select T1.id from T1,T2 where T1.id = T2.id and T1.name like '%Панты%марала%' for (int j = 0; j < T2.Count; j++) for (int i = 0; i < T1.Count; i++) { if (T1.id == T2[j].id T1.Like(T1.name, "%Панты%марала%")) ... = T1.id; } где функцию Like с параметрами (<имя поля>, <строка like>) необходимо ещё реализовать... Также можно будет реализовать функцию Select, которая будет работать также как и обычный select Сразу хотел бы сказать, что моя программулька VpDbServ (сайт: ) mzc.narod.ru ) конечно же, на порядки уступает всем имеющимся СУБД - это скорее недоделанный пример...от которого, впрочем, вы можете написать свой простейший сервер баз данных ... В будующем, возможно, я допишу классы CMzDbServer и CMzDbClient таким образом, чтобы имитировать работу SQL-операций select, insert, update, delete, create и drop... Всё-таки, к моим попыткам сломать мировозрение и предложить другой подход терпит крах... наверное, я не прав... Просьба, относиться к моим потугам (которые со стороны выглядят, возможно, нелепо) не так серьёзно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 11:12 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
ASCRUS select T1.id from T1,T2 where T1.id = T2.id на C++ выглядело бы так: for (int j = 0; j < T2.Count; j++) for (int i = 0; i < T1.Count; i++) { if (T1.id == T2[j].id) ... = T1.id; } Вы уж меня извините еще раз, но теперь я начинаю сомневаться, что Вы профессионал C++ , так как пример приведен неудачно - достаточно в таблицах T1 и T2 иметь по 10 миллионов записей, чтобы из Вашего алгоритма, который могут предложить только студенты 1-го курса получился самый большой в мире тормоз. Возникает подозрение, что Вы никогда не задумывались об алгоритмах индексов, хэш-таблицах, ведению статистики наборов данных и т.д. А из всего этого возникает вопрос - а на каком собственно говоря курсе Вы учитесь ? :) Я не говорил, что я профессионал в С++ (например, я до сих пор, к сожалению, не применяю шаблоны :( ). В этом случае, конечно, искать нужно методом деления на 2... подумаю, как лучше сделать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 11:24 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
mzprog Всё-таки, к моим попыткам сломать мировозрение и предложить другой подход терпит крах... наверное, я не прав... Дело в том что те, к кому Вы тут обращаетесь, в своё время уже ломали своё мировоззрение при переходе от процедурных языков(типа Си и Паскаля) к SQL, а Вы еще нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 11:29 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
2mzprog Код: plaintext 1. 2. 3. 4. 5. а сколько раз вызовется T1.Like? T1.Count*T2.Count раз? По моему было бы быстрее Код: plaintext 1. 2. 3. А если добавить еще такой же Like по T2? Тогда составить 2 временных списка (по T1 и T2), сортировать их и методом слияния(или лучше использовать хэш?(а памяти хватит?) или просто циклами пройти? (а диск быстрый?) а что быстрее: сортировка и слияние или хэш-таблицы? А как определить?) найти нужные строки. А если....(еще 1000 и один случай). А если учесть, что не все данные в памяти, и надо принять во внимание время извлечения данных с диска? А что быстрее? Применить сложный процессороемкий алгоритм и нагрузить камень, или применить тупой алгоритм и нагрузить диск - что быстрее? А если есть индексы (ведь они есть?) какой выбрать? А какой уже загружен в память? А может быстрее использовать его, чем сначала это индекс выгрузить, затем загрузить нужный...? Одним словом - агрооомное поле для деятельности - оптимизаторы всегда были штуками хитрыми. Недаром для их разработки привлекали много-много хороших математиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 11:50 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
В том простейшем примере, который приведён на сайте mzc.narod.ru возможен многопользовательский доступ к данным... к сожалению, пока только в таком режиме: каждое клиентское приложение должно находиться на разных компьютерах (для каждого клиента необходимо установить уникальный порт). Кстати, для этого надо исправить исходник... "Размножение" портов не есть хорошо. Или вы хотите, чтобы у системного администратора крышу сорвало:-)) Наличие транзакций присутствует лишь в зачаточном виде... Отож. Отсутствие нормальных транзакций в MySQL перечеркивает все его остальные достоинства. Наличие средств администрирования БД - администратором является программист, который пишет данный сервер... Вы что ж, предлагаете для простого изменения структуры даннных писать код?! а пример переделаем на: for (int i = 100; i < 200 && i < T1.Count; i++) { // берём данные по строчкам из MyTable } Все равно не проходит. Потому что данные в БД не упорядочены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 12:33 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Ну блин, если делать ВООБЩЕ нечего, хоть бы что-нибудь вроде такого в свои классы добавили: T2.Connect("DSN=DATA_SOURCE"); T1.Connect("DSN=DATA_SOURCE"); T2.DefineUsingSql("Select * from DBO.USERS); T1.DefineUsingSql("Select * from DBO.GROUPS); T3.LazyLoad(true); // если false - реляционные операции будут выполняться с рекордсетами непосредственно на клиенте, а в противном случае - они запоминаются для запроса. T3 = (T1*T2).Select(T1,id,T2,id,GCV_EQUALS).Projection(T1,id,T2,name).Select(T2,name,std::string("%Панты%марала%"),GCV_LIKE) - (T1*T2).Select(T1,id,T2,id,GCV_EQUALS).Projection(T1,id,T1,name).Select(T1,name,std::string("%Панты%марала%"),GCV_LIKE); T3.Connect("DSN=DATA_SOURCE"); T3.Parse(); T3.Load(); controlDataGrid.Attach(T3) Тоже бред, конечно.... Но так прикольнее.... И вроде, алгебра, опять же - реляционная. Прям как фокспро будет, но на C++. Только работать будет в 10000 раз медленнее. А лучше - PHP + SQL и вперёд! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 16:25 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
на C++ выглядело бы так: for (int j = 0; j < T2.Count; j++) for (int i = 0; i < T1.Count; i++) { if (T1.id == T2[j].id) ... = T1.id; } Т.е. Вы утверждаете, что самый обычный и тупой table scan (а именно его Вы тут реализуете) - это самый оптимальный способ обработки этого запроса??? Ну ради бога - почитайте Вы хоть что-нибудь по базам данных !!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 20:02 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Неуверен, что в тему - у меня как-то наш сетевой администратор (routers всякие и прочее) как-то полушутя спросил за рюмкой пива: "Слушай - а что там такого сложного в этих ваших базах данных? Ну открыл файл и нашел нужные данные - это ж примерно как поиск в Notepad?" Я, если честно, просто растерялся ... до сих пор ломаю голову, как бы в трех словах, но внятно, ответить на этот вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 20:10 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Alexander_Chepack В трех словах не получается. А как в нотепаде суммировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2004, 22:08 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
В словесной дуэле я проиграл - сдаюсь .... Давайте перейдём теперь от слов к делу... Поставим задачу и проверим что быстрее работает, например MS SQL или классы из MzDbNet... Надо поставить такую задачу, чтобы напрячь сервера по полной программе... Пусть, для простоты у нас будет 1 таблица... Представим, что где-то в пространстве движется электрон и к нашему компьтеру подключен датчик, определяющий скорость электрона ... Сталкиваясь с другими электронами, наш электрон то теряет, то набирает скорость... Для чистоты эксперимента нам необходимо снимать данные с частотой 1 МГц (то есть каждую микросекунду) Эксперимент будем проводить с течении 100 секунд... Программа должна быть написана следующим образом: сняли значение с датчика, поместили значение в базу и т.д. Конечно, датчика такого не существует, возмём любое случайное значение от 0 до 1 миллиона... Такую частоту (1МГц) выставить на компьютере также не реально, поэтому запись будем производить в обычном цикле, а скорость будем измерять либо по кол-ву записей сохранённых за 100 секунд, либо по записи 100 миллионов записи в базу Также проверим работу выборки 10 значений, начиная с заданной микросекунды...Например, построим график... Так на работе с одной таблицей, каждый на своём компе сможет убедиться что работает быстрее... Для того, чтобы во исключить задержки сети или работы с базой других пользователей, во время эксперимента предлагаю запускать клиента и сервера на одном компе, отключенном от сети... Клиент должен быть написан на Borland C++ Builder, и связываться (в случае с MS SQL) по любому протоколу, например через ODBC... Ну что скажете??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 08:54 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
>> поставить такую задачу, чтобы напрячь сервера по полной программе А вот для данной задачи молодой человек есть СУБД реального времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 09:04 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
После ПТ и Теста, это мой самый любимый топик Для работы с одной таблицей я возьму mysql и уделаю MzDbNet по всем статьям. Может еще сравним скорость работы с плавающей запятой в Delphi и С++ Builder? Ты будешь приятно удивлен, узнав, что дельфин в 3 (!) раза быстрее... Ну и что? Хорош электроны считать, делом займись... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 09:05 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Такого бреда давно не было... Ну ничего, щас попробую представить, какбы это сделать. Во первых, никакого MS SQL. Возьмем другую СУБД, более быструю на запись и (с учетом " Клиент должен быть написан на Borland C++ Builder ") с возможностью прямого доступа к API СУБД. А еще лучше - нативную, написанную на том же билдере (или портировнную). Например, TinyDB. Хотя нет, есть ведь in-memory databases! Нам нужна одна таблица (по условию), возьмем kbmMemTable (та же СУБД, только в памяти и сильно ограничена по возможностям - но транзакции и прочие прелести присутствуют). Переодически (в отдельном треде) будем скидывать данные на диск (в режиме append) и очищать таблицу в памяти. Imho, работать на запись будет очень быстро. Как минимум, ничуть не медленнее твоих классов. На выборку - гораздо быстрее. eNose ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 09:16 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Как я понимаю, за MS SQL никто и впрягся? QuarkА вот для данной задачи молодой человек есть СУБД реального времени. Кто сказал, что у меня не СУБД реального времени??? Рыжий КотДля работы с одной таблицей я возьму mysql и уделаю MzDbNet по всем статьям. Я согласен к с тобой посоревноваться... Пусть я проиграю, зато не на словах, а на деле... MySQL AB - компания, в состав которой входят основатели MySQL и основные разработчики. MySQL AB создана в Швеции Дэвидом Аксмарком (David Axmark), Аланом Ларссом (Allan Larsson) и Майклом Монти Видениусом (Michael Monty Widenius). Кстати, я патриот. Какой-то заморский продукт нам не указ... Ну если победит, тогда, конечно, я с удовольствием признаю победу!!! Рыжий КотХорош электроны считать, делом займись... Ты мне штоли заплатишь? eNoseТакого бреда давно не было... Ну ничего, щас попробую представить, какбы это сделать. Во первых, никакого MS SQL. Возьмем другую СУБД, более быструю на запись и (с учетом "Клиент должен быть написан на Borland C++ Builder") с возможностью прямого доступа к API СУБД. А еще лучше - нативную, написанную на том же билдере (или портировнную). Например, TinyDB. Хотя нет, есть ведь in-memory databases! Нам нужна одна таблица (по условию), возьмем kbmMemTable (та же СУБД, только в памяти и сильно ограничена по возможностям - но транзакции и прочие прелести присутствуют). Переодически (в отдельном треде) будем скидывать данные на диск (в режиме append) и очищать таблицу в памяти. Imho, работать на запись будет очень быстро. Как минимум, ничуть не медленнее твоих классов. На выборку - гораздо быстрее. Я до этого только и слышал, что реляционные базы это круто! Как дело дошло до конкретной задачи - пас.... сразу использовать ОЗУ!!! :) На счёт TinyDB - это что за хрень такая??? первая ссылка при поиске в yandex.ru на TinyDB - где взять вломщик для него... eNoseТакого бреда давно не было... Я просто хотел показать свой пример работы с базой - все против, как будто я совершил что-либо противозаконное??? Приходится стоять до конца... Ну что, MySQL против MzDbNet? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 11:33 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
мне - лень, но хочу помочь человеку встать на истинный путь. все эмпирически. > Программа должна быть написана следующим образом: сняли значение с датчика, поместили значение в базу и т.д. на вставку данных традиционная база данных по скорости проиграет. > Также проверим работу выборки 10 значений, начиная с заданной микросекунды...Например, построим график... на выборку таких данных традиционная база данных, скорее всего, по скорости немного проиграет. если построен кластерный индекс по полю "микросекунда когда вставлена запись", то совем немного. а теперь где выиграет: выбрать время вставки максимального значения найти 10 минимальных найти среднее, просуммировать 10 минимальных значений в общем, везде, где мы будем смотреть не только на то, когда вставлена запись (поскольку в файле отсортирровано естественным образом по времени вставки), а и на значение. это достигается благодаря тому, что запись в традиционной базе данных, грубо говоря, вставлялась бы не в один, а в несколько "файлов", в каждом их которых была бы отсортирована по другому полю (в данном случае - по значению скорости электрона). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 12:06 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
А мне предложение mzprog-а "посоревноваться" напомнило достаточно ярко-выписанную сюжетную линию из StarWars-I о гонках на Татуине... Где всякого рода авантюристы цепляют небольшие "кокпиты", собранные из всякого хлама, к аграмаднейшим спаренным звездолетным движкам, называют всю эту тряхомудию гордым и емким словом "кар" и носятся на этих гробах по планете "на бреющем" до тех пор пока все не убьются насмерть, если, конечно, какой-нить из них в виде гуманоидного мальчика не обладает вдруг врожденными задатками будующего джедая (или Дарта Вейдера, если угодно). Тогда убиваются не все, а даже остается "победитель"... :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 12:34 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Надо поставить такую задачу, чтобы напрячь сервера по полной программе... Пусть, для простоты у нас будет 1 таблица... Вы даете нереальные планы. Это волюнтаризм! (С) "Кавказская пленница" Дело в том, что ОДНА таблица - это не БД. Это массив! А в вашем случае даже одномерный. Кто сказал, что у меня не СУБД реального времени??? Я! По-моему уже доказано, что у вас вообще нет СУБД. Тем более РВ. А решение подобной задачи дал eNose. Один поток пишет в массив, а другой выбирает данные из массива в СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 12:36 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
2 mzprog \r А чё такие примитивные задачки то? Может чё посложней попробуем? Например Уверен что тут на С++ мы не дождёмся ответа (пишем естественно втупую, не анализируя условий - они же могут поменяться).\r \r И я кстати так и не увидел решения на С++ своей задачи с двумя таблицами :)\r \r Что касается скорости. Конечно скорость работы СУБД (особенно для одной таблицы с парой полей) будет гораздо ниже. Но скорость разработки приложения - выше. Такую же аналогию можно провести между Си и ассемблером.\r И вобще - никто не писал что MS SQL - это всегда круче. Для каких-то задач СУБД ну совсем не нужно. Задача с электроном - из этого числа. Из за одной таблицы использовать сервер не стоит. Но если таблиц несколько, если в одну таблицу пишет несколько пользователей?\r Допустим есть справочник жителей города. Есть улицы, дома, квартиры, сами жители. И иногда надо искать жителей по каким-то критериям. Может есть это сделать на MzDbNet и будет быстрее - но сделать это будет неимоверно сложнее. А пока идёт разработка компьютеры тоже развиваются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 13:00 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Хочу тебя немного огорчить - такая СУБД уже существует более десяти лет. Называеться она Velocis. Она построена на принципе клиент/сервер с набором API клиента (нехилым уже), которое позволяет работать с сервером по принципу атомарных действий - d_recnext,d_recfirst, d_pfindfrst и т.д. К этому всему добавлен механизм написания хранимых процедур в виде процедур в DLL. Библиотека прописываеться на серваке и вуаля через RPC клиента вызываем хранимые процедуры и функции. И все на родном с++ или еще на чем (не важно). Работает очень быстро. Очень... Есть даже поддержка SQL - но SQL там не родной для СУБД - это просто для универсальности добавлено и работает по моему не ахти как быстро. И реализовано все через тот же RPC Velocis. Кого заинтересовала данное СУБД - http://www.raima.com/ - пробуйте что нить добится у буржуев. Но идея тама в следующем - вы регистрируетесь. и америкосы пересылают ваши данные в Питерским дилерам, дальше незнаю. У меня была лицензионная версия 2. а их уже по моему 6. И не надо велик изобретать - лучше вы не сделаете (по крайней мере в ближайшие лет десять :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 13:14 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Самоуверенный молодой человек, давайте свою табличку, давайте данные. Можно мне на почту. Задача у вас для НИИ, никак не связанная с БД... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 13:24 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
mzprog держись! междумордие отдыхает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 13:31 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Надо поставить такую задачу, чтобы напрячь сервера по полной программе... Пусть, для простоты у нас будет 1 таблица... Хм .. так мы сервер напрягать будем или у нас будет одна таблица? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 13:38 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Я до этого только и слышал, что реляционные базы это круто! Как дело дошло до конкретной задачи - пас.... сразу использовать ОЗУ!!! :) Точно - настоящим реляционным базам ОЗУ использовать западло. Гражданин - читайте книжки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 13:51 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Хочу тебя немного огорчить - такая СУБД уже существует более десяти лет. Называеться она Velocis. Уж не dbVista ли это? Тогда ей уже более 20-ти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2004, 14:14 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
feddвыбрать время вставки максимального значения найти 10 минимальных найти среднее, просуммировать 10 минимальных значений Если мы заранее будем знать эти условия, то пожалуйста... Time = 0; Max = Value; //первое значение ... Теперь во время добавления каждой записи: if (Max < Value) // для последующих { Max = Value; Time = i; } и т.д... Конечно, для если мы заранее не знаем этих условий, тогда, согласен, на много сложнее реализовать эффективный подход... f_w_r Я! По-моему уже доказано, что у вас вообще нет СУБД. Тем более РВ. Игра сапёр не содержит 3D-графики на базе OpenGL или DirectX, не снабнена навороченными звуковыми голосовыми эффектами, не позволяется играть по сети ... значит с твоим подходом это что не игра??? SuperSerg И я кстати так и не увидел решения на С++ своей задачи с двумя таблицами :) Пусть в таблице tov храниться список товаров, а в таблице oper - список всех операций (покупка/продажа товаров)... Задача - получить весь список... Тогда: for (int i = 0; i < oper.Count; i++) { ... = oper .DateTime; //дата/время операции if (oper.Sum < 0) ... = "продажа"; else ... = "покупка"; ... = tov[oper.ID]].Name; // имя товара ... = oper.Sum; // сумма сделки ... = "руб"; // сделка в рублях } Мы получим, например, такую таблицу: ... 01.02.2004 18:21 покупка Персональный компьютер 30000 руб. ... Alexander_ChepackХм .. так мы сервер напрягать будем или у нас будет одна таблица? Точно - настоящим реляционным базам ОЗУ использовать западло... Да при этих условиях хотя бы с одной таблицей справиться... ... и что-то не припомню в базах, например, какой-нибудь команды напрямую работающую с ОЗУ... odyХочу тебя немного огорчить - такая СУБД уже существует более десяти лет. Называеться она Velocis... Кого заинтересовала данное СУБД - http://www.raima.com/ - пробуйте что нить добится у буржуев. Но идея тама в следующем - вы регистрируетесь. и америкосы пересылают ваши данные в Питерским дилерам, дальше незнаю. У меня была лицензионная версия 2. а их уже по моему 6. И не надо велик изобретать - лучше вы не сделаете (по крайней мере в ближайшие лет десять :)) Изобретать велик не надо, забашляй пару штук баксов за продукт, изучи его... научись писать для него dll - ки........ и готовь бабки на upgrade!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 07:58 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Рыжий Кот Самоуверенный молодой человек, давайте свою табличку, давайте данные. Можно мне на почту. Задача у вас для НИИ, никак не связанная с БД... Мне тоже хотелось бы поучаствовать в эксперименте (может и ещё кому)... Позапускать у себя на компе... Что для этого нужно??? Программу со своей стороны я подготовлю на выходных...сейчас пока-что занят... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 08:02 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Нащупывается её одно направление использования MzDbNet - это игры... Например, необходимо написать сервак для какой-нибудь сетевой игры, где будут храниться игровые карты боевых сражений, различные юниты и т.д... а также будет осуществляться расчёт всех взаимодействий игроков ... Представляю, если такую задачу решить на обычной СУБД (что в принципе даже очень возможно). При установки игры, она выдаст сообщение: "Установите SQL-сервер такой-то фирмы"... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 08:14 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Я аж цвет поменял Свою некомпетентность не нужно выставлять напоказ. В своем дистрибутиве запросто можно поставлять и субд. (для подсчета буказоидов в интерент клубе я так и делал. MySQL разворачивался в папку, mysqld --install если память не изменяет net start mysql и админ и не подозревал, что у него СУБД). Оффтоп, я вы где работаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 09:26 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Нащупывается её одно направление использования MzDbNet - это игры... Например, необходимо написать сервак для какой-нибудь сетевой игры, где будут храниться игровые карты боевых сражений, различные юниты и т.д... а также будет осуществляться расчёт всех взаимодействий игроков ... Представляю, если такую задачу решить на обычной СУБД (что в принципе даже очень возможно). При установки игры, она выдаст сообщение: "Установите SQL-сервер такой-то фирмы"... :) Маладой человек, пойдите до ближайшего магазина и купите Silent Storm И время с большей пользой проведете, и MSDE на компакте увидите :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 09:29 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Рыжий Кот Свою некомпетентность не нужно выставлять напоказ. В своем дистрибутиве запросто можно поставлять и субд. (для подсчета буказоидов в интерент клубе я так и делал. MySQL разворачивался в папку, mysqld --install если память не изменяет net start mysql и админ и не подозревал, что у него СУБД). Честно сказать с MySQL я не работал... Я имел в виду что-нибудь типа MS SQL (ну или Oracle)... Лох Позорный Microsoft SQL Server Desktop Engine (MSDE) - это СУБД для использования на локальной станции Сеть не поддерживается что-ли??? mzprog При установки игры, она выдаст сообщение: "Установите SQL-сервер такой-то фирмы"... :) Беру свои слова обратно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 09:45 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
mzprog, (серьезно) я не сомневаюсь, напротив даже уверен, что у вас блестящие способности к программингу. Просто на определенном этапе, человек освоив что-либо или достигнув чего-то, пытается на этом делать ВСЕ! К сожалению это ошибка. Если ты делаешь что-то новое (для себя), стоит сначала все-таки поинтересоваться (яндекс - найдется все (с)), может уже есть готовые технологии. Никто не спорит, что может быть для данной задачи хорошего решения еще не найдено, и Вы сделаете своего рода революцию, но (!), и еще раз НО: надо же понимать, что очень велика вероятность, что подобные задачи уже кто-то решал. Спокойно, сядьте, посмотрите, переберите варианты... И мне кажется, что изучать что-то хорошо при реализации проекта, имеющего прикладной характер. Пусть первый раз будет криво, перепишИте, и т.д. Проект начнет расти (и вы вместе с ним). Через пару лет вы посмОтрите на то, что делали, и поверьте, будете умиляться своей наивности... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 10:06 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
2 mzprog Microsoft SQL Server Desktop Engine (MSDE) - это СУБД для использования на локальной станции Это ты кого то другого процитировал, а не меня. Сеть не поддерживается что-ли??? Твоя логика приводит меня в смущение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 10:27 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Рыжему Коту. Я считаю, что программист, работающий в серьезном офисе, например в банке, просто вынужден использовать один инструмент и именно делать с его помощью ВСЕ. На изучение чего-то еще просто не хватит времени. Да и по моему убеждению нельзя одинаково хорошо знать две, три и более систем. Другое дело, когда задачу просто НЕЛЬЗЯ решить имеющимися средствами, тут уж деваться некуда, можно просто лишиться работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 11:03 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
mzprog Пусть в таблице tov храниться список товаров, а в таблице oper - список всех операций (покупка/продажа товаров)... Задача - получить весь список... Тогда: for (int i = 0; i < oper.Count; i++) { ... = oper.DateTime; //дата/время операции if (oper.Sum < 0) ... = "продажа"; else ... = "покупка"; ... = tov[oper.ID]].Name; // имя товара ... = oper.Sum; // сумма сделки ... = "руб"; // сделка в рублях } Как я понял индекс не используется, а идёт сканирование. tov[oper.ID] - т.е. мы имеем массив со всеми вытекающими ограничениями и возможностью выхода за его пределы. А для сравнения на SQL Код: plaintext 1. 2. Во-первых это короче. Во-вторых наглядней - мы не делаем каких-то циклов, объявлений лишних переменных, а только говорим то, что нужно выбрать и по каким условиям В-третьих у нас точно не будет выхода за границы массива. В принципе мы даже можем поставить проверку чтобы не вводились операции с несуществующими товарами и не удалялись товары, по которым были операции(это всё делается вообще без писания кода, просто заданием свойств таблицы) В-четвёртых если есть индексы - они будут грамотно использованы. Ну про многопользовательскую работу я вообще не говорю. А есть ли хоть одно преимущество у Вашего решения, кроме того что это намного интересней ? Вот сейчас нащупывается её одно направление использования MzDbNet - это игры... . Но я думаю разработчики игр найдут свои аргументы. Ну и к тому же библиотек для примитивного чтения таблиц хватает и так. А насчет задачки Эйнштейна - несерьёзная отмазка, кто хотел тот понял правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 11:15 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Игра сапёр не содержит 3D-графики на базе OpenGL или DirectX, не снабнена навороченными звуковыми голосовыми эффектами, не позволяется играть по сети ... значит с твоим подходом это что не игра??? Очень странная (мягко говоря) логика. Ну хорошо, дайте ваше определение СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 11:21 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
SuperSerg Как я понял индекс не используется, а идёт сканирование. Ну естественно, а как же, мы же хотим вывести все операции... SuperSerg tov[oper.ID] - т.е. мы имеем массив со всеми вытекающими ограничениями и возможностью выхода за его пределы. Да нет, я использовал массив для более понятного написания... Если посмотреть в библиотеке модуль MzDbTable.h, то там можно найти класс CMzDbTable. Данный класс содержит несколько атрибутов и операций, в том числе следующие: void SeekAt(TMzInt AIndex); //переход по таблице на запись с определённым // индексом void SeekFirst(TMzInt AIndex); //переход на первую запись void Read(void *&Buf); //чтение текущей записи... TMzInt GetCount(); //кол-во записей в таблице... Таким образом, код на самом деле будет на много ужаснее: //Опишем структуру операций в h-файле... struct TOperRecord { int32 ID; // int32 - нестандартный тип для С++, целое 32-х разрядное число float32 Sum; // float32 - нестандартный тип для С++, вещественное //32-х разрядное число }; ... TOperRecord or; //Открываем таблицы tov = new CMzDbTable("tov.mz", 100); // 100 - размер //длины строки единицы товара oper = new CMzDbTable("oper.mz", sizeof(TOperRecord)); ... //TMzInt - класс - "число целого типа" TMzInt Count = oper.GetCount(); oper.SeekFirst(); // переход на первую запись (на всякий случай) for (TMzInt i = 0; i < Count; i++) { oper.Read(&or); tov.SeekAt(or.ID); char TovName[101]; tov.Read(&TovName); ... = or.DateTime; //дата/время операции if (or.Sum < 0) ... = "продажа"; else ... = "покупка"; ... = TovName; // имя товара ... = or.Sum; // сумма сделки ... = "руб"; // сделка в рублях } надеюсь неошибся... select oper.DateTime, case when oper.Sum < 0 then "продажа" else "покупка" end, tov.Name, oper.Summa from oper, tov where tov.ID=oper.ID Во-первых это короче. Согласен. Во-вторых наглядней - мы не делаем каких-то циклов, объявлений лишних переменных, а только говорим то, что нужно выбрать и по каким условиям Кому как, но естественно, для 99,99% - нагляднее В-четвёртых если есть индексы - они будут грамотно использованы. Раз я могу создать просто таблицу, то могу обозвать индексной и хранить в ней номера полей другой таблицы в любом упорядоченном порядке... То есть, я тоже могу создать индексную таблицу... Ну про многопользовательскую работу я вообще не говорю. Если посмотреть исходник, то там видно что библиотека предназначена к работе по сети (UDP-протокол) и она многопользовательская!!! Это точно!!! А есть ли хоть одно преимущество у Вашего решения, кроме того что это намного интересней? Я согласен, что мой проект работы с базой приметивен. Я не МОНСТР - я не могу соперничать как с толпой программистов, например, Microsoft, которые при этом получают бешенные бабки, так и их финансистами, которые раскручивают и продают их программные продукты...Я не смогу этого сделать - хоть может быть и пытаюсь... Есть ли преимущество? Есть точно одно приемущество! Заходим на сайт mzc.narod.ru , закачиваем библиотеку MzLib, пример VpDbServ и создаём СВОЙ СЕРВЕР БАЗ ДАННЫХ!!! Затем, наслаждаемся этим.... А потом показываем начальнику - он сильно впечатляется и повышает зарплату!!! А насчет задачки Эйнштейна - несерьёзная отмазка, кто хотел тот понял правильно. просьба на меня не обижаться....извени Думаю, споры пора прекращать... На них уходит столько времени... Если кому интересно и будет время - заходите на сайт mzc.narod.ru ... Надеюсь проект удасться продолжить, в том числе и направление для работы с базами данных... После написания библиотек MzGL и MzCtrl - процесс создания таблиц должен стать визуальным, возможно, добавлю оператор select... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 13:18 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
авторДумаю, споры пора прекращать... Да споров и нет :) Есть просто большое удивление народа по поводу того, что Вам не лень всем доказывать, что не зная ничего, но имея настойчивость, желание и терпение можно построить современный автомобиль кустарными способами из проволочек и гвоздиков. Построить на самом деле можно, но вот автомобилем эта конструкция не станет и никто на ней никуда не поедет. Вы делаете примитивную курсорную обработку и всем доказываете, что это СУБД, даже не зная основных терминов и понятий работы таких систем. Кстати я вот еще чего не понимаю, в BCB есть компоненты TTable и TQuery, которые через BDE могут работать с dbf и db. Те же самые таблички. Можно строить индексы, лопатить записи в цикле, выполнять запросы и т.д. (кстати я так и не понял, что такое по Вашему индексные таблицы). Компоненты писаны на Delphi, то есть изначально при работе с ними из BCB вы получаете быстрый машинный код и кучу "интересных" возможностей. При желании их можно наследовать и дописать, более активно использовать API BDE, расширить функционал до необходимого Вам уровня. Иерархия классов продумана, поддержка типизированных полей и параметров есть, BDE может эффективно кэшировать работу с такими таблицами с целью уменьшения издержек. Если Вам хочеться подобие клиент-сервера, так для этого существует MIDAS, на нем достаточно красиво и просто можно организовать примитивный выделенный сервер. Так чем Вас решение Borland не угодило то ? Или опять только тем, что это написали не Вы, а Borland ? P.S. Или я чего то не понимаю или ... больше ничего на ум не приходит (C) Хрюндель ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 13:42 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
автор СВОЙ СЕРВЕР БАЗ ДАННЫХ!!! Затем, наслаждаемся этим.... А потом показываем начальнику - он сильно впечатляется и повышает зарплату!!! Хм .. а я бы уволил после этого в три секунды - поскольку ясно что человек от безделия мучается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 13:45 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
авторА потом показываем начальнику - он сильно впечатляется и повышает зарплату!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 13:46 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
возможно, добавлю оператор select... Точка. Приплыли. От чего убегал - к тому же и вернулся В большинстве СУБД (если не во всех) SQL - надстройка. И у тебя в итоге получится тоже самое (если, конечно, ты дойдешь до этого момента). eNose ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 13:51 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Классный топик. Десяток гуру в области баз данных пытаются спорить с человеком, который об этой области понятия не имеет, и не хочет иметь. И, что характерно - он-таки их почти переспоривает! Ну потому что действительно, программку типа "Hello world" написать - она С++ и меньше будет, и выполняться быстрее. И нагляднее (для кого-то). А эти базы данных - это проклятая MS бешенные бабки со всех гребет, на самом деле они нифига не могут! А тут бесплатно библиотека для "Hello world"! По функционалу скоро догонит крутейший Сервер Баз Данных Dbase! Nobody faults but mine... (LZ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2004, 19:26 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2004, 11:28 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Вот так всегда Только человек начнет крылья распускать, как набегает толпа и выдергивает все перья. Руки прочь - пусть летит (как умеет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2004, 15:41 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
2 mzprog: Не отчаивайся. Лично я желаю успехов. От обсуждения возьми полезное. В частности, пожелание учиться. Когда-то все были дилетантами в своих вопросах. А еще раньше и читать-писать не умели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2004, 16:25 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
Alexander_Chepack Не... Я бы не уволил, а дал самостоятельную, но узкую задачу. Стремление перевернуть мир - весьма похвально. Только нужно в русло направить . Анекдот припомнился. Два программрра. - Говорят, скоро Армагедон будет - А чего ждать то? Самим писать надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2004, 23:34 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
эх, помню раз на Агате для мясокомбината зарплату писали: файлы данных, индексные файлы, даже оконный интерфейс был. сейчас с удовольствием вспоминаю. славное было время. ПС. то, что написали, даже работало 5 месяцев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2004, 09:38 |
|
||
|
Интересно подискусировать с профессионалами
|
|||
|---|---|---|---|
|
#18+
..."Я считаю, что программист, работающий в серьезном офисе, например в банке, просто вынужден использовать один инструмент и именно делать с его помощью ВСЕ. На изучение чего-то еще просто не хватит времени."... ______________________________ Грустно все это… Мне профессиональные программисты напоминают ту лошадь в шахтах, которая всю жизнь ходила в темноте по кругу – да и ослепла. Ей уже и свет не нужен. ____________________________ Гуру в использовании MS SQL – гордо именовать программистом, хотя хлебно… ___________________________ Я бы вообще не называл ГУРУ программиста, не имеющего своей ниши (развиваемого направления, масштаб не важен). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 12:37 |
|
||
|
|

start [/forum/topic.php?all=1&fid=35&tid=1554159]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
134ms |
get tp. blocked users: |
2ms |
| others: | 206ms |
| total: | 408ms |

| 0 / 0 |
