|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
Ночи доброй !.. Вот маленькая задачка, а бился целый день, так и не вышло... Две формочки в одном проекте (там же одна БД), ни в одной из форм DataEnvironment нет (в смысле не добавлял туда что-либо)... запускаю одну форму, там OPEN DATABASE .... SHARED, потом USE table1 shared in 0, из первой формы запускаю вторую, в которой тож самое и для той же таблицы, как только пытаюсь INSERT в таблицу, дает "file is in use" принтил и DBC() и ISEXCLUSIVE() все нормально, все доступно (c datasession и 1 и 2 делал).... в чем тут загвоздка ? про то что insert требует монопольного доступа читал, но тогда должно даваться другое сообщение, наверное.... в итоге, и такой вопрос, когда подобным образом осуществляется доступ к таблицам что происходит с этим странным dataenvironment ? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2009, 22:46 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
_usa__83_insert требует монопольного доступа И где это написано? INSERT SQL блокирует таблицу (заголовок) автоматически, принудительная блокировка не нужна. Грабли где-то в другом месте. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.11.2009, 23:32 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
igorbik, где написано эт я выложу ссылку (сейчас чтот не могу найти), мне интересно в принципе такие действия допустимы? форма (без объектов dataenv) там Open database, use table shared ... при этом ведь файл таблицы не должен блокироваться, а при попытке из другой формы, дает именно "file is in use".... хммм.. правда эта пресловутая табличка участвует в связях БД (она родительская), мож это влияет? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2009, 00:28 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
Вероятно в виду имется навигационная команда INSERT, тогда действительно нужна монополия. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2009, 06:07 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
_usa__83_igorbik, где написано эт я выложу ссылку Интересно, посмотрим. Со своей стороны выкладываю свою ссылку: http://www.book-foxpro.com/index.php?nma=fp_20&fla=index3 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2009, 12:08 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
igorbik, А лучше прислать сюда приложением кусок проекта с формами и таблицами, где происходит непонятная блокировка, ибо неисповедимы пути программера, и ошибки могут быть где угодно. А тогда умные люди разберутся и ответят по существу. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2009, 12:10 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
Описание команды Insert-SQL по русски. Эксклюзивного доступа не требуется INSERT - SQL Команда Далее читаем описание ошибки с текстом "file is in use". Возможны 3 варианта Файл используется (Ошибка 3) Файл используется другим пользователем (Ошибка 108) Файл используется в другом сеансе данных (Ошибка 2191) Все эти ошибки связаны не с командой Insert-SQL как таковой, а с попыткой открыть таблицу повторно. Вот эта самая команда, скорее всего подобную ошибку и порождает. Код: plaintext
Попробуйте в командном окне два раза подряд написать Код: plaintext 1. 2.
На второй команде и увидите сообщение об ошибке. Идея DataEnvironment в том и заключается, что не надо писать код открытия таблиц . По умолчанию, таблицы будут открыты сами. Автоматически. Можно, конечно, отключить этот автоматизм, через настройку DataEnvironemtn.AutoOpen = .F. Но тогда Вы должны, во-первых, очень внимательно почитать HELP по команде USE. А, во-вторых, следует понимать, как вообще организована работа с таблицами в FoxPro. Т.е. понять, что есть "рабочая область". Таблица ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2009, 12:21 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
Если таблицы открываю не через DataEnvironment, на примере таблицы fl IF USED("fl") SELECT fl ELSE SELECT 0 USE ("..\DBFS\fl.dbf") IN 0 SHARED AGAIN ALIAS fl ENDIF ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2009, 12:48 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
Местами администратор, Пасиба всем, разобрался... Косяк действительно был в другом месте, сразу не обратил внимания на то что при выдаче INSERT выскакивает окошко "Open", просто в INSERTE был не верное выражение для таблицы.... во как а в остальном, работает как надо и двукратный USE не приводит к ошибкам.... Вот другой вопрос, если позволите: чем-нибудь кроме PACK физически удалить записи можно? так как таблицы расшарены, то на выдачу PACK говорит что требуется ЭКСКЛЮЗИВНЫЙ доступ ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2009, 13:24 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
_usa__83_чем-нибудь кроме PACK физически удалить записи можно? Нет. И не нужно.так как таблицы расшарены, то на выдачу PACK говорит что требуется ЭКСКЛЮЗИВНЫЙ доступВот именно поэтому удалять физически не надо. Надо воспользоваться штатными методами без физического удаления. См. set delete on ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2009, 13:26 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
если только все записи снести -zap ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2009, 08:14 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
требует так же монопольного доступа..., в результате - "чистое поле" ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2009, 08:15 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
Другой вопрос, но все про тот же dataenvironment.. обратил внимание на тот факт что при добавлении таблиц (находящихся в одной БД) в dataenvironment получается неприятная картина: есть tab1, tab2, tab3, причем и tab1 и tab2 являются родительскими по отношению к tab3 (tab1 1:M tab3, tab2 1:M tab3).... так вот, при добавлении такого набора таблиц в dataenvironment в любой последовательности, теряется одна из связей, т.е. рисуется либо связь tab1-<tab3 или tab2-<tab3, но никак не обе... в дизайнере самой БД все связи присутствуют, более того на них висят правила ссылочной целостности и генерация ri процедур проходит успешно... быть может что-т неверно делаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2009, 11:21 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
Вы путаете понятия. То, что настривается в контейнере базы данных не имеет вообще никакого отношения к тому, что настривается в DataEnvironment. Это разные виды связей Связи и отношения между таблицами ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2009, 11:32 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
ВладимирМ, Угу, прочитал.. Но все же не понял, почему дизайнер dataenvironment при добавлении подчиненной таблицы (эт которая в "постоянной связи" участвует) в dataenvironmet и наличие там родительской таблицы автоматически рисует между ними связь (которая соответствует постоянной связи) а в случае когда добавляются две родительские таблицы и третья (подчиненная по отношению к первым двум в смысле что есть "постоянные связи") то автоматически рисуется только одна связь (соответствующая одной из "постоянных связей".... а не обе? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2009, 12:47 |
|
Читал про DataEnvironment ничего не понял
|
|||
---|---|---|---|
#18+
Надеюсь, Вы все-таки поняли, что то, что настроено в контейнере базы данных не есть то, что отображается в DataEnvironment? А теперь поставьте себя на место разработчиков FoxPro. Есть связь в контейнере базы данных. В DataEnvironment добавляют таблицы. В каких случаях и по каким правилам следует ПРЕДЛОЖИТЬ установить связь в DataEnvironment? Заметьте, не "обязать", а именно "предложить"! Пользователь может и не согласится с этим "предложением". Да, надеюсь, Вы знаете, что связи в DataEnvironment можно удалять и настраивать вне зависимости от автоматического их создания? Т.е. вне зависимости от связей в контейнере базы данных. Также, надеюсь, понимаете, что в большинстве случаев эти связи вообще не нужны для нормального отображения данных на форме? И еще, ответьте на вопрос "ЗАЧЕМ"? Зачем Вам нужны эти связи в DataEnvironment формы? Что Вы с ними собираетесь делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2009, 12:59 |
|
|
start [/forum/topic.php?fid=41&fpage=111&tid=1585802]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 154ms |
0 / 0 |