Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как организовать поиск такой же записи / 9 сообщений из 9, страница 1 из 1
10.03.2005, 18:35
    #32954257
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать поиск такой же записи
есть база, из нее я делаю курсор - отбираю записи по определенному условию

как мне теперь искать в базе такую же запись как выбрана в курсоре?

ну я понимаю что надо описывать сравнение по полям.

но вопрос, собственно, в том есть ли какой-нить модный способ, типа сделать
Select curMyBase
Scatter to sSearchRec
Select MyBase
Locate for sSearchRec

или вроде того, ведь и курсор и база абсолютно одинаковы по структуре да и по содержимому, с той разницей, что в курсоре не все записи.

Или надо тогда организовать попольный рилейшн с базой родителем или еще как? Или в курсор во время select добавить поле с номером записи в родителе, типа select *, recno(MyBase) as BaseRec into cursor curMyBase...
и потом на этот BaseRec ориентироваться в МyBase?
...
Рейтинг: 0 / 0
10.03.2005, 18:46
    #32954282
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать поиск такой же записи
В любой таблице должно быть ключевое поле. Это поле, по содержимому которого можно однозначно опрделить о какой записи идет речь. Т.е. в принципе не должно существовать 2-х записей с одинаковым значением этого ключевого поля.

Как правило, в качестве ключевого поля выступает суррогатный ключ.

Дальше все просто. Одним из полей в твоем курсоре должно быть это ключевое поле. По нему ты и найдешь соответсвтующую запись в исходной таблице.

Подробнее о ключевых полях читай здесь

http://www.foxclub.ru/kb/index.php?sid=24056&aktion=artikel&rubrik=001&id=6&lang=ru
...
Рейтинг: 0 / 0
11.03.2005, 10:55
    #32954990
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать поиск такой же записи
Я статейку эту уже читал и думал об этом. Но, понимаете, оно все правильно, но программа без этого уже годами работает, это означает поднять все архивы и внести туда ключевое поле. Это раз.
Ну и второе - я так и не понял КАК ГЕНЕРИТЬ значение этому полю так, чтобы оно было уникальным, т.е. 100%, чтобы не искать такое же значение в базе прежде чем добавить туда новую запись.
...
Рейтинг: 0 / 0
11.03.2005, 11:06
    #32955029
Grumax_user
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать поиск такой же записи
Какая версия фокса? Если 8.0-ка, то используй поле Integer(AutoInc), оно автоматически присваивает уникальное значение, если версия ниже, то советую написать процедуру или функцию формирования уникального ключа...у нас например, этот ключ выглядит в виде поля C(4)
Id_rec00010002...0009000a000b000c...000A000B и т.д. Обеспечивает 62^4 уникальных ключей

------------------------------------------------------------------------------------
Я во все дела суюсь -> всесторонне разовьюсь
...
Рейтинг: 0 / 0
11.03.2005, 14:18
    #32955742
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать поиск такой же записи
Ваша функция это просто конвертилка в НЕХ, если я правильно понимаю?

у меня 8 и такой тип поля есть. Я его ввел - там все значения стали=0 на всю базу. и чего теперь? Ну я добавлю запись - то значение в нем=1 и тд а что с существующими записями-то делать? риплейс через рекно()? - фигу, он рид-онли.
че сконвертить структуру в отдельное фало и аппендом в него, аппендом?

и вообще, это поле практически будет соответствовать рекно(), ну, до первоо удаления с упаковкой...
...
Рейтинг: 0 / 0
11.03.2005, 14:31
    #32955790
w3d
w3d
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать поиск такой же записи
CTAC-KO Ну я добавлю запись - то значение в нем=1 и тд а что с существующими записями-то делать?
Выстави в таблице для этого поля следующее значение в число записей+1, и увеличение на 1.

CTAC-KOон рид-онли.
че сконвертить структуру в отдельное фало и аппендом в него, аппендом?

С чего это рид-онли?
...
Рейтинг: 0 / 0
11.03.2005, 14:48
    #32955862
Crispy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать поиск такой же записи
А я ключевое поле делаю типа:
YYMMDDччммсс - по две цифры на год, месяц, день, час , мин., сек. - при нормальной работе (если ен делать по две-три-четыре... записи в секунду) записи никогда не повторятся. А если работает скоростник - тормоза ему!
...
Рейтинг: 0 / 0
11.03.2005, 14:50
    #32955872
Crispy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать поиск такой же записи
Кстати - заодно можно и определить, когда была сделана запись - иногда бывает нужно, а иногда даже производит впечатление на кое-кого ;)
...
Рейтинг: 0 / 0
11.03.2005, 15:02
    #32955915
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как организовать поиск такой же записи
CTAC-KOНу и второе - я так и не понял КАК ГЕНЕРИТЬ значение этому полю так, чтобы оно было уникальным, т.е. 100%, чтобы не искать такое же значение в базе прежде чем добавить туда новую запись.
Сделай поиск по этому форму по ключевому слову "NewId"

Crispy
Какое время берешь? С сервера или с локальной машины? Как вытаскиваешь время сервера?

В общем случае, ключевое поле как чистое DateTime - верный путь к большим проблемам. Если бы все было так просто, то не было бы столько функций по генерации GUID-ов
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / как организовать поиск такой же записи / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]