|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
Добрый день.. Хотелось бы узнать или где почитать... Что такое курсор адаптер.. Раньше программировал и создавал интерфейсы в среде VFP, но версии 7... Потом отшел от этого, вот сейча снеобходимость настала... Читаю и не могу понять, как да что)) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2009, 16:41 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
Андрей ВикторовичДобрый день.. Хотелось бы узнать или где почитать... Что такое курсор адаптер.. Раньше программировал и создавал интерфейсы в среде VFP, но версии 7... Потом отшел от этого, вот сейча снеобходимость настала... Читаю и не могу понять, как да что)) Ну, попробуйте оттолкнуться от http://www.code-magazine.com/Focus/Article.aspx?quickid=0301062. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2009, 17:00 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
Андрей ВикторовичДобрый день.. Хотелось бы узнать или где почитать... Что такое курсор адаптер.. Раньше программировал и создавал интерфейсы в среде VFP, но версии 7... Потом отшел от этого, вот сейча снеобходимость настала... Читаю и не могу понять, как да что)) Local View или Remote View делали? Вот это примерно то же самое, но существенно расширены возможности "вмешательства" в процесс получения выборки и сброса изменений в исходные таблицы. Идея проста: конструируется запрос Select-SQL, затем он выполняется (получаем некий курсор), затем пользователь вносит изменения в этот курсор, затем осуществляется сброс изменений из курсора в исходные таблицы. Вся эта внутренняя механика скрыта внутри класса CursorAdapter. После его настройки создается впечатление, что работаешь с обычным курсором FoxPro. Ну, и класс имеет избыточное количество свойств и методов по той причине, что он объединяет в себе 4 принципиально разные технологии доступа к данным: Native (прямой доступ к DBF), ODBC, ADO, XML. Есть свойства и методы применимые только в одной технологии доступа, но бессмысленные в другой. Поэтому есть избыточность. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2009, 20:33 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
ВладимирМ, можно подробно с примером, если конечно же Вас не трудно... Очень довольно таки хорошая вещь, работал раньше именно с вьюшками.... Вот допустим у меня есть таблица, в которую должны вносить данные, соответсвенно через грид... Таблиц порядка 5... И еще вопрос, обязательно ли чтоб таблицы были включены в БЛ или могут быть отвязанными??? reware, спасибо, помогло.. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2009, 23:41 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
ой, не порядка!!, а 5 ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2009, 23:43 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
Довольно подробно это все описано у Юрия Шутенко CursorAdapter Привязка к базе данных для CursorAdapter не нужна. Да, собственно и для Local View она не обязательна. Если вы раньше работали с View, то принцип остался тот же. Все основные правила и проблемы - те же. Несколько больше возможностей и чуть по другому организовано. Общее правило - по возможности, один CursorAdapter на одну таблицу-источник. Объединение нескольких таблиц-источников в один CursorAdapter для чтения - не проблема, но вот для обновления, довольно трудно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 03:16 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
ох..... Андрей Викторович, для какого источника нужны примеры? КАД необходим для создания абстрактных механизмов для работы с данными. КАД это базовый класс, который уже содержит в себе заложенные возможности + имеет механизм отслеживания различных событий. Используя базовый класс разработчик имеет возможность на его основе создать свою библиотеку ... Итак, КАД позволяет экономить время, решать задачи просто, быстро надежно, получить гарантированный результат. авторОбъединение нескольких таблиц-источников в один CursorAdapter для чтения - не проблема, но вот для обновления, довольно трудно. Если необходимо взаимодействовать с несколькими таблицами и вносить изм-я в несколько таблиц, то и создаем коллекцию взаимосвязанных курсорадаптеров. Пример некой реализации, настройки КАДов, способа видоизменения можно посмотреть здесь http://www.sql.ru/forum/actualfile.aspx?id=6704152 некоторое объяснение процесса создания и идеи здесь http://www.sql.ru/forum/actualthread.aspx?tid=618865&pg=2 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 09:28 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
ВладимирМ, Большое Вам спасибо за ссылку, попробывал на собственной базе... прошелмимо , И Вам спасибо, посмотрел, понял реализацию.... К Вам обоим вопрос.. Проект мой предполагает серверную БД (файл-сервер) с максимум 3 пользователями... Задача пользователей тупо вносить информацию в одну таблицу... Никогда сетевую модель не разрабатывал, может подскажите как мне реализовать данную задачу. Как вообще создать так, чтобы они когда работают одновременно не мешали друг-другу... и при этом чтоб информация добавлялась в таблицу... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 11:01 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
set excl off + сейчас разобраться с примером, который я показал (понять что такое классы в фокспро и как их создавать) я попробую доработать библиотеки и Вы попробуете ими воспользоваться, либо попробуйте самостоятельно создавать нечто подобное. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 11:11 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
прошелмимоset excl off + сейчас разобраться с примером, который я показал (понять что такое классы в фокспро и как их создавать)Естественно прошелмимо я попробую доработать библиотеки и Вы попробуете ими воспользоваться, либо попробуйте самостоятельно создавать нечто подобное. Буду Вам весьма признателен.... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 11:28 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
Буду Вам весьма признателен.... пока самостоятельно, Вы просто должны понять, что можно создать шаблон, им пользоваться и видоизменять, настраивать можно с помощью созданных самостоятельно визуальных билдеров гы, оч.большая загрузка, ничего не помню, не вижу, не знаю, бегаю с маркером и крашу документы, чтобы хотя-бы как-то запоминать хоть что-то... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 12:27 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
Андрей ВикторовичПроект мой предполагает серверную БД (файл-сервер) с максимум 3 пользователями... Задача пользователей тупо вносить информацию в одну таблицу... Никогда сетевую модель не разрабатывал, может подскажите как мне реализовать данную задачу. Как вообще создать так, чтобы они когда работают одновременно не мешали друг-другу... и при этом чтоб информация добавлялась в таблицу... На уровне каких-то конкретных класов в такой постановке вопроса задча не имеет решения. Классы - это инструмент, а какую именно задачу вы хотите решить от инструмента не зависит. В данном случае, принципиально важным вопросом становится что именно вы вкладываете в понятие "не мешали друг другу". Поясню, о чем речь. Предположим, два пользователя одновременно создали две одинаковые записи. Допустимо ли их добавлять? Насколько записи должны отличаться, чтобы считаться "разными"? Если один пользователь ввел данные, может ли другой пользователь эти данные изменить/удалить? Т.е. сначала надо решить вопросы не "как", а "что"? А уже зная, что именно вы хотите реализовать можно посоветовать тот или иной инструмент или способ решения. Если подобные вопросы вас не интересуют, то достаточно настройки SET EXCLUSIVE OFF. А все остальное CursorAdapter сделает автоматически. Но это будет просто "сваливание в кучу". ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 12:28 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
ВладимирМ Идея проста: конструируется запрос Select-SQL, затем он выполняется (получаем некий курсор), затем пользователь вносит изменения в этот курсор, затем осуществляется сброс изменений из курсора в исходные таблицы. Вся эта внутренняя механика скрыта внутри класса CursorAdapter. После его настройки создается впечатление, что работаешь с обычным курсором FoxPro. Всё это хорошо, если метод работы таблицы...но в клиент серверной технологии, по моему мнению, более приемлимо, выбор записи, кнопка редактирование и в кнопке выполняется SQL запрос, где результат выдаётся в другое окно(закладку, место в том же окне и т.д.), если вы корректируете данные в таблице, а потом начинаете сбрасывать(refresh в КАД), то это уже пошла пакетная обработка...а вам это надо..лучше пусть редактируют и добавляют по одной записи, а для этого КАД не нужен, достаточно sqlexec... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 13:32 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
ННовичокесли вы корректируете данные в таблице, а потом начинаете сбрасывать(refresh в КАД), то это уже пошла пакетная обработка... Что именно вы понимате в данном случае под термином "пакетная обработка"? Почему вы считаете, что то, что в конце-концов уйдет на сервер будет отличаться от прямого SQLExec()? Трассировку SQL-сервера смотрели? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 13:54 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
автора для этого КАД не нужен понятно, что все можно сделать посредством команд ф-ей sqlexec. КАД используют когда надоело руками трясти сервер. Еще раз вдумайтесь в слова: использование КАД облегчает реализацию, позволяет создать абстрактные механизмы (т.е. механизмы, которые позволяют решить задачу другим способом, нежели чем ....), в итоге снижаются трудозатраты, разработчик больше уделяет времени ... далее слова про рефреш немного странные, Вы имеете опыт работы с классом курсорадаптер? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 14:17 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
Отличаться во всех вариантах не будет, отличие в том что sqlexec выполнит одну команду(можно конечно и пакет команд)...во втором случае..изменения в таблице на сервере, как мне кажется происходит по отдельной команде(тут я и говорил про рефреш, может tableeve) на клиенте, которая начинает все записи таблицы сравнивать с записями на сервере и вносить изменения.. PS: опыт не имею...так как новичок ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 14:51 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
авторPS: опыт не имею...так как новичок зачем Вы тогда высказываетесь не имея опыта? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 15:08 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
ННовичокОтличаться во всех вариантах не будет, отличие в том что sqlexec выполнит одну команду(можно конечно и пакет команд)...во втором случае..изменения в таблице на сервере, как мне кажется происходит по отдельной команде(тут я и говорил про рефреш, может tableeve) на клиенте, которая начинает все записи таблицы сравнивать с записями на сервере и вносить изменения.. PS: опыт не имею...так как новичок Поверьте на слово: что через SQLExec(), что через CursorAdapter, на сервер будет отправлено примерно одно и то же. Говоря вашими словами, на стороне сервера будет выполнен примерно одинаковый набор команд. Просто CursorAdapter возьмет на себя рутинную работу по подготовке того набора команд, которые надо будет отправить на сервер. При работе через SQLExec() вам придется писать все то же самое, что делает CursorAdapter, но собственными силами. Будет больше программного кода. Хотя, конечно, от задачи зависит... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 20:59 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
ВладимирМ,прошелмимо, Спасибо за посты Ваши... Вроде разобрался, сделал пару своих классов.... Все работает как часики, только вот не попробовал еще на несколько пользователей... Я сейчас как делал эти курсорадптеры, через буйлд указывал сетевой путь на БД.. Вот после компиляции exe, на нескольких машинах будет работать??? У меня стоит версия 9 сп2, когда запускаю на других компах, пишет не поддерживающих библиотек... Раньше помню вроде копировал один файл в папку системную и все работало, а сейчас как??? Кстати, а корректно если в курсорадаптере вручную ставил условие на выборку из таблиц?? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 22:08 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
ВладимирМ Предположим, два пользователя одновременно создали две одинаковые записи. Допустимо ли их добавлять? Насколько записи должны отличаться, чтобы считаться "разными"? Если один пользователь ввел данные, может ли другой пользователь эти данные изменить/удалить? Пользователи могут только вводить данные качества продукции, пройденные по определенным техническим процессам... Есть 4 этапа регистрации брака, в которых указывается монтажница, сам этап, дефект выявленный, и готовая продукция... На выходе отчет в ексчел... Все просто до невозможности :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2009, 22:13 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
Андрей ВикторовичВладимирМ,прошелмимо, Спасибо за посты Ваши... Вроде разобрался, сделал пару своих классов.... Все работает как часики, только вот не попробовал еще на несколько пользователей... Просто запустите ваше приложение дважды на одном и том же компьютере. Это и будет симуляция многопользовательского доступа. Для отладки можно запускать дважды и собственно среду FoxPro. Андрей ВикторовичЯ сейчас как делал эти курсорадптеры, через буйлд указывал сетевой путь на БД.. Вот после компиляции exe, на нескольких машинах будет работать??? Если сетевой путь до этой БД с разных компьютеров будет один и тот же, то, конечно, будет работать. Хотя, обычно, путь доступа к базе данных выносят во внешние (по отношению к программе) настройки. Андрей ВикторовичУ меня стоит версия 9 сп2, когда запускаю на других компах, пишет не поддерживающих библиотек... Раньше помню вроде копировал один файл в папку системную и все работало, а сейчас как??? Как минимум, нужны еще Run-Time библиотеки. В зависимости от того, что именно используется в приложении для VFP9 могут понадобиться разные файлы. Полный их список можно посмотреть здесь VFP 9 Runtime Files Однако "по минимум" нужны только библиотеки: msvcr71.dll, vfp9r.dll и vfp9renu.dll. Причем, библиотека msvcr71.dll, скорее всего, уже установлена Андрей ВикторовичКстати, а корректно если в курсорадаптере вручную ставил условие на выборку из таблиц?? Если работает, то корректно Хотя, непонятно, что именно вы подразумеваете в данном случае под словами "вручную"? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 00:34 |
|
Объясните пожалуйста..))
|
|||
---|---|---|---|
#18+
автор когда запускаю на других компах, пишет не поддерживающих библиотек в комплект дистрибутива фокспро входит инсталшилд. С помощью инсталшилд сделайте установщик, как работать с инсталшилдом поищите поиском в данном форуме и на фоксклабе. Для автоматической установки библиотек Вам нужно будет просто пользоваться готовым установщиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2009, 09:11 |
|
|
start [/forum/topic.php?fid=41&msg=35824649&tid=1586750]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 323ms |
total: | 460ms |
0 / 0 |