Телефон: +7 (926) 245-03-63

Замена пароля для таблицы Paradox из приложения

Следующая статья: Паскалевский эквивалент StrTok.

Пример:

var
db: TDatabase;
Desc: CRTblDesc;
begin
  db:=Table1.OpenDatabase;
  FillChar(Desc, SizeOf(Desc), #0);
  StrCopy(Desc.szTblName,PChar(Table1.TableName));
  StrCopy(Desc.szTblType, szParadox);
  StrCopy(Desc.szpassword,'password');
  Desc.bProtected:=TRUE;
  Check(DbiDoRestructure(db.Handle, 1, @Desc, nil, nil, nil, FALSE));
end;

Чтение OLE из BLOB-поля Paradox Говорят, что выполнить чтение OLE из BLOB-поля Paradox невозможно. Как поступать в данном случае?
Предлагаемое решение:

procedure TForm1.Button1Click(Sender: TObject);
var b: TBlobStream;
begin
  try
    b:=TBlobStream.Create((Table1.FieldByName('OLE') as TBlobField),bmRead);
    OLEContainer1.LoadFromStream(b);
  finally
    b.free;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var b: TBlobStream;
begin
  try
    Table1.Insert;
    b:=TBlobstream.Create((Table1.FieldByName('OLE') as TBlobField),bmReadWrite);
    OLEContainer1.SaveToStream(b); Table1.Post;
  finally
    b.free;
  end;
end;

Примечание: Предварительно на форму помещаем OleContainer со страницы SYSTEM палитры компонентов.