Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[54.92.155.93] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте продолжаю сериию тему из цикла "правильное программирование"
|
Сообщ.
#2
,
|
|
|
Так и в чем вопрос то? Или ты тут будешь какие то лекции с примерами выкладывать?
|
Сообщ.
#3
,
|
|
|
не лекций не будет я больше практик
щас небольшую базу данных слобаю и буду пробовать правильно её программировать c MFC и SQLite. |
Сообщ.
#4
,
|
|
|
так дело пошло, БД взял учебную под названием chinook.db, для практики сойдет, в ней 11 таблиц, но вопрос не в ней.
я уже начал писать демку, настроил SQLite3, все пучком . проблема возникла с выводом на экран, дело в том что я вывожу во вьюшку, которая имеет полосы прокрутки, чтобы отображать все данные в окне, и настраиваю режим преобразования в CExample1View::OnInitialUpdate, но здесь мне надо получить высоту шрифта, чтобы настроить окно вывода по высоте шрифта * число строк результата запроса, я не знаю как получить ее здесь она доступна тока в OnDraw,но OnDraw вызывается уже после OnInitialUpdate, таже фигня и с шириной окна, неизвестна ширина шрифта. хз че делать : 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 вывожу данные. |
Сообщ.
#5
,
|
|
|
так с этим разобралси как два пальца
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); } немного терпения скоро будет и про БД |
Сообщ.
#6
,
|
|
|
вот для начала
Прикреплённый файлExample1.zip (78,25 Кбайт, скачиваний: 130) этот архив можно не смотреть, а смотрите весь процесс написания этого демо на GitHub: https://github.com/Cfon/MFCSQLite3Demo где я пишу как есть в прямом эфире без цензуры совершаю ошибки естественно, исправляю показываю как надо программировать не боясь ошибится, настоящий программист тот кто все время пишет! почему GitHub? все просто сюда большие файлы нельзя прилепить |
Сообщ.
#7
,
|
|
|
Цитата Cfon @ проблема возникла с выводом на экран, дело в том что я вывожу во вьюшку, которая имеет полосы прокрутки, чтобы отображать все данные в окне, и настраиваю режим преобразования в CExample1View::OnInitialUpdate, но здесь мне надо получить высоту шрифта А высоту шрифта можно получить только из БД, подскажите как получить высоту шрифта! |
Сообщ.
#8
,
|
|
|
Цитата ter_nk_ @ А высоту шрифта можно получить только из БД, подскажите как получить высоту шрифта! По разному например из диалога выбора шрифта. |
Сообщ.
#9
,
|
|
|
версия без поддержки страничного просмотра данных готова
1. сделал отображение данных во вьюшку с прокруткой 2. выбор таблиц из меню и тулбара 3. юзал архитектуру документ-вид пока вопросов нет след шаг юзать страничный просмотр данных по 50 строк, а то глючит просмотр при большом кол-ве отображаемых данных 140 мил точно не потянет |
Сообщ.
#10
,
|
|
|
вот ссылка на актуальный проект
https://github.com/Cfon/MFCSQLite3Demo смотрите и учитесь вместе со мной, но или просто критикуйте |
Сообщ.
#11
,
|
|
|
реализовал страничный просмотр данных по 50 строк, юзал не сильно мудреный сиквел :
SELECT * FROM table LIMIT 50 OFFSET n навигация при помощи меню, кнопок на тулбаре, а также кнопок на вьюшке под таблицей с выборкой данных демо выложу на GitHub позже след шаг реализовать сортировку и причесать данные(в первом демо данные всех таблиц шли как есть, надо заменить магические числа на нормальные имена, возможно выкинуть часть полей, с тем чтобы уменьшить объём выводимой инфы на экран с возможностью дальнейшей детализации например по клику на кнопку |
Сообщ.
#12
,
|
|
|
Я кстати смотрел твою пилотную версию в 6 сообщении которую ты выкладывал. Там много критики назрело на самом деле. Но мне реально лень было отписывать. Может потом найду время посмотрю твои последние версии, прокоментирую. Но точно не на выходных )
|
Сообщ.
#13
,
|
|
|
Велком
|
Сообщ.
#14
,
|
|
|
залил на GitHub (Example1.1.zip)
смотрите след маленький шажок https://github.com/Cfon/MFCSQLite3Demo пс. предыдущие версии не удаляю, чтобы проследить всю историю шажков |
Сообщ.
#15
,
|
|
|
Функция сортировки добавлена, для этого юзал след сиквел:
SELECT * FROM table ORDER BY field ASC LIMIT 50 OFFSET n; Сама функциональность реализована добавлением списка на тулбар. https://github.com/Cfon/MFCSQLite3Demo обнаружен косяк! замедление работы при сортировке больших данных, видимо запрос на получение всех данных даже с учетом лимита не эффективен и данные всеравно получаются все в память! буду пробовать решить через добавление ограничения запроса WHERE: SELECT * FROM table WHERE field = 'value' ORDER BY field LIMIT 50 OFFSET n; |
Сообщ.
#16
,
|
|
|
Cfon а есть возможность тоже самое но с HyTech
|
Сообщ.
#17
,
|
|
|
Цитата kms @ Cfon а есть возможность тоже самое но с HyTech сорян я HyTECH не юзал |
Сообщ.
#18
,
|
|
|
Цитата Cfon @ сорян я HyTECH не юзал не вопрос , она устанавливается за 30 сек. легка в обращении , настроек вооще никаких не надо, Добавлено если вдруг заинтересует , скину уже развернутую и все остальное , также есть драва под PHP и ODBC хоть и х32 |
Сообщ.
#19
,
|
|
|
Цитата kms @ если вдруг заинтересует , скину уже развернутую и все остальное , также есть драва под PHP и ODBC хоть и х32 Ок Добавлено Цитата Cfon @ обнаружен косяк! замедление работы при сортировке больших данных, видимо запрос на получение всех данных даже с учетом лимита не эффективен и данные всеравно получаются все в память! буду пробовать решить через добавление ограничения запроса WHERE: SELECT * FROM table WHERE field = 'value' ORDER BY field LIMIT 50 OFFSET n; Думаю косяк в другом Рисование процесс длительный, поэтому надо заранее считывать нужные данные из БД и закрывать запрос и потом выводить результат в OnDraw. В текущей версии демо это не так. Работаю над этим позже выложу в GitHub очередной шажок Пс. Кроме того возможно потребуется ввести структру всех таблиц ввиде классов, но не буду забегать вперед буду решать косяки по мере поступления |
Сообщ.
#20
,
|
|
|
убрал косяк! юзал отрисовку из кастомного класса представляющего таблицу данных, а не напрямую, теперь все чикибамбони!
решение выложу позже на GitHub. |
Сообщ.
#21
,
|
|
|
https://github.com/Cfon/MFCSQLite3Demo
выложил исправленую версию, далее задача упорядочить поля, убрать магические числа в полях очередной шажок сделан к правильному программированию БД |
Сообщ.
#22
,
|
|
|
Цитата Cfon @ Ок вот сама СУБД HyTech с БД в 1 табличку https://yadi.sk/d/Aw5CyDg33FrdpD в архиве папка HyTech ложи ее на диск C:\ и кликай sql64.exe , все она работает с той машины на которой запущенна обращатся можно "tcpip:/localhost:13000" а из сети соответственно "tcpip:/АдрессГдеУстановленна:13000" остальные подробности https://hytechdb.ru |
Сообщ.
#23
,
|
|
|
очередной шажок готов
https://github.com/Cfon/MFCSQLite3Demo см. Example2.1.zip упорядочил поля, убрал магические числа в полях юзал 11 запросов средней сложности Chinook нормуль для практики сиквела : 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 ОК попозже надо доделать это демо |
Сообщ.
#24
,
|
|
|
Цитата Cfon @ не лекций не будет я больше практик щас небольшую базу данных слобаю и буду пробовать правильно её программировать c MFC и SQLite. очень хорошее начало , только пожалуйста сделай или в этой ветке или отдельную заведи, вот такую штуку чтобы твоя программа имела хоть маленькую но все же индивидуальность и чтобы был раскрыт какой нибудь финт, например сделай свой просмотрщик не только для SQLite а для нескольких СУБД, а финт тут будет в том что трудновато разрулить в коде , чтобы было и компактно и производительно |
Сообщ.
#25
,
|
|
|
Cfon слушай ето твой проект ???? не одного коментария по тексту,
у меня не запускается Example2.1 ошибка СерьезностьКодОписаниеПроектФайлСтрокаСостояние подавления Ошибка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 |
Сообщ.
#26
,
|
|
|
Цитата kms @ СерьезностьКодОписаниеПроектФайлСтрокаСостояние подавления Ошибка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, для неё я юзал удобную обертку (писать на чистом АПИ не люблю ) заточенную под MFC + лайт мега популярен и моя цель показать сам процесс программирования БД, а не создание чего то универсального. в этом демо я пишу как есть в живую и решаю по ходу разные задачи которые естественно возникают при программировании БД, попутно делаю рефакторинг кода |
Сообщ.
#27
,
|
|
|
у меня MSVS2015 , а где там в настройках проекта ?
|
Сообщ.
#28
,
|
|
|
Цитата Cfon @ выставить platfom toolset v140-v100 так и не нашел в MSVS2015 где это штука |
Сообщ.
#29
,
|
|
|
Цитата kms @ Цитата Cfon @ выставить platfom toolset v140-v100 так и не нашел в MSVS2015 где это штука Configuration Property -> General -> Platform Toolset |
Сообщ.
#30
,
|
|
|
у меня там стоит "Visual Studio 2015 (v140)"
|
Сообщ.
#31
,
|
|
|
Цитата kms @ у меня там стоит "Visual Studio 2015 (v140)" тогда не знаю, у меня на студии 2015 тоже компилируется Добавлено начал делать вывод детализации данных. сам вывод в окошко диалога по клику мышей на соответствующую строку. |
Сообщ.
#32
,
|
|
|
требует библиотеки , возми сделай комплект dll которые необходимы для запуска приложения , положи к exe-шнику , а требует libsqlite3-0.dll, libgcc_s_dw2-1.dll, и при чем скачал с интернета положил они требуют другую версию ,
вообщем укомплектуй , очень интересно запустить посмотреть , Добавлено потом вторая заметка , запускаю Example2.exe из папки Debug он кричит на нехватку библиотек и дальше не запускается , потом даже когда подобрал положил библиотеки возле exe-шника запускаю опять кричит нету db\chinook.db вот , я понимаю что можно сказать "так возми положи сделай доделай" для юзверя не интересно что там не хватает и кто такой chinook.db ему наплевать поетому второй раз он уже не запустит твою прогу , сделай обработку всех исключений после запуска интерфейса , а вывод всего чего не хватает предусмотри сам чтобы пользователь и знать не знал что у тебя там под капотом SQLite или PostgreSQL, а если ты делаешь софтину для каких то гуру потустороннего мира то конечно , кроме как у тебя она наверно и не работает Добавлено реально интересно , доделай чтобы она хотябы запускалась |
Сообщ.
#33
,
|
|
|
ну слава богу наконец то нашел db\chinook.db положил к exe-шнику запускаю смотрю
Добавлено шрифт невыносимо мелкий , я просто не могу прочитать что там написано Добавлено я с MFC плоховатенько , как там добраться до конструктора форм ? |
Сообщ.
#34
,
|
|
|
Цитата 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, я их там жестко прописал Добавлено хотя по идее вроде должно и с теми параметрами отображаться нормально, прилепи скрин как выглядит у тебя |
Сообщ.
#35
,
|
|
|
Цитата Cfon @ хотя по идее вроде должно и с теми параметрами отображаться нормально, прилепи скрин как выглядит у тебя Прикреплённая картинка
Добавлено Цитата Cfon @ все там в архиве ты как запускал Example2.exe надо прямо из студии,если отдельно запускаешь то положи вместе с ехе папку db и файлы SQLite я понял , все равно надо делать чтобы прога всегда запускалась без лишних пояснений Добавлено Цитата Cfon @ попробуй выставить нужные значения в конструкторе CExample2View, я их там жестко прописал а как конструктор открыть я не могу понять , Добавлено скажи как открыть конструктор формы что бы редактировать форму |
Сообщ.
#36
,
|
|
|
Цитата kms @ Цитата Cfon @ все там в архиве ты как запускал Example2.exe надо прямо из студии,если отдельно запускаешь то положи вместе с ехе папку db и файлы SQLite я понял , все равно надо делать чтобы прога всегда запускалась без лишних пояснений я как бэ так и делал, чтобы все сразу запускалось, но тока из среды, а если надо чтобы запускалось не из среды для этого делается инсталлятор, в моем случае ещё рано Цитата kms @ Цитата Cfon @ попробуй выставить нужные значения в конструкторе CExample2View, я их там жестко прописал а как конструктор открыть я не могу понять , надо открыть окошко Class View потом выбрать CExample2View там найдёшь его конструктор по правде говоря если ты с MFC не дружен то сложно будет разобраться, почитай книжку по MFC, например, Visual Studio 2010 Ivor Horton Добавлено Там кстати начинается с самого С++, главы по MFC ближе к концу, есть также и про C++/CLI короче путевая книжка такая для нубов, без обид я сам её ща читаю Добавлено Цитата kms @ скажи как открыть конструктор формы что бы редактировать форму В данном варианте его нет , все ручками делал Добавлено Но в MFC можно по другому через редактор ресурсов прогрммировать главное окно, там тоже есть варианты |
Сообщ.
#37
,
|
|
|
Цитата kms @ да что то мелковато, а какие парамтры экрана у тебя? хотя вроде я ставил логический режим MM_TWIPS и шрифт высотой в 10 пунктов, а 10 пунктов они везде будут 10 пунктов попробуй выставить вместо 10 например 12-13 пунктов |
Сообщ.
#38
,
|
|
|
Сообщ.
#39
,
|
|
|
Цитата Cfon @ надо открыть окошко Class View потом выбрать CExample2View там найдёшь его конструктор та не я не про это , а про конструктор визуальный , чтобы форму редактировать там с кнопачками визуальные элементы я про этот коструктор |
Сообщ.
#40
,
|
|
|
Цитата kms @ Цитата Cfon @ надо открыть окошко Class View потом выбрать CExample2View там найдёшь его конструктор та не я не про это , а про конструктор визуальный , чтобы форму редактировать там с кнопачками визуальные элементы я про этот коструктор нету такого тута это MFC тут все по-взрослому есть редактор ресурсов, главное окно можно через ресурс оформлять, но не в данном случае, просто решил делать без него. а вот в след шажочке я покажу окошко где будет детализация данных, вот там я поюзаю ресурс и редактор ресурсов |
Сообщ.
#41
,
|
|
|
Цитата Cfon @ есть редактор ресурсов, главное окно можно через ресурс оформлять, но не в данном случае, просто решил делать без него. понятно , да тяжко подростку без автомата, я такое наверно не осилю , MFC мне не понравилось еще со СтудСкамьи , вот я его так и не трогаю, да и притом поговаривают что это уже уходящее будущее все равно как не крути за C#WPF |
Сообщ.
#42
,
|
|
|
Цитата kms @ Цитата Cfon @ есть редактор ресурсов, главное окно можно через ресурс оформлять, но не в данном случае, просто решил делать без него. понятно , да тяжко подростку без автомата, я такое наверно не осилю , MFC мне не понравилось еще со СтудСкамьи , вот я его так и не трогаю, да и притом поговаривают что это уже уходящее будущее все равно как не крути за C#WPF не знаю под виндос десктоп апликайшен много чего тестил, ИМХО тока связка C++/MFC заходит нормуль, остальное тормозит, слишком много у других обвеса можно конечно для скорости и на С/С++/WinAPI чистом, но я пробовал это ппц геморно вот где будет геморрой! |
Сообщ.
#43
,
|
|
|
реализовал обработку клика мыши по данным выводимым во вьюшку
смотри новый шажок https://github.com/Cfon/MFCSQLite3Demo (Example2.2.zip) для его реализации использовался революционный поход основанный на интуиции далее будет вывод данных детализации. |
Сообщ.
#44
,
|
|
|
реализовано два диалога Customer и Album.
смотрите Example2.3.zip на https://github.com/Cfon/MFCSQLite3Demo пока они тока отображают данные без возможности сохранения и других необходимых операций, это все в будующем Кроме того в диалоге Album не реализовано отображение списка треков, тоже в будущем все будет Чтобы увидеть нужный диалог используйте клик по строке в данными, революционый подход распознает что вам надо! Изначальный вариант с 50 кнопками на вьшке потерпел фиаско и признан утопией! |
Сообщ.
#45
,
|
|
|
добавлен update7 (Example2.4.zip) https://github.com/Cfon/MFCSQLite3Demo
реализован еще один диалог Artist; сделан рефакторинг кода, в частности переделан код вывода сетки во вьшку (см класс CExample2View). |
Сообщ.
#46
,
|
|
|
ЧТо то у меня такое стойкое ощущение, что ты напрочь неверно используешь систему контроля версий, коей гитхаб и является. Туда нужно исходники заливать, а не zip архивы с исходниками. Хотя я с гитхабом и не работал ниразу, но что то мне подсказывает что тут ты явно что то не так делаешь. Должна быть история по исходникам, и отображаться должны в бранче актуальные исходники, а ты прям зипуешь и выкладываешь это все. Что то тут не так.
Добавлено Я бы тебе советовал для локального хранения исходников использовать какой нибудь Mercurial, Он просто очень простой, освоится в нем(в принципе можешь и гит юзать, раз уж на гитхаб выкладываешь), буквально за 15-20 минут, в командной строке. А если поставить Mercurial Tortoise так вообще за пару минут. Плюс немного прокачаешься в СКВ(Система Контроля Версий) - это неотъемлемая часть в программировании. И пока ты ее вообще никак не используешь. С таким же успехом мог бы на яндекс диск заливать зип архивы. Или сюда прям атачить, если они меньше 200 КБ. На крайняк создай тут где нибудь тему - как правильно юзать гитхаб, тебе подскажут. Добавлено Просто вот мне вообще лень качать архив, это его распаковывать надо, потом запускать Far, потому что студия много жрет ресурсов, и то, только для того, чтоб глянуть код? Нее, так дело не пойдет. Я думал ща потыкаю по репозиторию, посмотрю бегло код - может что найду, прокоментирую, а тут Добавлено Например, что сразу нагуглилось, даже в виде видео https://www.youtube.com/watch?v=vFj2-bKGwkw Если интересна суть - мотай сразу на конец ролика. Вот там увидишь структуру нормального выложенного кода. Вот у тебя нечто такое же должно получится. А не зип архивы |
Сообщ.
#47
,
|
|
|
Цитата KILLER @ ЧТо то у меня такое стойкое ощущение, что ты напрочь неверно используешь систему контроля версий, коей гитхаб и является. Туда нужно исходники заливать, а не zip архивы с исходниками. Хотя я с гитхабом и не работал ниразу, но что то мне подсказывает что тут ты явно что то не так делаешь. Должна быть история по исходникам, и отображаться должны в бранче актуальные исходники, а ты прям зипуешь и выкладываешь это все. Что то тут не так знаю но цель была выкладывать именно архивы сорсов, понимаю что можно и Яндекс диск или ещё что, но почему бы вместо ещё что-то не юзать гитхаб? или это принципиально? Добавлено а качать архив с яндекс диска тебе не лень? Добавлено впрочем я никого не заставляю, есть желание смотрите нет не надо |
Сообщ.
#48
,
|
|
|
Цитата Cfon @ знаю но цель была выкладывать именно архивы сорсов, понимаю что можно и Яндекс диск или ещё что, но почему бы вместо ещё что-то не юзать гитхаб? или это принципиально? Тбе всеравно нужно будет в будущем использовать СКВ, хотя бы только потому, что никто без нее не пишет, это неотъемлемая часть в программировании, понимаешь? Исходники где то нужно хранить, а вдруг ты решишь разделить функционал? Ты через месяц запутаешься в своих зип архивах. И использование СКВ на много проще, чем делать зип архивы. В разы причем, и быстрее. Так что я бы на твоем месте как раз такой целью бы и задался. Добавлено И отслеживать изменение через СКВ - одно удовольствие. Зип архивы в этом плане слишком топорные. |
Сообщ.
#49
,
|
|
|
Цитата KILLER @ Тбе всеравно нужно будет в будущем использовать СКВ, хотя бы только потому, что никто без нее не пишет, это неотъемлемая часть в программировании, понимаешь? Исходники где то нужно хранить, а вдруг ты решишь разделить функционал? Ты через месяц запутаешься в своих зип архивах. И использование СКВ на много проще, чем делать зип архивы. В разы причем, и быстрее. Так что я бы на твоем месте как раз такой целью бы и задался. Добавлено И отслеживать изменение через СКВ - одно удовольствие. Зип архивы в этом плане слишком топорные. пока времени нет на ее изучение, но после того как это супер-пупер демо добью займусь GitHub, за ролик спс седня чуть позже гляну |
Сообщ.
#50
,
|
|
|
update8 (Example2.5.zip) https://github.com/Cfon/MFCSQLite3Demo
добавлены два диалога Tracks, Playlists сделан рефакторинг кода, переделана часть код отвечающая за создание и вывод на экран диалогов (был применен "обобщенный конструктор") были также обнаружены и исправлены несколько багов связанных с запросами SQL. |
Сообщ.
#51
,
|
|
|
update9 (Example2.6.zip)
сделан рефакторинг кода: "обобщенный конструктор" заменен на "фабричный метод" (factory method) |
Сообщ.
#52
,
|
|
|
update10 (Example2.7.zip)
все основные диалоги добавлены программируя диалоги были изучены все основные формы сиквела SELECT включая обработку множественных связей между таблицами. теперь очередь за INSERT, UPDATE, DELETE. пс. Данное приложение просто обязательно для изучения SQL нубами! я сам очень сильно подтянул сиквел программируя это демо |
Сообщ.
#53
,
|
|
|
update 11 (Example2.8.zip):
рефакторинг класса CCustomDlg, функция InitDialog теперь не чисто виртуальная; добавлен класс CNumericFormattedEdit для отображения чисел с разделителями, он используется для подкласса эдитов mMillisecondsEdit и mBytesEdit в диалоге CTrackDlg. |
Сообщ.
#54
,
|
|
|
в грехосмех не пора еще?
|
Сообщ.
#55
,
|
|
|
Цитата _lcf_ @ в грехосмех не пора еще? за что?! |
Сообщ.
#56
,
|
|
|
за шкирку!
|
Сообщ.
#57
,
|
|
|
в планах переложить свое демо на C#/WinForms/WPF, Java/Spring
закончу с MFC перейду к шарпистам или джавистам, их буду дрючить |
Сообщ.
#58
,
|
|
|
update 12 (Example 2.9.zip) добавлено:
возможность сортировки по клику на заголовке таблицы индикация сортировки |
Сообщ.
#59
,
|
|
|
добавил пример работы с SQL: INSERT, UPDATE и DELETE (Gallery.zip) https://github.com/Cfon/MFCSQLite3Demo
для разнообразия сделал в другом проекте, позже данную технику программирования перенесу в свое демо. пример реализовал на другом подходе к представлеию даных, а имено юзал класс CFormView и ресурс диалога, также вместо прямого обращения к обертке SQLite3 для получения данных из таблицы юзал кастомный класс DAO (Data Access Object). |
Сообщ.
#60
,
|
|
|
Добавил update Gallery1.1.zip
сделал рефакторинг: отделил документ и представление еще одним слоем абстракции AlbumModel, хз зачем, но понравилось |
Сообщ.
#61
,
|
|
|
Я не пропал работаю
Добавил Gallery1.2.zip реализовал добавление картинок в галерею в виде иконок, позже добавлю просмотр в натуральную величину. при кодировании этого примера обнаружил баг в коде обертки от мистера midnightEngineer https://www.codeproject.com/Articles/10060/SQLite-MFC-Wrapper ошибка проявлялась при передаче юникодных строк в функцию Bind класса DbSQLite, баг убрал отправил тэкст автору, автор доволен как слон |
Сообщ.
#62
,
|
|
|
демо-проект MFCSQLite3Demo временно приостановлен ввиду перехода автора на революционый язык JavaScript, будет предпринята попытка реализовать все тоже самое но на JavaScript!
пс. JavaScript forever! |
Сообщ.
#63
,
|
|
|
.
|