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

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

Работа с временной или виртуальной таблицей? [D6, ADO]


vinni2000 ©   (2005-10-18 14:20:00) 

Я подключаюсь к базе данных Access через компоненты ADO.
Какими методами можно создать на клиенте виртуальную (временную) таблицу, в которую необходимо переписать часть данных из постоянной таблицы на сервере, произвести некоторые действия (например, update) и опять вернуть в постоянную таблицу?


Silver...   (2005-10-18 17:50:00) [1]


> 3. Произвести действия над серверной таблицей без записей
> nom=130, и в зависимости от полученных результатов вернуть
> данные из временной таблице или нет


для этого необязательно удалять данные

SELECT * FROM MyTable WHERE nom <> 130

даст тебе данные без "nom=130" в таком духе делай все что угодно БЕЗ УДАЛЕНИЯ

UPDATE MyTable SET
Field1 = ...
Field2 = ...
WHERE nom <> 130


а вообше совет неплохой:

> Курдль ©   (18.10.05 14:59) [9]


msguns   (2005-10-18 17:38:00) [2]

>Мне нужно, например:
>1. из серверной таблицы вырезать все записи, у которых nom=130 во >временную таблицу;
>2. после чего удалить из сервера эти записи;

Делается одним тривиальным запросом.

>3. Произвести действия над серверной таблицей без записей nom=130

Выполняется с помощью простого TADODataSet(TADOQuery)

>и в зависимости от полученных результатов вернуть данные из временной таблице или нет

Решается явным управлением транзакцией.

Книги, хэлпы, статьи и читать, читать, читать !!!


Danilka   (2005-10-18 17:24:00) [3]

vinni2000 ©   (18.10.05 16:40)
> Danilka

И что ты посоветуешь?


Не удалять с сервера то, что не должно быть удалено.
А вообще, тебе уже посоветовали книжки почитать. Почитай. Возможно тебя спасут клиентский курсор + блокировка ltBatchOptimistic


vinni2000   (2005-10-18 16:40:00) [4]

> Danilka

И что ты посоветуешь?


alex_***   (2005-10-18 16:26:00) [5]

ну а что взять с Access....


Danilka   (2005-10-18 16:02:00) [6]

vinni2000 ©   (18.10.05 14:38)
Мне нужно, например:
1. из серверной таблицы вырезать все записи, у которых nom=130 во временную таблицу;
2. после чего удалить из сервера эти записи;
3. Произвести действия над серверной таблицей без записей nom=130, и в зависимости от полученных результатов вернуть данные из временной таблице или нет


Ага. А после п.2 клиентский комп перезагружается, все записи nom=130 теряются, которые, как назло, очень-очень важны, и Винни с треском и свистом увольняют.


vinni2000   (2005-10-18 15:27:00) [7]

ну, спасибо за помощь =)


Курдль   (2005-10-18 14:59:00) [8]


> vinni2000 ©   (18.10.05 14:57) [8]
> Для этого и спрашиваю, чтобы узнать больше!


Для этого сначала читают книги. Нельзя же совсем без базовых знаний приниматься за любое дело?..


vinni2000   (2005-10-18 14:57:00) [9]

> Курдль ©

Для этого и спрашиваю, чтобы узнать больше!


Курдль   (2005-10-18 14:53:00) [10]


> vinni2000 ©   (18.10.05 14:48) [5]


Вы бы хоть ознакомились с общей терминологией баз данных. прежде чем вопрос задавать :(


Stanislav   (2005-10-18 14:50:00) [11]

vinni2000 ©   (18.10.05 14:38) [3]

1. Почему бы не завести на сервере таблицу для этих целей.
2. Я думаю это можно решить с помощью запросов.


vinni2000   (2005-10-18 14:48:00) [12]

Данные брать из таблицы БД, а нужно поместить часть данных из таблицы БД во "временную таблицу".
Вот я и спрашиваю, как эту временную таблицу сделать у клиента?


Курдль   (2005-10-18 14:41:00) [13]

Мы говорим на разных языках.

Думаю, нгадо разобраться "по-понятиям"

1. Таблица БД
2. Временная таблица СУБД
3. Набор данных клиента

Что именно в каком контексте Вы имеете в виду?


vinni2000   (2005-10-18 14:38:00) [14]

Мне нужно, например:
1. из серверной таблицы вырезать все записи, у которых nom=130 во временную таблицу;
2. после чего удалить из сервера эти записи;
3. Произвести действия над серверной таблицей без записей nom=130, и в зависимости от полученных результатов вернуть данные из временной таблице или нет


Megabyte   (2005-10-18 14:27:00) [15]

А просто сделать запрос, проапдейтить нужные поля нельзя?


Курдль   (2005-10-18 14:26:00) [16]

Достаточно компонента ADOTable, но лучше ADODataSet  :)


Наверх

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