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

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

Заблокирована таблица FOXа после ее создания/заполнения [D6, dBase, FoxPro]


Str_alex ©   (2004-03-12 11:32:00) 

1. Создаю таблицу FOXа.
...
Query1.SQL.Add('create table tabl1 (n numeric(2,0),f character (10));
Query1.ExecSQL; ...

и т.д
2. Заполняю ее.
...
Query1.SQL.Add('insert into tabl1 values(:n,:f)');
цикл...

  Query1.ParamByName('n').AsInteger:=i;
  Query1.ParamByName('n').AsString:=PEREMENNAYA;
  Query1.ExecSQL;

конец цикла

И пока прога не закрыта, эта таблица заблокированна :-(
А пользоваться этой таблицей должны другие проги.

Что делать? (С) Чернышевский :-)


menart   (2004-03-12 12:27:00) [1]

под рукой нет делфей поставь в уровне доступа, ShareNotDeny, или около таго


Str_alex   (2004-03-12 11:50:00) [2]

Вот оно и есть. А как отключиться от этой таблицы?

Смысл: конвертер данных между новым оборудованием и старым ПО.
Старое ПО формирует данные в формате ФОКСа, потом конвертер
перегоняет в формат понимаемый оборудованием.

Таблица и должна создаваться/заполняться в ексклюзиве.
Но после ее заполнения "оборудование" должно "скушать"
сформированныю таблицу. Вот тут-то и облом-с.

Использую BDE.
procedure TfrmMain.CreateAllias;
{создание аллиасов}
begin
  with Session do
  begin
     ConfigMode := cmSession;
  try
     AddStandardAlias('My_Allias'',KatalogBD,'FOXPRO');
     finally
        ConfigMode := cmAll;
     end;
  end;
  with dbMyBD do
  begin
     databasename:='MyBD';
     LoginPrompt := False;
     Params.Values['PATH'] :=KatalogBD;
     DriverName:='Microsoft FoxPro Driver (*.dbf)';
     AliasName:='My_Allias';
  end;
end;

Дальше работаю так:

  q1.Close;
  q1.ParamCheck:=true;
  q1.SQL.Clear;
  q1.SQL.Add('insert into "'+KatalogBD+'\tabl1" ');
  ...
  q1.ExecSQL;


Andrey V.   (2004-03-12 11:36:00) [3]

Exclusive ?


Наверх

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