![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заблокирована таблица 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 ?