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

Вниз

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

Наверх




Память: 0.5 MB
Время: 0.113 c
3-1125384126
Киря
2005-08-30 10:42
2005.10.23
Ошибка Fast Report


2-1127661167
тринитротолуол
2005-09-25 19:12
2005.10.23
Как сделать так чтобы моя форма была всегда поверх всех окон?


14-1128111310
Piter
2005-10-01 00:15
2005.10.23
Жесткий диск перешел в режим PIO


11-1109010924
deniss
2005-02-21 21:35
2005.10.23
не могу найти стрелочный индикатор , сам пока не напишу :(


1-1128285792
step1k
2005-10-03 00:43
2005.10.23
вопрос про динамику





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский