:: Visual Foxpro, Foxpro for DOS
Re: видимость курсора
DmitryKn
Автор

Сообщений: 301
Дата регистрации: 06.04.2022
При попытке установить Restrict ругается фокс, то нет доступа к файлу в корне rioutput.prg , которого я не вижу в принципе, то дебагер открывается с Source not available для объекта builder, а то вовсе подвисает и только через диспетчер выйти можно.
Хотя потом Restrict остается в табличке.
Ratings: 0 negative/0 positive
Re: видимость курсора
PaulWist

Сообщений: 14761
Дата регистрации: 01.04.2004
Сделай с нуля БД, в неё 2 таблички с PK-FK. Навесь RI на эти таблички, посмотри что получиться (может RI билдер битый).


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: видимость курсора
DmitryKn
Автор

Сообщений: 301
Дата регистрации: 06.04.2022
PaulWist
Сделай с нуля БД, в неё 2 таблички с PK-FK. Навесь RI на эти таблички, посмотри что получиться (может RI билдер битый).

тоже самое, ругается, выход через диспетчер, однако при следующем открытии restrict в табличке RI виден.
А как этот RI билдер переставить?
Ratings: 0 negative/0 positive
Re: видимость курсора
PaulWist

Сообщений: 14761
Дата регистрации: 01.04.2004
Option - FileLocation -> Builders

достаточно его переписать с живого компа.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: видимость курсора
DmitryKn
Автор

Сообщений: 301
Дата регистрации: 06.04.2022
Похоже, это были проблемы с атрибутами папки.
Ratings: 0 negative/0 positive
Re: видимость курсора
DmitryKn
Автор

Сообщений: 301
Дата регистрации: 06.04.2022
вроде как работает код с Restrict, но
не смог в таблицу , в которой случалось, добавить отношение. Пытаюсь сделать ключ примари - пишет нарушена уникальность. Пустых нет, выгрузил в ехель, пытался повторы по цвету найти, тоже не увидел, но там 70 К + строк.
Нет ли какой функции найти одинаковые значения ( но думаю, их не будет) , по хелпу побегал, сходу не нашел.
Что еще может влиять на уникальность?



Исправлено 1 раз(а). Последнее : DmitryKn, 15.12.22 15:06
Ratings: 0 negative/0 positive
Re: видимость курсора
PaulWist

Сообщений: 14761
Дата регистрации: 01.04.2004
DmitryKn
Нет ли какой функции найти одинаковые значения ( но думаю, их не будет) , по хелпу побегал, сходу не нашел.

select PrimaryKeyid from Table group by PrimaryKeyid having count(1) > 1


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: видимость курсора
DmitryKn
Автор

Сообщений: 301
Дата регистрации: 06.04.2022
Повторов не обнаружил.
Что может помешать стать примарикей полю Integer , в котором нет пустых и совпадений?

Update: победил
Up2 :установил ключ, restrict, теперь проблема с кодом:
Цитата:
Ignor не запускает триггер RI, надо изменить на Restrict (очень многое узнаешь, как работает код ).
при удалении в таблице out_h, это заголовок моей накладной , в которой есть записи, в которых этот примари внешний ключ, не хочет сохраняться, пишет ошибку 1539 триггер поломан в таблице out_h.



Исправлено 4 раз(а). Последнее : DmitryKn, 15.12.22 19:54
Ratings: 0 negative/0 positive
Re: видимость курсора
PaulWist

Сообщений: 14761
Дата регистрации: 01.04.2004
DmitryKn
Повторов не обнаружил.
Что может помешать стать примарикей полю Integer , в котором нет пустых и совпадений?

Update: победил
Up2 :установил ключ, restrict, теперь проблема с кодом:
Цитата:
Ignor не запускает триггер RI, надо изменить на Restrict (очень многое узнаешь, как работает код ).
при удалении в таблице out_h, это заголовок моей накладной , в которой есть записи, в которых этот примари внешний ключ, не хочет сохраняться, пишет ошибку 1539 триггер поломан в таблице out_h.

Скажи pack, затем пробуй первичный ключ.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: видимость курсора
of63

Сообщений: 26040
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
> При попытке установить Restrict ругается фокс,

Не делайте плохого с фоксом, он може просто "индекс", ну, с фоксовым выражением"... НОо лучще вообще не делать индекс официально. Есть "Селект", чтобы просто повыбирать что-то из таблички (поди именем, алиасом...)
Ratings: 0 negative/0 positive
Re: видимость курсора
PaulWist

Сообщений: 14761
Дата регистрации: 01.04.2004
of63
> При попытке установить Restrict ругается фокс,
Не делайте плохого с фоксом, он може просто "индекс", ну, с фоксовым выражением"... НОо лучще вообще не делать индекс официально. Есть "Селект", чтобы просто повыбирать что-то из таблички (поди именем, алиасом...)



Как селектом заблокировать модификацию данных, или ещё проще, наложить блокировку на записи.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: видимость курсора
Владимир Максимов

Сообщений: 14151
Откуда: Москва
Дата регистрации: 02.09.2000
DmitryKn
Повторов не обнаружил.
Что может помешать стать примарикей полю Integer , в котором нет пустых и совпадений?

1. Primary - это свойство контейнера базы данных. Если таблица не включена в базу данных создать Primary невозможно. Но можно Candidate.

InDBC() - проверяет включен ли объект в базу данных. Второй параметр - это тип объекта. Для таблиц можно так

