Вопросы программирования баз данных на Borland DelphiПосле работы программы не сохраняются изменения в базе Paradox. Что делать? Как мне упаковать Paradox или DBF таблицу? Database Desktop показывает содержимое таблиц шрифтом без русских букв. Что делать? Как создать таблицу базы данных, не используя Database Desktop?
Подскажите хорошую литературу по базам данных. Вопрос: Где-нибудь при закрытии главной формы выполните нижеследующие
куски кода: Для 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" Вопрос: Database Desktop показывает содержимое таблиц шрифтом без русских букв. Что делать? Ответ: Для DBD 5.0 в файл c:\windows\pdoxwin.ini вставить в секцию [Properties] SystemFont=Arial Cyr
Вопрос: В Database Desktop поставьте правильный Language Driver у таблицы,
например, Pdox ANSI Cyrr. Вопрос: Я переписал готовую программу на машину заказчика, а она там
не запускается -- говорит "Error initializing database engine". Что делать?
Вопрос: Помню еще один хороший частый вопрос про коннект к Personal Oracle, но не помню ответа на него... Hапомните? Ответ: user/password@2: Вопрос: Hе получается открыть таблицу, созданную в InterBase с DEFAULT CHARACTER SET WIN1251. Оно говорит, что "WIN1251 undefined". Ответ: Ставьте Interbase в каталог с путем, соответствующим DOS-овским
соглашениям (8:3). Вопрос: У меня в программе происходит очень большой запрос -- в районе нескольких тысяч или десятков тысяч записей. Соответственно большой сетевой трафик, программа тормозит и так далее. Можно ли как-нибудь оптимизировать это все? Ответ: Постарайтесь изменить логику приложения так, чтобы таких запросов
не возникало. Обычно подобные вещи свидетельствуют о несколько неверной архитектуре
приложения. Вопрос: Как создать таблицу базы данных, не используя Database Desktop? Ответ: Положите компонент TTable на форму и попробуйте указанную ниже процедуру. 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;
Вопрос:
|
| Delphi32 | Delphi32 - Всё о Дельфи. WWW.delphi32.narod.ru |