Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.14;
Скачать: CL | DM;

Вниз

Указатель на буфер записи базы данных после SetKey?   Найти похожие ветки 

 
Vlad2   (2003-06-20 11:51) [0]

Такая проблема: в одном месте программы запоминаю буфер записи table1.GetCurrentRecord(buf), в другом месте мне надо найти эту запись при помощи другой таблицы (table2.SetKey ... table2.GotoKey). После SetKey надо скопировать данные в ключевые поля из запомненного буфера (buf). Т.е., как узнать адрес буфера ЭТОЙ записи для поиска (по аналогии с ActiveBuffer)?
Стандартные методы работы со значениями полей (в т.ч. ключевых) не подходят, т.к. пишу универсальную программу для любых, заранее неизвестных, структур БД.
Думаю, вопрос трудный, но какая-то надежда на помощь всё же есть.
Спасибо.


 
Соловьев ©   (2003-06-20 11:58) [1]


> Стандартные методы работы со значениями полей (в т.ч. ключевых)
> не подходят, т.к. пишу универсальную программу для любых,
> заранее неизвестных, структур БД.

почему не подходят?


 
Vlad2   (2003-06-20 12:22) [2]

> почему не подходят?

Например, такая ситуация. Выбрано несколько записей БД в таблицу. В них (во всех, или отмеченных) надо изменить значение ключевого поля. Понятно, что если идти в цикле по записям этой таблицы, изменяя значение этого поля, могут быть пропуски, т.к. записи будут перемещаться по таблице по мере редакции ключевого поля. Выход: запомнить первоначальное состояние таблицы и каждый раз искать в меняющейся таблицы нужную (неизменённую) запись. Вопрос лишь в быстром поиске.
Что, в каком виде и проще я должен запомнить, не зная структуры таблицы?
Конечно, можно сбросить первоначальное состояние во временную базу (например, при помощи BatchMove), но быстрее всё-таки - по адресам.


 
Соловьев ©   (2003-06-20 12:28) [3]


> надо изменить значение ключевого поля

а зачем править ключевое поле? не боишся траблов?


 
Vlad2   (2003-06-20 12:46) [4]

> а зачем править ключевое поле?

А хочу :)

> не боишся траблов?

Пока беспокойства по этому поводу не было. Почему не могу изменить "Вася1" на "Вася2"?


 
Соловьев ©   (2003-06-20 12:49) [5]


> Пока беспокойства по этому поводу не было

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


 
Vlad2   (2003-06-20 13:01) [6]

Уважаемому Соловьеву:
Трудно не согласиться. Изменение ключевого поля на совести меняющего, опасности этого действия ему известны, но он всё-таки хочет его изменить.


 
MsGuns ©   (2003-06-20 13:23) [7]

А мне вот непонятно, почему всю эту байду с ключами надо реализовывать "на таблице" ? Что, запросы не возможны по религиозным соображениям ? Кстати, перед Update во избежание конфликта ключей неплохо давать Select по новым значениям ключей.

И будет вполне универсально ;))


 
Vlad2   (2003-06-20 13:43) [8]

Уважаемый MsGuns,
ключи мне надо редактировать в TQuery. Буду благодарен, если Вы приведёте пример запроса в ситуации, когда в гриде отмечено (SelectedRows) несколько записей, в которых нужно изменить поля.



Страницы: 1 вся ветка

Текущий архив: 2003.07.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
1-44764
INCOGNITO
2003-07-02 00:43
2003.07.14
ReadOnly Files


14-44856
Danilka
2003-06-24 13:26
2003.07.14
Англицкая пресса про гоблиновский переводы :))


8-44767
JC
2003-03-22 01:38
2003.07.14
Engine


3-44611
Igorexa
2003-06-21 05:31
2003.07.14
Навигация в ADO


3-44573
corte ™
2003-06-20 09:57
2003.07.14
Как подключится к оракле без установки родного клиента