|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Игорь ГорбоносА как юнионами? Нет! до завтра подумаю :) в смысле, не подсказывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 01:23 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
> Автор: Shocker.Pro > в смысле, не подсказывать? Ну да В принципе юнионами знаю, но это для ограниченного числа потомков. Что то типа(для трёх вложений) Код: plaintext 1. 2. 3. 4. 5. 6.
Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 10:16 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Игорь Горбоносtutti-frutti, нет ли в возможности в акцессе сделать что-то наподобии хранимой процедуры? Нет, такой возможности нет. Можно использовать последние версии Access с интегрированными SQL серверами лайт версий, также можно в запросах использовать вызовы функций, но результатом работы конкретно моей программы будет поставка запросов инженерному комплексу, а он (зараза) отказывается втаскивать в свой функционал запросы с вызовами функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 11:59 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Игорь Горбоносtutti-frutti, Тогда вся задача сведётся к запросу рекордсета из процедуры и цикла по всем записям с построением дерева. И не будет нужды в отслеживании рекордсетов. :) Я так строю дерево данными из SQLServer'а Не совсем понял что мы в результате выигрываем? Так или иначе, нужно перебрать все записи в таблице для того , чтобы "обнодить" дерево, или я чего-то не понимаю? Что касается ключей нодов, то я учту. В самом начале пробовал подсовывать ему Str(recordSet1!ID) метот Add артачился и недавался, пришлось лепить вот этот @ Спасибо! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 12:04 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
> Автор: tutti-frutti > Нет, такой возможности нет. Понятно, жаль. Но я все равно отделил-бы получение рекордсета от построения дерева. И в зависимости от дерева, возможно развернул-бы все в линейный цикл, а не рекурсию. Хотя ... Но разделение пролучения и построения это в любом случае! Потому что потом приходится возвращятся и разрисовывать строящееся дерево :). И это проще сделать в простом цикле, чем отслеживать дебри рекурсии Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 12:08 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
> Автор: tutti-frutti > Не совсем понял что мы в результате выигрываем? Так или иначе, нужно перебрать все записи в таблице для того , > чтобы "обнодить" дерево, или я чего-то не понимаю? А ты посмотри на наши с Shocker.Pro коды построения деревьев. У меня идет сразу "цветовая дифференциация штановнод", у Shocker.Pro кроме цвета ещё и восстанавливается распахнутость всех нод. У меня это делается следующим проходом, потому что при моих 200-х пользователях и веб-сервисе я эти данные оставляю у пользователей на компе(если они хотят). А ещё там несколько пересчетов, которые в итоге отображаются в лейблах нод, а ещё .... , а ещё совсем недавно, каких-то пару лет назад это было простое деревце Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 12:20 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Рекомендую уважаемой публике срочно вкурить nested sets , не пожалеете. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 12:30 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
> Автор: Antonariy Спасибо, я читал похожую статью на sql.ru, даже со скриптами сопровождения для MSSQL. Но действительно, не полностью "въехал" в идею. Значит почитаем ещё :) Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 12:48 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Игорь Горбонос , кажись я понял о чем речь. Вы имеете в виду необходимость предварительной подготовки данных перед непосредственным построением дерева!? Типа, наполнить рекордсет (на основании которого будут наполняться ноды) вспомогательной инфой, которая поможет разукрасить и пробразить TreeView? В принципе это наверное правильно ,так как сам рекордсет может быть сформирован и передан разными макарами. Учту на будущее. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 12:51 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Игорь Горбонос > Автор: Antonariy Спасибо, я читал похожую статью на sql.ru, даже со скриптами сопровождения для MSSQL. Но действительно, не полностью "въехал" в идею. Значит почитаем ещё :) Подарю две самые сложные процедуры, остальные легко перевести на mssql самостоятельно Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72.
Здесть ParentId это RefID. Для расчета всего дерева во все параметры нужно передать нули. Первый параметр — название таблицы. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98.
Если задан параметр @new_parent_id, но не задан @id_befor, узел будет последним у родителя. Если @id_befor задан, узел вставится после заданного. Параметр @Step используется для перемещения узла вверх (-1) или вниз (+1) по родителю, @new_parent_id и @id_befor должны быть при этом равны -1. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 13:39 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Игорь ГорбоносВ принципе юнионами знаю, но это для ограниченного числа потомков. Что то типа(для трёх вложений) Или ты имел в виду что-то другое? Скажем так - для фиксированного числа вложений, иначе без курсора не обойтись. Ну я имел ввиду что-то похожее, только я не очень люблю IN, предпочитаю JOIN-ы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 17:59 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
tutti-fruttiНе совсем понял что мы в результате выигрываем? Так или иначе, нужно перебрать все записи в таблице для того , чтобы "обнодить" дерево, или я чего-то не понимаю? Выигрываем то, что внутренний цикл переносится на сторону SQL- ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 18:00 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Shocker.Protutti-fruttiНе совсем понял что мы в результате выигрываем? Так или иначе, нужно перебрать все записи в таблице для того , чтобы "обнодить" дерево, или я чего-то не понимаю? Выигрываем то, что внутренний цикл переносится на сторону SQL- БЛИН, иногда задеваю Ctrl-Enter... Выигрываем то, что внутренний цикл переносится на сторону SQL-движка. Если все происходит на одной машине, это может и не критично. Если же ты используешь клиент-серверную архитектуру - использовать запросы внутри цикла - моветон. Большие накладные расходы на отправку запросов и получение ответов. Проще заставить сервер, чтобы он вернул тебе один ответ - сразу все дерево. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 18:02 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
tutti-fruttiИгорь Горбонос , кажись я понял о чем речь. Вы имеете в виду необходимость предварительной подготовки данных перед непосредственным построением дерева!? Типа, наполнить рекордсет (на основании которого будут наполняться ноды) вспомогательной инфой, которая поможет разукрасить и пробразить TreeView? В принципе это наверное правильно ,так как сам рекордсет может быть сформирован и передан разными макарами. Учту на будущее. Важно не сколько наполнение инфой о цвете, тэгах и т.п. - это-то как раз просто всякие вкусняшки. Важно то, что не насилуется канал до сервера внутренним циклом запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 18:04 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
AntonariyПодарю две самые сложные процедуры, остальные легко перевести на mssql самостоятельно Пока просмотрел статью по диагонали и... Я-то подумал, что там организовывается структура, которая позволяет сделать выборку дерева с помощью запроса, без использования рекурсии. Однако, в том что ты привел я вижу курсоры - тогда уж ничего не понимаю... В принципе, для создания дерева достаточно одного-единственного поля - родитель (если сортировка, скажем, идет не по алфавиту, то еще и сортировочный номер), а там какие-то боковые номера.... Впрочем, обязательно выделю время на курение статьи ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 18:09 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Shocker.ProЯ-то подумал, что там организовывается структура, которая позволяет сделать выборку дерева с помощью запроса, без использования рекурсии. Так и есть. Shocker.ProОднако, в том что ты привел я вижу курсоры - тогда уж ничего не понимаю... Курсоры используются для первичного построения дерева согласно принципам nested sets из исходного дерева, построенного по принципам parent-children, в статье этот момент не разжеван. Там есть основные вещи — выборка всего дерева, подчиненных ветвей, родительской ветки. А вот более интересный пример, который выбирает только те ветки дерева, в которых присутствуют узлы определенного типа, то есть дерево с обрубленными лишними ветвями: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
С nested sets работа с деревьями превращается в песню. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 19:19 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
> Автор: Antonariy > С nested sets работа с деревьями превращается в песню. +1 Из той статью, что читал я, главная трудоемкость заключалась в реорганизации самого дерева, если перетаскивается или удаляется кустик :) А сами запросы были простейшими Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 19:25 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Есть необходимость менять значение поля(лей) в тексте запроса. Речь идет о полях константах , которые прописываются в виде заключенных в кавычки строк и которым назначаются алиасы. Ну например, вот текст запроса, который выбирает из таблицы записи и добавляет к каждой записи два поля Library_Path и Footprint_Path. (Так нужно для той программы ,которая потом возьмет результаты выполнения этого запроса) Код: plaintext 1. 2.
Я планирую открыть соединение с акцессом, удалить запрос, сформировать текст нового на основании новых значений констант, а потом создать запрос в базе акцесс. Принципиально это возможно? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2010, 12:10 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Речь идет о программе в VB6. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2010, 12:12 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
делайте через отсоединённый рекордсет ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2010, 12:14 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Konst_Oneделайте через отсоединённый рекордсет А почему именно так? Мне нужно иметь в базе ацес именно запрос. Этот запрос потом подтянет программа (Altium Designer) именно ради результатов этого запроса весь сыр-бор. То есть грубо говоря, моя программа (на басике) строит дерево, дает возможность его наполнить/изменить и прочее, а результатом всего этого будет вот этот запрос, который предоставит возможность пользователю серьезной инженерной программы выбрать компонент из многомиллионной базы компонентов. в этом запросе должны указыватся пути к составным частям библиотеки компонентов. Я планирую создать раздел "настройка" в программе и положить туда эти пути, которые можно будет изменять и изменения в которых будут транслироваться в этот самый запрос. Пока писал понял, что можно не пересоздавать запрос, а просто дооснастить его связями с таблицей в которой и буду лежать пути. Спасибо! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2010, 12:23 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Код: plaintext 1.
Окошко MsgBox выскакивает с шапкой в которой прописан Project1. Имя проекта я изменил. Шо делать? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2010, 17:01 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
tutti-frutti Код: plaintext 1.
Окошко MsgBox выскакивает с шапкой в которой прописан Project1. Имя проекта я изменил. Шо делать? :) там ещё параметры есть у этого метода ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2010, 17:05 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
Konst_Onetutti-frutti Код: plaintext 1.
Окошко MsgBox выскакивает с шапкой в которой прописан Project1. Имя проекта я изменил. Шо делать? :) там ещё параметры есть у этого метода У какого именно метода? MsgBox? Хорошо ,сейчас порыскаю в нете. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2010, 17:06 |
|
Вопросы по структуре, организации и принципам кода в VB6->
|
|||
---|---|---|---|
#18+
tutti-fruttiKonst_Onetutti-frutti Код: plaintext 1.
Окошко MsgBox выскакивает с шапкой в которой прописан Project1. Имя проекта я изменил. Шо делать? :) там ещё параметры есть у этого метода У какого именно метода? MsgBox? Хорошо ,сейчас порыскаю в нете. MsgBox "gbdshbdg",,, ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2010, 17:07 |
|
|
start [/forum/topic.php?fid=60&msg=36666226&tid=2158708]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 148ms |
0 / 0 |