Где-нибудь при закрытии главной формы выполните нижеследующие куски кода:
Для Delphi 3: Table.FlushBuffers при открытой таблице.Наверх к содержанию
Для прочих: Table.Open; Check(dbiSaveChanges(Table.Handle)); Table.Close; Чтобы сбросить кэш, можно еще в после этого сделать asm mov ah, $0D int $21 end;
Самый простой метод -- воспользоваться функцией PackTable из rxLib. В версии 2.32 и, наверное, раньше, есть ошибка в процедуре PackTable: измените кусок:
with tblDesc do begin { ... } bPack := true; { добавьте эту строчку для исправления ошибки и } { перекомпилируйте библиотеку } end; (JB): Для перегенерации индексов: Table1.Exclusive := True; Table1.Open; Check(dbiRegenIndexes(Table1.Handle);Наверх к содержанию
Во-первых, должно быть RequestLive := True; во-вторых, чтобы запрос был
редактируемым, он должен удовлетворять требованиям, изложенным в хелпе при
поиске по "live result sets"
Наверх к содержанию
Для DBD 5.0 в файл c:\windows\pdoxwin.ini вставить в секцию
[Properties] SystemFont=Arial CyrЕсли файла не существует, то его надо создать, если секции не существует, то ее надо создать.
В Database Desktop поставьте правильный Language Driver у таблицы, например,
Pdox ANSI Cyrr.
Наверх к содержанию
Я переписал готовую программу на машину заказчика, а она там не
запускается -- говорит "Error initializing database engine". Что делать?
Ответ:
Прочитать X:\DELPHI\DOC\deploy.txt.
Наверх к содержанию
user/password@2:
Это так для Oracle SQL Plus, и более других его утилит. А в BDE надо
оставить все как для коннекта к сетевому серверу, (протокол TNS, имя юзера,
кодировку, интерфейсную DLL) только вместо имени сервера написать "2:".
Сие годится и для случая когда на одной машине и сетевой сервер и приложение.
Наверх к содержанию
Ставьте Interbase в каталог с путем, соответствующим DOS-овским
соглашениям (8:3).
Наверх к содержанию
Постарайтесь изменить логику приложения так, чтобы таких запросов не
возникало. Обычно подобные вещи свидетельствуют о несколько неверной
архитектуре приложения.
Наверх к содержанию
procedure TForm1.CreateMyTable(NameFile: string); begin with Table1 do begin Active := False; DatabaseName := ''; TableName := NameFile; TableType := ttDefault; with FieldDefs do begin Clear; Add('EmpNo', ftInteger, 0, False); Add('LastName', ftString, 20, False); Add('FirstName', ftString, 15, False); Add('PhoneExt', ftString, 4, False); Add('HireDate', ftDateTime, 0, False); Add('Salary', ftFloat, 0, False); end; with IndexDefs do begin Clear; Add('', 'EmpNo', [ixPrimary, ixUnique]); Add('ByName', 'LastName;FirstName', [ixCaseInsensitive]); end; CreateTable; Free; end; end;Наверх к содержанию