![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi:Вывести в DBLookupComboBox нужною строку столбца [D7]
Lutdan © (2011-05-03 00:55:00)НА форме кнопки ДОБАВИТЬ, УДАЛИТЬ, ИЗМЕНИТЬ, СОХРАНИТЬ. При добавлении всё устраивает т.е. можно из выпадающего списка(Таблица1) выбрать "Единицу измерения массы" (кг,т) и добавить в другую таблицу (Таблица2). Но при изменении в Таблице 2 записи хотелось бы, чтоб в DBLookupComboBox стояла нужная единица. 2 эти таблицы не связаны между собой по ID, просто от туда(Таблица1) текст добавляется в Таблицу2. Пробовал реализовать так при нажатии на кнопку ИЗМЕНИТЬ:
DataModule4.EDVES1.Locate('Naimenovanie',sDBEdit10.Text,[]);
EDVES1 - Таблица1;
sDBEdit10.Text - Единица измерения в Таблице 2.
Но такой способ не работает или у меня знаний не хватает.
P/S/ Нужно это, чтобы пользователь при изменении данных не сохранил пустоту или неправильную единицу.
Ещё вопросик
Хотелось бы в программе сделать резервную копию БД, ну и потом с возможностью восстановить. Как это можно реализовать?
Я вот думал скопировать просто MDB файл в заранее созданную папку и в имени ещё прибавить дату. Но вот как это реализовать затрудняюсь. Спасибо, тем кто поможет!
Amoeba_ (2011-05-06 01:40:00) [1]
> Lutdan © (06.05.11 00:47) [13]
>
> Спасибо .. будем искать, как копирнуть файл.
>
А чего тут искать?
Есть ф-ии CopyFile и CopyFileEx
См. справку по этим API ф-иям
Lutdan (2011-05-06 00:47:00) [2]Спасибо .. будем искать, как копирнуть файл.
Amoeba_ (2011-05-05 19:45:00) [3]
> Остался вопрос с копированием БД. Может у кого завалялся
> для примера код...
В общих чертах такой:
ADOConnection1.CloseDataSets;
ADOConnection1.Connected := False;
try
//Здесь пишем код копирования файл БД
finally
ADOConnection1.Connected := True;
//Далее здесь открываем таблицы
end;
Lutdan (2011-05-05 19:05:00) [4]MonoLife
Огромное спасибо! Всё работает как часики!!!
Остался вопрос с копированием БД. Может у кого завалялся для примера код...
MonoLife (2011-05-05 07:37:00) [5]не понятно зачем нужен s DBEdit...
// DBLookupComboBox.ListField= Таблица1.<field>
// DBLookupComboBox.KeyField= Таблица1.<field>
if dataset.Locate('Naimenovanie', sDBEdit10.Text,[loCaseInsensitive, loPartialKey]) then
DBLookupComboBox.KeyValue:=sDBEdit10.Text;
Lutdan (2011-05-05 03:41:00) [6]Попробую объяснить ещё раз:
Нужно как-то программно выбрать запись из DBLookupComboBox1 используя текст из sDBEdit10.
EDVES1 - Таблица1, где хранятся просто наименования ЕДиНИЦ ИЗМЕРЕНИЯ (КГ, т и т.д.);
sDBEdit10.Text - Единица измерения в Таблице 2.Создал этот эдит для того чтобы выбрать программно запись в DBLookupComboBox1 т.к. Таблицы не связаны .
СПАСИБО ЗА ВАШИ ОТВЕТЫ!
Lutdan (2011-05-04 23:11:00) [7]Ну закрыть базу не проблема.
Dennis I. Komarov (2011-05-04 16:24:00) [8]
> Lutdan © (03.05.11 00:55)
Ничерта не понятно...
> Я вот думал скопировать просто MDB файл
С открытой базой? Непойдеть...
Cobalt (2011-05-04 15:13:00) [9]Хмммм....
InplaceEditor?
Хотя намучаетесь потом раскладку клавиатуры переключать )))
Lutdan (2011-05-04 14:04:00) [10]OW
Просто не знаю кода, как по кнопочке копировать файл))
oldman
В DBEdit выводится текст (например, КГ) и по этому тексту я перехожу на строчку из таблицы 2 через Locate.
Возможно он и переходит на строчку, но не отображаются в DBLookupComboBox.
Или как лучше сделать, чтобы при добавлении выпадал список Единиц измерения. Ну и соответственно как при изменении выводилась ранее сохранённая Еденица измерения, но с возможностью её поменять
oldman (2011-05-03 10:31:00) [11]
> sDBEdit10.Text
Если все завязано на список из другой таблицы, зачем DBEdit???
oldman (2011-05-03 10:11:00) [12]С [] поиграй. Похоже ты ищешь 'name ', а в таблице 1 'name '
Cobalt (2011-05-03 10:07:00) [13]Для начала определись точно - как связаны эти две таблицы, каковы правила изменения этих таблиц.
Просто возьми листик и выпиши, словами опиши подробно:
Добавление, Изменение, Удаление строки в каждой таблице.
OW (2011-05-03 09:53:00) [14]
> скопировать просто MDB файл
Они копируются так же как любой файл.
> в заранее созданную папку и в имени ещё прибавить дату
Перевод даты в строку, конкатенация строк, создание папки - что конкретно не ясно?