Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.042 c
1-1092221773
Alek
2004-08-11 14:56
2004.08.29
Как сменить цвет прогрес бара?


1-1092298514
Vss
2004-08-12 12:15
2004.08.29
Найти курсор не кликая


3-1091783291
Fynjy
2004-08-06 13:08
2004.08.29
Редактируемый запрос


1-1092581140
Белый волк
2004-08-15 18:45
2004.08.29
Допустимые символы


3-1091559812
U96
2004-08-03 23:03
2004.08.29
Вопрос по DBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский