Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

вставка Id поля вместо значения [D7, Microsoft Access]


Страницы:   1 2

Vova ©   (2004-07-05 10:03:00) 

Подскажите как организовать запись в базу даних , єсть четире таблици ( Microsoft Access) , нужно програмним путєм записать в основную таблиу значениє Id полей трьох таблиц (визуальной аналог DBLookupComboBox), причем єсли такова значениє ненайдено в таблице то добавить новиє поле с етим значениєм да записать Id етова поля в основною талицу. Нужно бистродействующій алгоритм, я пробивал писать но очень долго работаєт:
1.Сначала через Table1.Locate() делал поиск в таблице 1 єсли ничево ненашло добавлял значениє.
2.потом опять  Table1.Locate() опредилял значениє Id и записивал єто Id в основною таблицу, и так проход делаєтса по 3 таблицам, подскажите как упрастит ето!!!!!!!!!!!11


Курдль   (2004-07-07 10:40:00) [21]


> Соловьев ©   (07.07.04 10:35) [9]
>
> > как понимать скоко у.е.? (для непродвинутих)
>
> если лень самому, то тебе напишут за мани :)


как понимать (для непродвинутих)"за мани"?
(Надеюсь, что ветку прибьют модераторы) :)


Соловьев   (2004-07-07 10:35:00) [22]


> как понимать скоко у.е.? (для непродвинутих)

если лень самому, то тебе напишут за мани :)

и кстати, http://www.delphimaster.ru/cgi-bin/forum.pl?id=1089179265&n=1&web=1


vova   (2004-07-07 10:33:00) [23]

как понимать скоко у.е.? (для непродвинутих)


Соловьев   (2004-07-07 10:02:00) [24]


> Подкинте пример кода, я использую компонети ADO для доступу
> к базе!!!!

скоко у.е.?


vova   (2004-07-07 09:44:00) [25]

задача изменилась чучуть, тепер ето не импорт, server принимаєт от клиєнта структуру даних
dani:record;
host:string[50];
user:string[20];
ip:string[16];
....
end;
на server нужно записат в log.mdb єту структуру в четире таблици
1 таблица пишет ID host,id user, id Ip,........
2 таблица два поля id и host
3 таблица два поля id и user
4 таблица два поля id и ip
Ножно бистро записать запись dani в таблицу причом єсли в какой нибуть из таблиц 2,3,4 нет значениє то добавить и записать id етого поля в таблицу 1.
Подкинте пример кода, я использую компонети ADO для доступу к базе!!!!


Курдль   (2004-07-05 11:25:00) [26]


> Vova   (05.07.04 11:01) [3]
> трудно обяснит но ето именно импорт , так што я понял надо
> делать как делал!!! Буду рад услишат єщо совети!!!!!


Если Вы уверены, что в импортируемых данных нет повторяющихся значений, то можно искать не с помощью locate в наборе данных, имеющимся на клиенте, а запросом к СУБД.

Помню как-то давно была нужда импорта юридических и физических лиц из файла Excel.

Name  |Address |   Passport  |      Account
---------------------------------------------------
Smith | Moscow | 23 04 56578 | 40702810500000000123


В базе была таблица субъектов, а с ней связаны "многие-к-одному" таблицы паспортов, адресов и счетов.
Тогда в цикле исследовалась каждая запись импортируемого файла на предмет нахождения Name в БД простым запросом
select SBJ_ID from SUBJECTS where SBJ_NAME = :SBJ_NAME
Если субъект находился по имени, то в подчиненные таблицы добавлялся SBJ_ID, если не находился - добавлялась запись в таблицу SUBJECTS и уже новое значение SBJ_ID заносилось в подчиненные таблицы.
Что парадоксально - такой подход работал быстрее, чем locate.


Erik1   (2004-07-05 11:09:00) [27]

Запоминай в переменую и увеличивай ее на еденицу при каждом добавлении записи.


Vova   (2004-07-05 11:01:00) [28]

трудно обяснит но ето именно импорт , так што я понял надо делать как делал!!! Буду рад услишат єщо совети!!!!!


Курдль   (2004-07-05 10:16:00) [29]

А с какой целью вся эта суета?
Если Lookup, то оно и само все расставит, как надо.
Тут наверное импорт данных из внешнего файла (тогда быстрее, чем locate сделать будет трудно).
Однако, немного задалбывает додумывать за автора, "что же он хотел спросить?"


Соловьев   (2004-07-05 10:10:00) [30]

Мастер-детайл?
TADOTable.MasterSource+F1


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо