Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.11.2006, 14:25   #1
Deicider
 
Регистрация: 22.11.2006
Сообщений: 3
По умолчанию поиск и замена в неиндексированной таблице Dbase Iv

Есть такой вопрос - хотя он простой - берется общая таблица с материалом, методом копирования в таблицу типа temp1 выбирается из нее определенные поля с материалом и его количеством. Далее на отдельно заполняемую смету я выбираю уже из таблицы temp1 в другую таблицу (к примеру temp2) материал в определенном количестве. Что требуется - нужно из temp1 по выбранному пункту отнять количество материла выбираемое для temp2 и при этом отобразить сколько осталось в temp1 (соотвественно тип поля с количеством float). Это не сложно, но у меня не получается установить правельно курсос на выбираемое поле что бы сделать вычисление и сохранение.
Само собой если человек из temp2 удаляет какое нибудь поле, нужно произвести аналогичную операцию, только сложить (типа UNDO )
Deicider вне форума Ответить с цитированием
Старый 06.12.2006, 21:45   #2
nova-alex
Пользователь
 
Регистрация: 06.11.2006
Сообщений: 51
По умолчанию

Немного отступления.
К примеру у меня есть база с кучей записей. Я постоянно добавляю записи, изменяю их. И вот нужно чтобы выбрать запись где-то всередине базы, изменить его, взять другую запись и ее тоже изменить, а потом курсор установить на ту, что изменял до нее. Для этой цели мне необходимо поле в базе, в котором были-бы для каждой записи УНИКАЛЬНОЕ значение, т.е. в других записях такого значения нет.
Поэтому я присваиваю переменной значение из этого поля для этой записи. Потом делаю изменения этой записи, перехожу к другой и т.д.
И для воврата (установки курсора) использую ф-ю Locate, напрмер:
Table.Locate('Npol', npolya, [loCaseInsensitive])
где 'Npol' - имя поля с уникальными значениями,
npolya-переменная, в которую заранее сохранили уникальное значение
[loCaseInsensitive]- параметр, в данном примере означает, что на регистр не учитывается.
По Locate есть описание в хелпе.
Из сказаннго следует, что необходимо наличие в базе поле с уникальными значениями, на его роль подходит поле с автоинкремнтом (для Paradox-a),а в dBase такого нет, его придется организовывать вручную, т.е. иметь в наличии поле типа Number и перед каждым Append или Insert вычислять максимальное в нем значение и при внесении в созданную запись данных записывать в это поле значение на 1 больше.
nova-alex вне форума Ответить с цитированием
Старый 07.12.2006, 23:18   #3
Nemon
Армия Рассейская
Форумчанин
 
Аватар для Nemon
 
Регистрация: 06.12.2006
Сообщений: 175
По умолчанию

to nova-alex а не проще ли Bookmarks использовать?
Сделаем ночь ярче!!! - Ракетные войска стратегического назначения
Центральный клуб туристов РВСН
Nemon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текст. ред. Поиск и замена Славный Общие вопросы Delphi 4 25.06.2008 20:09
Поиск в таблице БД фЁдОр БД в Delphi 13 14.11.2007 10:05
Поиск и замена файлов steo_ler Помощь студентам 5 08.10.2007 15:01
Поиск в таблице Voffka БД в Delphi 1 08.05.2007 01:16