?INDBC('MyTable', 'TABLE')

Косвенный признак факта включения в базу данных - это длинные имена полей. Больше 10 символов. Просто сами эти имена физически хранятся именно в DBC. В самом файле DBF есть место под хранение только первых 10 символов имени поля.

2. При контроле уникальности значений также учитываются и записи, помеченные как удаленные (delete). Но такие записи могут быть скрыты (не видны) если сделана настройка SET DELETED ON (ON - включить фильтр по удаленным, OFF - отключить фильтр по удаленным). Поэтому перед проверкой на дубли следует отключать этот фильтр

SET DELETE OFF
select PrimaryKeyid from MyTable group by PrimaryKeyid having count(1) > 1

Надеюсь, в курсе, что в FoxPro команда Delete физически записи не удаляет, а лишь ставит метку, что запись удалена. Для физического удаления записей, ранее помеченных командами Delete, используется команда PACK

use MyTable exclusive
pack

Теоретически, можно добавить в индекс FOR-условие, чтобы исключить их рассмотрения записи, не удовлетворяющие условию фильтра. Но это крайне плохая стратегия. Вы получите именно те проблемы, что сейчас. Записи есть, но их "не видно". Сложно будет потом понять, в чем дело-то?
Ratings: 0 negative/0 positive
Re: видимость курсора
DmitryKn
Автор

Сообщений: 301
Дата регистрации: 06.04.2022
нет-нет, с ключом все хорошо, поставился и restrict поставился, так что с этим все хорошо.
Только код уже не работает

Надо местами переделать, с новой идеологией не годится, то, что у других считается мозгом, закипает )
Ratings: 0 negative/0 positive
Re: видимость курсора
PaulWist

Сообщений: 14761
Дата регистрации: 01.04.2004
DmitryKn
нет-нет, с ключом все хорошо, поставился и restrict поставился, так что с этим все хорошо.
Только код уже не работает

Надо местами переделать, с новой идеологией не годится, то, что у других считается мозгом, закипает )

Ааа, код в смысле сама прога, нууу ... (теперь представляешь какой мусор лежит в БД)

(с) О сколько нам открытий чудных ... А.С. Пушкин.




------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: видимость курсора
DmitryKn
Автор

Сообщений: 301
Дата регистрации: 06.04.2022
Например, как можно воспользоваться данными, которые только что внесены юзером, но еще не были сохранены в таблицу.
Скажем, была таблица tabl1, fld1 (id), fld2(внешний ключ),fld3
в ней записи
1 11 ббб
2 11 ггг
3 12 ууу

Таблица сохранена, и мы можем сделать select, например, по ключу fld2
Но вот добавили строку

4 12 ппп и еще не было tablupdate

как получить выборку по значению fld2 = 12 ?
а это крушиал (

разве что лепить еще вью, и делать его таблапдэйт и только потом обновлять таблицу?



Исправлено 1 раз(а). Последнее : DmitryKn, 16.12.22 12:09
Ratings: 0 negative/0 positive
Re: видимость курсора
PaulWist

Сообщений: 14761
Дата регистрации: 01.04.2004
DmitryKn
Например, как можно воспользоваться данными, которые только что внесены юзером, но еще не были сохранены в таблицу.
Скажем, была таблица tabl1, fld1 (id), fld2(внешний ключ),fld3
в ней записи
1 11 ббб
2 11 ггг
3 12 ууу

Таблица сохранена, и мы можем сделать select, например, по ключу fld2
Но вот добавили строку

4 12 ппп и еще не было tablupdate

как получить выборку по значению fld2 = 12 ?
а это крушиал (

разве что лепить еще вью, и делать его таблапдэйт и только потом обновлять таблицу?

Всё украдено придумано до нас:

select * from LocalCursor with (buffering = .t.)


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: видимость курсора
DmitryKn
Автор

Сообщений: 301
Дата регистрации: 06.04.2022
Цитата:
Всё украдено придумано до нас:

select * from LocalCursor with (buffering = .t.)

LocalCursor в данном случае это что такое?

up. Понял!
пробую



Исправлено 1 раз(а). Последнее : DmitryKn, 16.12.22 12:41
Ratings: 0 negative/0 positive
Re: видимость курсора
DmitryKn
Автор

Сообщений: 301
Дата регистрации: 06.04.2022
друзья, большое спасибо за помощь!

PaulWist отдельное огромное спасибо, глядишь, я так с вами чему-то (ну хоть чему-то) да и научусь ))

По итогу:
Установил связи между таблицами, победил код, обернул в транзакции сохранение, теперь время покажет, побеждены ли глюки )
Ratings: 0 negative/0 positive
Re: видимость курсора
PaulWist

Сообщений: 14761
Дата регистрации: 01.04.2004
Ещё добавок.

Я уже не помню деталей, но если что-то делать с таблицами (alter table, например) у которых установлены RI, то все связи "ломаются" и надо снова тыкать мышкой (кодом не правится, или я не знаю. И ещё остались смутные воспоминания, что контейнер БД надо компилировать , но это не точно )


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: видимость курсора
DmitryKn
Автор

Сообщений: 301
Дата регистрации: 06.04.2022
Немного поспешил (

при редактировании дочерних таблиц постоянно ошибка 1539 триггер поломался в таблице ((

интуитивно кажется, что это связано с появлением помеченных на удаление записей.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 29 (Гостей: 29)

© 2000-2025 Fox Club 
Яндекс.Метрика