Текущий архив: 2005.10.23;
Скачать: CL | DM;
ВнизADOTable1.LoadFromFile не сохраняет данные в БД Найти похожие ветки
← →
Angel[Saint] (2005-09-08 15:42) [0]Доброго времени суток.
у меня такая проблема... есть 2 БД аксес. подключаюсь к 1-й и выполняюADOQuery1.SQL.Add("select * from table_name where id<100");
ADOQuery1.Open;
ADOQuery1.SaveToFile(ExtractFilePath(Application.ExeName)+"~tmp.dsf");
ADOQuery1.Close
Далее подключаюсь ко 2-й БД и выполняю такой код:ADOTable1.TableName:="table_name";
ADOTable1.LoadFromFile(ExtractFilePath(Application.ExeName)+"~tmp.dsf");
ADOTable1.Close;
Вопрос: как сделать так, чтобы данные, загруженные из файла сохранялись в БД:
← →
Desdechado © (2005-09-08 15:44) [1]структура совпадает?
Ошибки выдает?
← →
Плохиш © (2005-09-08 15:52) [2]
> Angel[Saint] (08.09.05 15:42)
Вот мне интересно, кто тебе сказал, что ADOTable1.LoadFromFile должна сохранять данные в бд?
← →
Angel[Saint] (2005-09-09 07:56) [3]> Desdechado
все нормально, данные загружаются без проблем. структура одинаковая.
> Плохиш
никто... я никогда не пользовался данными методами и вот решил попробовать... при решии данной задачи ето был бы простейший вариант. но вот не знаю как должно быть... в справке, в описании данного метода не сказано сохоаняет ли он данные в Бд или нет... вот я и решил спросить тут...
возможно ли сделать чтобы данные сохранялись?
← →
Angel[Saint] (2005-09-09 08:08) [4]И еще вопрос в догонку... есть 2 ADOQuery, подключенных к разным базам. ADOQuery1 с данными, ADOQuery2 пустой. можно ли как-нибудь перекинуть данные из одного ADOQuery в другой минуя посредников, напрямую? т.е. не делая
ADOQuery1.First;
while not ADOQuery1.eof do
begin
//1. Скопировать строку в память или куда-нибуть еще
//2. Скопировать строку из памяти в ADOQuery2
ADOQuery1.Next;
end;
← →
Angel[Saint] (2005-09-09 15:19) [5]Мастера!!! ау!!!
← →
Stanislav © (2005-09-09 15:24) [6]А Зачем после загрузки ADOTable1.Close ?
← →
Angel[Saint] (2005-09-09 15:37) [7]думал что может после закрытия сохранит данные, т.к. других методов сохранения не нашел. А процедура Post не помогает
← →
Stanislav © (2005-09-09 15:59) [8]Angel[Saint] (09.09.05 08:08) [4]
Вообще-то нужно использовать SQL
Insert Into DESTTABLE (Field1,Field2)
Select Field1,Field2 from SourceTable
← →
Плохиш © (2005-09-09 16:15) [9]
> Angel[Saint] (09.09.05 07:56) [3]
> никто... я никогда не пользовался данными методами и вот
> решил попробовать... при решии данной задачи ето был бы
> простейший вариант. но вот не знаю как должно быть... в
> справке, в описании данного метода не сказано сохоаняет
> ли он данные в Бд или нет... вот я и решил спросить тут...
В справке сказано, что данные из файла загружаются в набор данных, а так же сказано, что перед этим предыдущий набор данных закрывается. А для полного понимания того, что делается, обычно открывают исходники и смотрят.
А самый простой путь Stanislav уже предложил :-)
← →
Angel[Saint] (2005-09-09 16:15) [10]> Stanislav
это я знаю... но так можно делать в том случае, если обе таблицы находяться в ОДНОЙ БД... а в моем случае таблица в разных БД
← →
Stanislav © (2005-09-09 16:19) [11]Angel[Saint] (09.09.05 16:15) [10]
1. Можно указать путь к базе прямо в запросе
2. можно подключить таблицу как связную
← →
Angel[Saint] (2005-09-09 16:19) [12]и вообще... возможно ли данные, загруженные с помощью LoadFromFile сохранить потом в нужную таблицу БД... структура таблицы и загружаемых данных одинаковая
← →
Плохиш © (2005-09-09 16:21) [13]
> Angel[Saint] (09.09.05 16:15) [10]
> > Stanislav
>
> это я знаю... но так можно делать в том случае, если обе
> таблицы находяться в ОДНОЙ БД... а в моем случае таблица
> в разных БД
Если движок не позволяет [11] п.1, то только копируя записи из одного набора данных в другой.
← →
Angel[Saint] (2005-09-09 16:22) [14]> Stanislav © (09.09.05 16:19) [11]
>1. Можно указать путь к базе прямо в запросе
как это сделать?
>2. можно подключить таблицу как связную
интересный вариант :) а можешь подсказать как программно выполнить такое?
← →
Плохиш © (2005-09-09 16:23) [15]
> Angel[Saint] (09.09.05 16:19) [12]
> и вообще... возможно ли данные, загруженные с помощью LoadFromFile
> сохранить потом в нужную таблицу БД... структура таблицы
> и загружаемых данных одинаковая
Да, используя [4]
← →
Stanislav © (2005-09-09 16:26) [16]INSERT INTO ZZ IN "D:\Documents and Settings\stas\Мои документы\db11.mdb"
SELECT DRFO1.*
FROM DRFO1;
Это 1-й вариант
← →
Angel[Saint] (2005-09-09 16:27) [17]>Плохиш © (09.09.05 16:23) [15]
мне не нравится этот вариант... слишком долго работать будет, если много записей. есть еще варианты?
← →
Stanislav © (2005-09-09 16:31) [18]А 2-й незнаю как :-( .
← →
Плохиш © (2005-09-09 16:38) [19]
> Angel[Saint] (09.09.05 16:27) [17]
http://lib.profi.net.ua/doc/info_sites/visprog/books/Delphi%20Kindom/answer.asp-IDAnswer=5113.htm
там упоминается TBatchMove
← →
Angel[Saint] (2005-09-10 14:18) [20]Спасибо за помощь. Вариант с "INSERT INTO ZZ IN "D:\Documents and Settings\stas\Мои документы\db11.mdb"" супер... жаль что раньше не знал о нем..
← →
Соловьев © (2005-09-10 14:33) [21]Да уж...
А о связке ADODataSet->TClientDataSet мы никогда не слышали?
← →
AlexWlad © (2005-09-10 15:07) [22]Плохиш © (09.09.05 16:38) [19]
там упоминается TBatchMove
Давайте не будем заниматься некрофилией (TBatchMove - BDE).
← →
Savek (2005-09-10 16:19) [23]Есть быстрый способ для копирования таблиц:
Select * into Table1 from Table2 in "с:\...\база.mdb"
Создает новую таблицу Table1 в подключенной БД
Страницы: 1 вся ветка
Текущий архив: 2005.10.23;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.054 c