На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> правильное программирование БД , MFC + SQLite
    Здравствуйте продолжаю сериию тему из цикла "правильное программирование" :D
      Так и в чем вопрос то? Или ты тут будешь какие то лекции с примерами выкладывать? :unsure:
        не лекций не будет я больше практик :D
        щас небольшую базу данных слобаю и буду пробовать правильно её программировать c MFC и SQLite.
          так дело пошло, БД взял учебную под названием chinook.db, для практики сойдет, в ней 11 таблиц, но вопрос не в ней.

          я уже начал писать демку, настроил SQLite3, все пучком :).

          проблема возникла с выводом на экран, дело в том что я вывожу во вьюшку, которая имеет полосы прокрутки, чтобы отображать все данные в окне, и настраиваю режим преобразования в CExample1View::OnInitialUpdate, но здесь мне надо получить высоту шрифта, чтобы настроить окно вывода по высоте шрифта * число строк результата запроса, я не знаю как получить ее здесь она доступна тока в OnDraw,но OnDraw вызывается уже после OnInitialUpdate, таже фигня и с шириной окна, неизвестна ширина шрифта. хз че делать :wacko::
          ExpandedWrap disabled
            void CExample1View::OnInitialUpdate()
            {  
                CScrollView::OnInitialUpdate();
             
                int recordCount = 0;
             
                if (mIsDbConnected)
                {
                    // Получаем число записей в наборе данных
                    CSqlStatement* stmt = mSQLiteDB.Statement(_T("SELECT COUNT(*) FROM albums"));
                    ASSERT(stmt);
                    stmt->NextRow();
                    recordCount = stmt->ValueInt(0);
                    delete stmt;
                }  
             
                // устанавливаем размеры окна
                // MM_HIMETRIC = 0.01 mm                
                const int cY = высота шрифта * recordCount; // <--- здесь надо знать параметры шрифта вывода
                const int cX = ширина таблицы;          // <---
             
                CSize sizeTotal(cX, cY);
                CSize sizePage(sizeTotal.cx / 2, sizeTotal.cy / 2);
                CSize sizeLine(sizeTotal.cx / 50, sizeTotal.cy / 50);
                
                SetScrollSizes(MM_HIMETRIC, sizeTotal, sizePage, sizeLine);
            }

          в OnDraw вывожу данные.
          Сообщение отредактировано: Cfon -
            так с этим разобралси как два пальца :D
            ExpandedWrap disabled
              void CExample1View::OnInitialUpdate()
              {
                  CScrollView::OnInitialUpdate();
               
               
              .............................
               
               
                  CClientDC dc(this);
                  TEXTMETRIC tm{ 0 };
                  LOGFONT lf{ 0 };
               
                  _tcscpy_s(lf.lfFaceName, _T("Consolas"));
                  lf.lfHeight = 500;
                  lf.lfWeight = FW_BOLD;
                  SetFont(lf, &dc);
                  
                  dc.SetMapMode(MM_HIMETRIC);
                  dc.GetTextMetrics(&tm);
                  TRACE(_T("tmHeight = %d, tmAveCharWidth = %d\n"), tm.tmHeight, tm.tmAveCharWidth);
               
               
              ...........................
               
                  CSize sizeTotal(cX, cY);
                  CSize sizePage(sizeTotal.cx / 2, sizeTotal.cy / 2);
                  CSize sizeLine(sizeTotal.cx / 50, sizeTotal.cy / 50);  
                  SetScrollSizes(MM_HIMETRIC, sizeTotal);            
              }


            немного терпения скоро будет и про БД :D
            Сообщение отредактировано: Cfon -
              вот для начала :D

              Прикреплённый файлПрикреплённый файлExample1.zip (78,25 Кбайт, скачиваний: 130)

              этот архив можно не смотреть, а смотрите весь процесс написания этого демо на GitHub: https://github.com/Cfon/MFCSQLite3Demo
              где я пишу как есть в прямом эфире без цензуры :D
              совершаю ошибки естественно, исправляю показываю как надо программировать не боясь ошибится, настоящий программист тот кто все время пишет! :writer:

              почему GitHub? все просто сюда большие файлы нельзя прилепить :D
              Сообщение отредактировано: Cfon -
                Цитата Cfon @
                проблема возникла с выводом на экран, дело в том что я вывожу во вьюшку, которая имеет полосы прокрутки, чтобы отображать все данные в окне, и настраиваю режим преобразования в CExample1View::OnInitialUpdate, но здесь мне надо получить высоту шрифта


                А высоту шрифта можно получить только из БД, подскажите как получить высоту шрифта!
                  Цитата ter_nk_ @
                  А высоту шрифта можно получить только из БД, подскажите как получить высоту шрифта!

                  По разному например из диалога выбора шрифта.
                    версия без поддержки страничного просмотра данных готова :D
                    1. сделал отображение данных во вьюшку с прокруткой
                    2. выбор таблиц из меню и тулбара
                    3. юзал архитектуру документ-вид

                    пока вопросов нет :D

                    след шаг юзать страничный просмотр данных по 50 строк, а то глючит просмотр при большом кол-ве отображаемых данных 140 мил точно не потянет :D
                    Сообщение отредактировано: Cfon -
                      вот ссылка на актуальный проект :D
                      https://github.com/Cfon/MFCSQLite3Demo

                      смотрите и учитесь вместе со мной, но или просто критикуйте :D
                      Сообщение отредактировано: Cfon -
                        реализовал страничный просмотр данных по 50 строк, юзал не сильно мудреный сиквел :
                        SELECT * FROM table LIMIT 50 OFFSET n

                        навигация при помощи меню, кнопок на тулбаре, а также кнопок на вьюшке под таблицей с выборкой данных

                        демо выложу на GitHub позже :D

                        след шаг реализовать сортировку и причесать данные(в первом демо данные всех таблиц шли как есть, надо заменить магические числа на нормальные имена, возможно выкинуть часть полей, с тем чтобы уменьшить объём выводимой инфы на экран с возможностью дальнейшей детализации например по клику на кнопку :)
                          Я кстати смотрел твою пилотную версию в 6 сообщении которую ты выкладывал. Там много критики назрело на самом деле. Но мне реально лень было отписывать. Может потом найду время посмотрю твои последние версии, прокоментирую. Но точно не на выходных )
                            Велком ;)
                              залил на GitHub (Example1.1.zip)
                              смотрите след маленький шажок :D
                              https://github.com/Cfon/MFCSQLite3Demo

                              пс. предыдущие версии не удаляю, чтобы проследить всю историю шажков :D
                              Сообщение отредактировано: Cfon -
                                Функция сортировки добавлена, для этого юзал след сиквел:
                                SELECT * FROM table ORDER BY field ASC LIMIT 50 OFFSET n;

                                Сама функциональность реализована добавлением списка на тулбар.

                                https://github.com/Cfon/MFCSQLite3Demo


                                :D обнаружен косяк! замедление работы при сортировке больших данных, видимо запрос на получение всех данных даже с учетом лимита не эффективен и данные всеравно получаются все в память! буду пробовать решить через добавление ограничения запроса WHERE:
                                SELECT * FROM table WHERE field = 'value' ORDER BY field LIMIT 50 OFFSET n;
                                Сообщение отредактировано: Cfon -
                                  Cfon а есть возможность тоже самое но с HyTech
                                    Цитата kms @
                                    Cfon а есть возможность тоже самое но с HyTech

                                    сорян я HyTECH не юзал :)
                                      Цитата Cfon @
                                      сорян я HyTECH не юзал

                                      не вопрос , она устанавливается за 30 сек. легка в обращении , настроек вооще никаких не надо,

                                      Добавлено
                                      если вдруг заинтересует , скину уже развернутую и все остальное , также есть драва под PHP и ODBC хоть и х32
                                        Цитата kms @
                                        если вдруг заинтересует , скину уже развернутую и все остальное , также есть драва под PHP и ODBC хоть и х32

                                        Ок :)

                                        Добавлено
                                        Цитата Cfon @
                                        обнаружен косяк! замедление работы при сортировке больших данных, видимо запрос на получение всех данных даже с учетом лимита не эффективен и данные всеравно получаются все в память! буду пробовать решить через добавление ограничения запроса WHERE:
                                        SELECT * FROM table WHERE field = 'value' ORDER BY field LIMIT 50 OFFSET n;

                                        Думаю косяк в другом :)
                                        Рисование процесс длительный, поэтому надо заранее считывать нужные данные из БД и закрывать запрос и потом выводить результат в OnDraw. В текущей версии демо это не так. Работаю над этим позже выложу в GitHub очередной шажок :D
                                        Пс. Кроме того возможно потребуется ввести структру всех таблиц ввиде классов, но не буду забегать вперед буду решать косяки по мере поступления :D
                                        Сообщение отредактировано: Cfon -
                                          убрал косяк! юзал отрисовку из кастомного класса представляющего таблицу данных, а не напрямую, теперь все чикибамбони! :D

                                          решение выложу позже на GitHub.
                                          Сообщение отредактировано: Cfon -
                                            https://github.com/Cfon/MFCSQLite3Demo
                                            выложил исправленую версию, далее задача упорядочить поля, убрать магические числа в полях :D

                                            очередной шажок сделан к правильному программированию БД :writer:
                                            Сообщение отредактировано: Cfon -
                                              Цитата Cfon @
                                              Ок

                                              вот сама СУБД HyTech с БД в 1 табличку https://yadi.sk/d/Aw5CyDg33FrdpD
                                              в архиве папка HyTech ложи ее на диск C:\ и кликай sql64.exe , все она работает с той машины на которой запущенна обращатся можно "tcpip:/localhost:13000" а из сети соответственно "tcpip:/АдрессГдеУстановленна:13000"
                                              остальные подробности https://hytechdb.ru
                                              Сообщение отредактировано: kms -
                                                очередной шажок готов :D
                                                https://github.com/Cfon/MFCSQLite3Demo
                                                см. Example2.1.zip

                                                упорядочил поля, убрал магические числа в полях

                                                юзал 11 запросов средней сложности Chinook нормуль для практики сиквела :D:
                                                ExpandedWrap disabled
                                                  SELECT al.albumId, al.title, ar.name FROM albums al
                                                  LEFT JOIN artists ar ON al.artistid = ar.artistid
                                                  ORDER BY %d ASC LIMIT %d OFFSET %d


                                                след шаг реализовать детализацию данных :)

                                                Добавлено
                                                Цитата kms @
                                                вот сама СУБД HyTech с БД в 1 табличку https://yadi.sk/d/Aw5CyDg33FrdpD
                                                в архиве папка HyTech ложи ее на диск C:\ и кликай sql64.exe , все она работает с той машины на которой запущенна обращатся можно "tcpip:/localhost:13000" а из сети соответственно "tcpip:/АдрессГдеУстановленна:13000"
                                                остальные подробности https://hytechdb.ru

                                                ОК попозже надо доделать это демо :D
                                                Сообщение отредактировано: Cfon -
                                                  Цитата Cfon @
                                                  не лекций не будет я больше практик
                                                  щас небольшую базу данных слобаю и буду пробовать правильно её программировать c MFC и SQLite.

                                                  очень хорошее начало , только пожалуйста сделай или в этой ветке или отдельную заведи, вот такую штуку
                                                  чтобы твоя программа имела хоть маленькую но все же индивидуальность и чтобы был раскрыт какой нибудь финт,
                                                  например
                                                  сделай свой просмотрщик не только для SQLite а для нескольких СУБД, а финт тут будет в том что трудновато разрулить в коде , чтобы было и компактно и производительно
                                                    Cfon слушай ето твой проект ???? не одного коментария по тексту,
                                                    у меня не запускается Example2.1
                                                    ошибка
                                                    ExpandedWrap disabled
                                                       СерьезностьКодОписаниеПроектФайлСтрокаСостояние подавления
                                                      ОшибкаMSB8020The build tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, please install v120 build tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution".Example2    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets   57
                                                      Цитата kms @
                                                      ExpandedWrap disabled
                                                         СерьезностьКодОписаниеПроектФайлСтрокаСостояние подавления
                                                        ОшибкаMSB8020The build tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, please install v120 build tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution".Example2    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets   57

                                                      У тя какая версия студии?
                                                      Это демо я писал на 2013, надо в свойсвах проекта выставить platfom toolset v140-v100 :)

                                                      Добавлено
                                                      Цитата kms @
                                                      сделай свой просмотрщик не только для SQLite а для нескольких СУБД, а финт тут будет в том что трудновато разрулить в коде , чтобы было и компактно и производительно

                                                      не пока ток для SQLite, для неё я юзал удобную обертку (писать на чистом АПИ не люблю :D) заточенную под MFC + лайт мега популярен :)
                                                      и моя цель показать сам процесс программирования БД, а не создание чего то универсального.
                                                      в этом демо я пишу как есть в живую и решаю по ходу разные задачи которые естественно возникают при программировании БД, попутно делаю рефакторинг кода :)
                                                      Сообщение отредактировано: Cfon -
                                                        у меня MSVS2015 , а где там в настройках проекта ?
                                                          Цитата Cfon @
                                                          выставить platfom toolset v140-v100

                                                          так и не нашел в MSVS2015 где это штука
                                                            Цитата kms @
                                                            Цитата Cfon @
                                                            выставить platfom toolset v140-v100

                                                            так и не нашел в MSVS2015 где это штука

                                                            Configuration Property -> General -> Platform Toolset
                                                              у меня там стоит "Visual Studio 2015 (v140)"
                                                                Цитата kms @
                                                                у меня там стоит "Visual Studio 2015 (v140)"

                                                                тогда не знаю, у меня на студии 2015 тоже компилируется

                                                                Добавлено
                                                                начал делать вывод детализации данных.
                                                                сам вывод в окошко диалога по клику мышей на соответствующую строку.
                                                                  требует библиотеки , возми сделай комплект dll которые необходимы для запуска приложения , положи к exe-шнику , а требует libsqlite3-0.dll, libgcc_s_dw2-1.dll, и при чем скачал с интернета положил они требуют другую версию ,
                                                                  вообщем укомплектуй , очень интересно запустить посмотреть ,

                                                                  Добавлено
                                                                  потом вторая заметка , запускаю Example2.exe из папки Debug он кричит на нехватку библиотек и дальше не запускается , потом даже когда подобрал положил библиотеки возле exe-шника запускаю опять
                                                                  кричит нету db\chinook.db

                                                                  вот , я понимаю что можно сказать "так возми положи сделай доделай"
                                                                  для юзверя не интересно что там не хватает и кто такой chinook.db ему наплевать
                                                                  поетому второй раз он уже не запустит твою прогу ,

                                                                  сделай обработку всех исключений после запуска интерфейса , а вывод всего чего не хватает предусмотри сам чтобы пользователь и знать не знал что у тебя там под капотом SQLite или PostgreSQL,
                                                                  а если ты делаешь софтину для каких то гуру потустороннего мира то конечно , кроме как у тебя она наверно и не работает

                                                                  Добавлено
                                                                  реально интересно , доделай чтобы она хотябы запускалась
                                                                    ну слава богу наконец то нашел db\chinook.db положил к exe-шнику запускаю смотрю

                                                                    Добавлено
                                                                    шрифт невыносимо мелкий , я просто не могу прочитать что там написано

                                                                    Добавлено
                                                                    я с MFC плоховатенько , как там добраться до конструктора форм ?
                                                                      Цитата kms @
                                                                      требует библиотеки , возми сделай комплект dll которые необходимы для запуска приложения , положи к exe-шнику , а требует libsqlite3-0.dll, libgcc_s_dw2-1.dll, и при чем скачал с интернета положил они требуют другую версию ,
                                                                      вообщем укомплектуй , очень интересно запустить посмотреть ,

                                                                      Скрытый текст
                                                                      Добавлено
                                                                      потом вторая заметка , запускаю Example2.exe из папки Debug он кричит на нехватку библиотек и дальше не запускается , потом даже когда подобрал положил библиотеки возле exe-шника запускаю опять
                                                                      кричит нету db\chinook.db

                                                                      вот , я понимаю что можно сказать "так возми положи сделай доделай"
                                                                      для юзверя не интересно что там не хватает и кто такой chinook.db ему наплевать
                                                                      поетому второй раз он уже не запустит твою прогу ,

                                                                      сделай обработку всех исключений после запуска интерфейса , а вывод всего чего не хватает предусмотри сам чтобы пользователь и знать не знал что у тебя там под капотом SQLite или PostgreSQL,
                                                                      а если ты делаешь софтину для каких то гуру потустороннего мира то конечно , кроме как у тебя она наверно и не работает

                                                                      Добавлено
                                                                      реально интересно , доделай чтобы она хотябы запускалась

                                                                      все там в архиве :)
                                                                      ты как запускал Example2.exe надо прямо из студии,если отдельно запускаешь то положи вместе с ехе папку db и файлы SQLite ;)

                                                                      Добавлено
                                                                      Цитата kms @
                                                                      ну слава богу наконец то нашел db\chinook.db положил к exe-шнику запускаю смотрю

                                                                      Добавлено
                                                                      шрифт невыносимо мелкий , я просто не могу прочитать что там написано

                                                                      Добавлено
                                                                      я с MFC плоховатенько , как там добраться до конструктора форм ?

                                                                      попробуй выставить нужные значения в конструкторе CExample2View, я их там жестко прописал :)

                                                                      Добавлено
                                                                      хотя по идее вроде должно и с теми параметрами отображаться нормально, прилепи скрин как выглядит у тебя :)
                                                                      Сообщение отредактировано: Cfon -
                                                                        Цитата Cfon @
                                                                        хотя по идее вроде должно и с теми параметрами отображаться нормально, прилепи скрин как выглядит у тебя

                                                                        Прикреплённая картинка
                                                                        Прикреплённая картинка


                                                                        Добавлено
                                                                        Цитата Cfon @
                                                                        все там в архиве
                                                                        ты как запускал Example2.exe надо прямо из студии,если отдельно запускаешь то положи вместе с ехе папку db и файлы SQLite

                                                                        я понял , все равно надо делать чтобы прога всегда запускалась без лишних пояснений

                                                                        Добавлено
                                                                        Цитата Cfon @
                                                                        попробуй выставить нужные значения в конструкторе CExample2View, я их там жестко прописал

                                                                        а как конструктор открыть я не могу понять ,

                                                                        Добавлено
                                                                        скажи как открыть конструктор формы что бы редактировать форму
                                                                          Цитата kms @
                                                                          Цитата Cfon @
                                                                          все там в архиве
                                                                          ты как запускал Example2.exe надо прямо из студии,если отдельно запускаешь то положи вместе с ехе папку db и файлы SQLite

                                                                          я понял , все равно надо делать чтобы прога всегда запускалась без лишних пояснений

                                                                          я как бэ так и делал, чтобы все сразу запускалось, но тока из среды, а если надо чтобы запускалось не из среды для этого делается инсталлятор, в моем случае ещё рано :)

                                                                          Цитата kms @
                                                                          Цитата Cfon @
                                                                          попробуй выставить нужные значения в конструкторе CExample2View, я их там жестко прописал

                                                                          а как конструктор открыть я не могу понять ,

                                                                          надо открыть окошко Class View потом выбрать CExample2View там найдёшь его конструктор ;)

                                                                          по правде говоря если ты с MFC не дружен то сложно будет разобраться, почитай книжку по MFC, например, Visual Studio 2010 Ivor Horton

                                                                          Добавлено
                                                                          Там кстати начинается с самого С++, главы по MFC ближе к концу, есть также и про C++/CLI :D
                                                                          короче путевая книжка такая для нубов, без обид я сам её ща читаю :D

                                                                          Добавлено
                                                                          Цитата kms @
                                                                          скажи как открыть конструктор формы что бы редактировать форму

                                                                          В данном варианте его нет , все ручками делал :D

                                                                          Добавлено
                                                                          Но в MFC можно по другому через редактор ресурсов прогрммировать главное окно, там тоже есть варианты :)
                                                                            Цитата kms @
                                                                            Цитата Cfon @
                                                                            хотя по идее вроде должно и с теми параметрами отображаться нормально, прилепи скрин как выглядит у тебя

                                                                            Скрытый текст
                                                                            Прикреплённая картинка
                                                                            Прикреплённая картинка

                                                                            да что то мелковато, а какие парамтры экрана у тебя?
                                                                            хотя вроде я ставил логический режим MM_TWIPS и шрифт высотой в 10 пунктов, а 10 пунктов они везде будут 10 пунктов :D
                                                                            попробуй выставить вместо 10 например 12-13 пунктов :)
                                                                            Сообщение отредактировано: Cfon -
                                                                              вот как у мя :D

                                                                              Прикреплённая картинка
                                                                              Прикреплённая картинка
                                                                              Сообщение отредактировано: Cfon -
                                                                                Цитата Cfon @
                                                                                надо открыть окошко Class View потом выбрать CExample2View там найдёшь его конструктор

                                                                                та не я не про это , а про конструктор визуальный , чтобы форму редактировать там с кнопачками визуальные элементы я про этот коструктор
                                                                                  Цитата kms @
                                                                                  Цитата Cfon @
                                                                                  надо открыть окошко Class View потом выбрать CExample2View там найдёшь его конструктор

                                                                                  та не я не про это , а про конструктор визуальный , чтобы форму редактировать там с кнопачками визуальные элементы я про этот коструктор

                                                                                  нету такого тута это MFC тут все по-взрослому :D

                                                                                  есть редактор ресурсов, главное окно можно через ресурс оформлять, но не в данном случае, просто решил делать без него.
                                                                                  а вот в след шажочке я покажу окошко где будет детализация данных, вот там я поюзаю ресурс и редактор ресурсов :D
                                                                                  Сообщение отредактировано: Cfon -
                                                                                    Цитата Cfon @
                                                                                    есть редактор ресурсов, главное окно можно через ресурс оформлять, но не в данном случае, просто решил делать без него.

                                                                                    понятно , да тяжко подростку без автомата,
                                                                                    я такое наверно не осилю , MFC мне не понравилось еще со СтудСкамьи , вот я его так и не трогаю,
                                                                                    да и притом поговаривают что это уже уходящее будущее все равно как не крути за C#WPF
                                                                                      Цитата kms @
                                                                                      Цитата Cfon @
                                                                                      есть редактор ресурсов, главное окно можно через ресурс оформлять, но не в данном случае, просто решил делать без него.

                                                                                      понятно , да тяжко подростку без автомата,
                                                                                      я такое наверно не осилю , MFC мне не понравилось еще со СтудСкамьи , вот я его так и не трогаю,
                                                                                      да и притом поговаривают что это уже уходящее будущее все равно как не крути за C#WPF

                                                                                      не знаю под виндос десктоп апликайшен много чего тестил, ИМХО тока связка C++/MFC заходит нормуль, остальное тормозит, слишком много у других обвеса :D

                                                                                      можно конечно для скорости и на С/С++/WinAPI чистом, но я пробовал это ппц геморно :D
                                                                                      вот где будет геморрой! :lool:
                                                                                      Сообщение отредактировано: Cfon -
                                                                                        реализовал обработку клика мыши по данным выводимым во вьюшку :D

                                                                                        смотри новый шажок :D https://github.com/Cfon/MFCSQLite3Demo (Example2.2.zip)


                                                                                        для его реализации использовался революционный поход основанный на интуиции :D

                                                                                        далее будет вывод данных детализации.
                                                                                          реализовано два диалога Customer и Album.

                                                                                          смотрите Example2.3.zip на https://github.com/Cfon/MFCSQLite3Demo

                                                                                          пока они тока отображают данные без возможности сохранения и других необходимых операций, это все в будующем :)
                                                                                          Кроме того в диалоге Album не реализовано отображение списка треков, тоже в будущем все будет :)
                                                                                          Чтобы увидеть нужный диалог используйте клик по строке в данными, революционый подход распознает что вам надо! :D
                                                                                          Изначальный вариант с 50 кнопками на вьшке потерпел фиаско и признан утопией! :D
                                                                                            добавлен update7 (Example2.4.zip) https://github.com/Cfon/MFCSQLite3Demo :D

                                                                                            реализован еще один диалог Artist;
                                                                                            сделан рефакторинг кода, в частности переделан код вывода сетки во вьшку (см класс CExample2View).
                                                                                              ЧТо то у меня такое стойкое ощущение, что ты напрочь неверно используешь систему контроля версий, коей гитхаб и является. Туда нужно исходники заливать, а не zip архивы с исходниками. Хотя я с гитхабом и не работал ниразу, но что то мне подсказывает что тут ты явно что то не так делаешь. Должна быть история по исходникам, и отображаться должны в бранче актуальные исходники, а ты прям зипуешь и выкладываешь это все. Что то тут не так.

                                                                                              Добавлено
                                                                                              Я бы тебе советовал для локального хранения исходников использовать какой нибудь Mercurial, Он просто очень простой, освоится в нем(в принципе можешь и гит юзать, раз уж на гитхаб выкладываешь), буквально за 15-20 минут, в командной строке. А если поставить Mercurial Tortoise так вообще за пару минут. Плюс немного прокачаешься в СКВ(Система Контроля Версий) - это неотъемлемая часть в программировании. И пока ты ее вообще никак не используешь. С таким же успехом мог бы на яндекс диск заливать зип архивы. Или сюда прям атачить, если они меньше 200 КБ.
                                                                                              На крайняк создай тут где нибудь тему - как правильно юзать гитхаб, тебе подскажут.

                                                                                              Добавлено
                                                                                              Просто вот мне вообще лень качать архив, это его распаковывать надо, потом запускать Far, потому что студия много жрет ресурсов, и то, только для того, чтоб глянуть код? Нее, так дело не пойдет. Я думал ща потыкаю по репозиторию, посмотрю бегло код - может что найду, прокоментирую, а тут з***пазип архив блин. Не парень, это абсолютно не верный подход.

                                                                                              Добавлено
                                                                                              Например, что сразу нагуглилось, даже в виде видео
                                                                                              https://www.youtube.com/watch?v=vFj2-bKGwkw

                                                                                              Если интересна суть - мотай сразу на конец ролика. Вот там увидишь структуру нормального выложенного кода. Вот у тебя нечто такое же должно получится. А не зип архивы :D
                                                                                              Сообщение отредактировано: KILLER -
                                                                                                Цитата KILLER @
                                                                                                ЧТо то у меня такое стойкое ощущение, что ты напрочь неверно используешь систему контроля версий, коей гитхаб и является. Туда нужно исходники заливать, а не zip архивы с исходниками. Хотя я с гитхабом и не работал ниразу, но что то мне подсказывает что тут ты явно что то не так делаешь. Должна быть история по исходникам, и отображаться должны в бранче актуальные исходники, а ты прям зипуешь и выкладываешь это все. Что то тут не так

                                                                                                знаю но цель была выкладывать именно архивы сорсов, понимаю что можно и Яндекс диск или ещё что, но почему бы вместо ещё что-то не юзать гитхаб? или это принципиально? :)

                                                                                                Добавлено
                                                                                                а качать архив с яндекс диска тебе не лень? :D

                                                                                                Добавлено
                                                                                                впрочем я никого не заставляю, есть желание смотрите нет не надо :)
                                                                                                Сообщение отредактировано: Cfon -
                                                                                                  Цитата Cfon @
                                                                                                  знаю но цель была выкладывать именно архивы сорсов, понимаю что можно и Яндекс диск или ещё что, но почему бы вместо ещё что-то не юзать гитхаб? или это принципиально? :)

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

                                                                                                  Добавлено
                                                                                                  И отслеживать изменение через СКВ - одно удовольствие. Зип архивы в этом плане слишком топорные.
                                                                                                    Цитата KILLER @
                                                                                                    Тбе всеравно нужно будет в будущем использовать СКВ, хотя бы только потому, что никто без нее не пишет, это неотъемлемая часть в программировании, понимаешь? Исходники где то нужно хранить, а вдруг ты решишь разделить функционал? Ты через месяц запутаешься в своих зип архивах. И использование СКВ на много проще, чем делать зип архивы. В разы причем, и быстрее. Так что я бы на твоем месте как раз такой целью бы и задался.

                                                                                                    Добавлено
                                                                                                    И отслеживать изменение через СКВ - одно удовольствие. Зип архивы в этом плане слишком топорные.

                                                                                                    пока времени нет на ее изучение, но после того как это супер-пупер демо добью :D займусь GitHub, за ролик спс седня чуть позже гляну :)
                                                                                                      update8 (Example2.5.zip) https://github.com/Cfon/MFCSQLite3Demo

                                                                                                      добавлены два диалога Tracks, Playlists
                                                                                                      сделан рефакторинг кода, переделана часть код отвечающая за создание и вывод на экран диалогов (был применен "обобщенный конструктор")
                                                                                                      были также обнаружены и исправлены несколько багов связанных с запросами SQL.
                                                                                                      Сообщение отредактировано: Cfon -
                                                                                                        update9 (Example2.6.zip)

                                                                                                        сделан рефакторинг кода: "обобщенный конструктор" заменен на "фабричный метод" (factory method)
                                                                                                          update10 (Example2.7.zip)

                                                                                                          все основные диалоги добавлены

                                                                                                          программируя диалоги были изучены все основные формы сиквела SELECT включая обработку множественных связей между таблицами.
                                                                                                          теперь очередь за INSERT, UPDATE, DELETE.

                                                                                                          пс. Данное приложение просто обязательно для изучения SQL нубами! я сам очень сильно подтянул сиквел программируя это демо :D
                                                                                                          Сообщение отредактировано: Cfon -
                                                                                                            update 11 (Example2.8.zip):

                                                                                                            рефакторинг класса CCustomDlg, функция InitDialog теперь не чисто виртуальная;

                                                                                                            добавлен класс CNumericFormattedEdit для отображения чисел с разделителями, он используется для подкласса эдитов mMillisecondsEdit и mBytesEdit в диалоге CTrackDlg.
                                                                                                              в грехосмех не пора еще? :D
                                                                                                                Цитата _lcf_ @
                                                                                                                в грехосмех не пора еще? :D

                                                                                                                :D за что?!
                                                                                                                  за шкирку! :lol:
                                                                                                                    в планах переложить свое демо на C#/WinForms/WPF, Java/Spring :D

                                                                                                                    закончу с MFC перейду к шарпистам или джавистам, их буду дрючить :lol:
                                                                                                                    Сообщение отредактировано: Cfon -
                                                                                                                      update 12 (Example 2.9.zip) добавлено:

                                                                                                                      возможность сортировки по клику на заголовке таблицы
                                                                                                                      индикация сортировки
                                                                                                                      Сообщение отредактировано: Cfon -
                                                                                                                        добавил пример работы с SQL: INSERT, UPDATE и DELETE (Gallery.zip) https://github.com/Cfon/MFCSQLite3Demo

                                                                                                                        для разнообразия сделал в другом проекте, позже данную технику программирования перенесу в свое демо.
                                                                                                                        пример реализовал на другом подходе к представлеию даных, а имено юзал класс CFormView и ресурс диалога, также вместо прямого обращения к обертке SQLite3 для получения данных из таблицы юзал кастомный класс DAO (Data Access Object).
                                                                                                                        Сообщение отредактировано: Cfon -
                                                                                                                          Добавил update Gallery1.1.zip

                                                                                                                          сделал рефакторинг: отделил документ и представление еще одним слоем абстракции AlbumModel, хз зачем, но понравилось :D
                                                                                                                            Я не пропал работаю :D
                                                                                                                            Добавил Gallery1.2.zip

                                                                                                                            реализовал добавление картинок в галерею в виде иконок, позже добавлю просмотр в натуральную величину.

                                                                                                                            при кодировании этого примера обнаружил баг в коде обертки от мистера midnightEngineer
                                                                                                                            https://www.codeproject.com/Articles/10060/SQLite-MFC-Wrapper
                                                                                                                            ошибка проявлялась при передаче юникодных строк в функцию Bind класса DbSQLite, баг убрал отправил тэкст автору, автор доволен как слон :D
                                                                                                                            Сообщение отредактировано: Cfon -
                                                                                                                              демо-проект MFCSQLite3Demo временно приостановлен ввиду перехода автора на революционый язык JavaScript, будет предпринята попытка реализовать все тоже самое но на JavaScript! :D

                                                                                                                              пс. JavaScript forever! >:-[
                                                                                                                                . :D
                                                                                                                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                                                                                                                0 пользователей:


                                                                                                                                Рейтинг@Mail.ru
                                                                                                                                [ Script execution time: 0,1554 ]   [ 24 queries used ]   [ Generated: 29.03.24, 15:40 GMT ]