Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];

Вниз

Указатель на буфер записи базы данных после 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-44634
Kpax
2003-07-02 09:57
2003.07.14
TPageControl и кнопка видимая на всех TTabSheet.


3-44579
www
2003-06-20 15:09
2003.07.14
Переиндексация


11-44623
romych
2002-11-07 23:42
2003.07.14
С самого начала


3-44610
nv-vetal
2003-06-21 14:40
2003.07.14
MySQL for Windows (98 or NT or XP).Как поменять default ...


6-44783
altarasjuk
2003-05-07 14:04
2003.07.14
peer-to-peer чат.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский