Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.29;
Скачать: CL | DM;

Вниз

ADO, обновление данных таблицы (самой таблицы)   Найти похожие ветки 

 
Alexey A   (2004-08-05 10:53) [0]

Здавствуйте!

Инструменты: Delphi 6, База Access 2000 (*.mdb)

Есть задача, не знаю, как реализовать:
есть рабочая база "work.mdb", в ней таблица "value",
есть обновленная база "up.mdb", в ней таблица "value"

Какими средствами обновить данные таблицы "value" в рабочей базе из "up.mdb"..

Я начинающий... можно подробней?

Заранее спасибо!


 
46_55_41_44 ©   (2004-08-05 10:58) [1]

Вопрос...
"up.mdb"."value" = "work.mdb"."value" + (Новые данные)?
просто ответ зависит от этого...
Можно конечно написать общий случай... Но не охота...
Чем быстрее ответишь, тем быстрее подскажу.. ))


 
Alexey A   (2004-08-05 11:02) [2]

"up.mdb"."value" = "work.mdb"."value"


 
sniknik ©   (2004-08-05 11:20) [3]

> Какими средствами обновить данные таблицы "value" в рабочей базе из "up.mdb"..
лучше всего средствами самого Access (jet), таким запросом к примеру
INSERT INTO [value] FROM [value] IN "up.mdb" WHERE .....(условие отбора новых)
при подключении к work.mdb

> Я начинающий... можно подробней?
книжки/хелпа в этом помогают.


 
Alexey A   (2004-08-05 11:39) [4]

sniknik ©, не пойдет так...

"work.mdb" имеет свой Alias в ODBC "WORK",
"update.mdb" имеет свой Alias в ODBC "UP",

на каждую базу свой "Connect".. каким образом их связать, чтобы работать как с единым целым и манипулировать таблицами (или их записями)...


 
sniknik ©   (2004-08-05 11:46) [5]

> sniknik ©, не пойдет так...
и тем не менее, это лучшее, простое и быстрое решение.

> "work.mdb" имеет свой Alias в ODBC "WORK",
> "update.mdb" имеет свой Alias в ODBC "UP",
убери. BDE выкини, не та задача.
конект сделай один с помощью ADO, и манипулируй там таблицами с помощью SQL, по другому с целой таблицей не получится, только позаписьно.

> на каждую базу свой "Connect"..
хочеш чтобы работало быстро? не делай так.


 
Alexey A   (2004-08-05 11:51) [6]

Я и использую ADO.

Хорошо.. а как же манипулировать таблицами базе не используя Alias в ODBC к базе?


 
sniknik ©   (2004-08-05 12:13) [7]

> Я и использую ADO.
обычно с этого и начинают вопрос, чтобы без недоразумений, описание используемых средств.

> не используя Alias в ODBC к базе?
строка конекта типа этой
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\work.mdb;Persist Security Info=False


 
Alexey A   (2004-08-05 12:26) [8]

sniknik ©, спасибо! Я действительно до конца не разобрался в предложенном тобой примере :)

Решил вопрос:

- ADOConnect к "work.mdb" (т.к. логин, пароль на ней)
- ADOCommand:
SELECT * INTO value FROM [Value] in  "путь/update.mdb"

но осталось решить вопрос с тем, что если такая таблица уже есть в "work.mdb", Delphi ругается.. Удалить наверное ее перед этим запросом?!


 
sniknik ©   (2004-08-05 12:39) [9]

> Удалить наверное ее перед этим запросом?!
или очистить ее, и пользоваться INSERT INTO ...
что тебе по задаче нужно, если там структура/имена различаются и т.д. индексов к примеру SELECT * INTO не переносит. а если они нужны? и зачем заменять таблицу? можно же только добавления вставлять.


 
Energet   (2004-08-05 14:37) [10]

Если рабочая база начинает отличаться только с определенного момента и задача в том что их надо синхронизировать (если я правильно понял) то делаешь например так:
1) выбираешь значение Table Identify Column у необновленной базы
2) И начинаешь копирование с этого значения в обновленной базе
все это можно сделать на одном SQL в виде одного сложного запроса. А каждый раз делать Инсерт Инто имхо не стоит эту команду обычно юзают для составления временных таблиц которые потом успешно дропают, тем более , как правильно заметил sniknik, она не перенесент тебе ндексов + все связи порвутся.
З.Ы. Загляни на www.sql.ru  там есть очень большой форум по дельфи применительно к базам данных.



Страницы: 1 вся ветка

Текущий архив: 2004.08.29;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
14-1092303585
SiJack
2004-08-12 13:39
2004.08.29
Незаметили что доллар как то расти начал?


14-1092300234
SSSSS
2004-08-12 12:43
2004.08.29
Люди! Где взять лицензионную 5-ю Дельфу?


14-1091921850
Soft
2004-08-08 03:37
2004.08.29
Что в вашем понимании представляет собой распределенная система.


1-1092231625
andrey__
2004-08-11 17:40
2004.08.29
Организация очереди


3-1091613981
Koala
2004-08-04 14:06
2004.08.29
Вопрос о пользователях в базе