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

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

Копирование используемого стола в поток [D7, dBase, FoxPro]


Vovka_the_Carrot1 ©   (2005-02-06 23:11:00) 

У меня есть alias dBase. На форме есть Database подконекченый к базе. Query подключонный Database. Вначале Database.Conneted:=true   Query.Active:=true
Потом меняю эти значения на false:
var
MSTREAM:TMemoryStream;
begin
Database1.Connected:=false;
Query1.Active:=false;
MSTREAM:=TMemoryStream.Create;
MSTREAM.LoadFromFile(ExtractFilePath(ParamStr(0))+'data\graduate.dbf');
В выдает EFOpenError -файл занят другим процессом.
Если сделать так
var
MSTREAM:TMemoryStream;
begin
Database1.Connected:=false;
Query1.Active:=false;
MSTREAM:=TMemoryStream.Create;
MSTREAM.LoadFromFile('файл базы расположенный в другом месте');
MSTREAM.SaveToFile(ExtractFilePath(ParamStr(0))+'data\graduate.dbf');
То все нормально заменяет и не пишет что файл занят.
Пробовал Close тоже самое
Поодскажите что мне надо сделать чтобы используемый стол копировать в поток?


Danilka   (2005-02-08 09:32:00) [1]

[3] Vovka_the_Carrot123   (07.02.05 22:04)
> Table-с анг стол

Да ну, правда что-ли? Ну ты прямо открыл мне глаза! А, например, файл, применительно к компьютеру, это такой пакет, в котором дискетка лежит, так? Или "вилка" в шахматах, это когда один игрок другому столовой вилкой в глаз тычет, так? Может имеет смысл заглянуть в англо-русский словарь, подумать какой перевод в каком контексте используется и разобраться с бардаком в голове?


sniknik   (2005-02-08 00:05:00) [2]

> Table-с анг стол
хвастаешся знаниями английского за 1й класс? (задолбили, до сих пор икается ... зэ тейбле, зэ пенсил, ...)

> так стоит false и Close делал?
гдето не стоит. либо открыто в другом месте. (есть к примеру такое "свойство" у ODBC VFP драйвера, после единого селекта не "отпускать" таблицу пока приложение не закроеш (уничтожиш коннект))

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


Vovka_the_Carrot123   (2005-02-07 22:04:00) [3]

стол? Таблица что-ли? :))>>>>>>>Table-с анг стол
Database1.Connected = false>>>>>>>.так стоит false и Close делал?


Danilka   (2005-02-07 09:41:00) [4]

брр.
Нет, вопрос вобщем-то понятный, и ответ ответ в [1] скорее всего правильный. Однако что такое стол? Таблица что-ли? :))


sniknik   (2005-02-07 01:52:00) [5]

в дельфях таблицы закрой (скорее всего), т.е. у лежащего на форме компанента должго быть Database1.Connected = false;


Наверх

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