ЧАСТНОЕ ФОТО
на главную подписаться на рассылку сайта сделать стартовой
WEB-БИБЛИОТЕКА
Статьи на сайте

DELPHI

HTML

WINAPI

БЕЗОПАСНОСТЬ

JAVA

CLIPART

FAQ по Delphi

Неофициальный F.A.Q. эхо-конференции RU.DELPHI

Выборочный FAQ по некоторым интересным вопросам. Часть 1

Выборочный FAQ по некоторым интересным вопросам. Часть 2

FAQ: от Turbo/Borland Pascal к Delphi

 Разное
На главную
Написать письмо
Подписаться на рассылку
Cделать стартовой
ОБРАТНАЯ СВЯЗЬ

Для просмотра сайта рекомендуется :
-Разрешение : 800*600
-Броузер : Internet Explorer
-Для более эффективного
просмотра нажмите F11.

Выборочный FAQ по некоторым интересным вопросам. Часть 1

Содержание

*После работы программы не сохраняются изменения в базе Paradox. Что делать?
*Как мне упаковать Paradox или DBF таблицу?
*Почему при добавлении/изменении записей в некоторых запросах возникает ошибка Cannot modify a read-only dataset?
*Database Desktop показывает содержимое таблиц шрифтом без русских букв. Что делать?
*Hе получается вставить в таблицу записи со строками на русском языке -- некоторые буквы меняются на другие -- что делать?
*Я переписал готовую программу на машину заказчика, а она там не запускается -- говорит "Error initializing database engine". Что делать?
*Помню еще один хороший частый вопрос про коннект к Personal Oracle, но не помню ответа на него... Hапомните?
*Hе получается открыть таблицу, созданную в InterBase с DEFAULT CHARACTER SET WIN1251. Оно говорит, что "WIN1251 undefined".
*У меня в программе происходит очень большой запрос -- в районе нескольких тысяч или десятков тысяч записей. Соответственно большой сетевой трафик, программа тормозит и так далее. Можно ли как-нибудь оптимизировать это все?
*Как создать таблицу базы данных, не используя Database Desktop?
*Подскажите хорошую литературу по базам данных.



Вопрос:
После работы программы не сохраняются изменения в базе Paradox. Что делать?

Ответ:

Где-нибудь при закрытии главной формы выполните нижеследующие куски кода:

Для Delphi 3: 
  Table.FlushBuffers при открытой таблице.
Для прочих: Table.Open; Check(dbiSaveChanges(Table.Handle)); Table.Close; Чтобы сбросить кэш, можно еще в после этого сделать asm mov ah, $0D int $21 end; Наверх к содержанию

Вопрос:
Как мне упаковать Paradox или DBF таблицу?

Ответ:

Самый простой метод -- воспользоваться функцией PackTable из rxLib. В версии 2.32 и, наверное, раньше, есть ошибка в процедуре PackTable: измените кусок:

with tblDesc do begin
  { ... }
  bPack := true; { добавьте эту строчку для исправления ошибки и }
                 { перекомпилируйте библиотеку }
end;

(JB): Для перегенерации индексов:
  Table1.Exclusive := True;
  Table1.Open;
  Check(dbiRegenIndexes(Table1.Handle);


Наверх к содержанию  

Вопрос:
Почему при добавлении/изменении записей в некоторых запросах возникает ошибка Cannot modify a read-only dataset?

Ответ:

Во-первых, должно быть RequestLive := True; во-вторых, чтобы запрос был редактируемым, он должен удовлетворять требованиям, изложенным в хелпе при поиске по "live result sets"

Наверх к содержанию


Вопрос:
Database Desktop показывает содержимое таблиц шрифтом без русских букв. Что делать?

Ответ:

Для DBD 5.0 в файл c:\windows\pdoxwin.ini вставить в секцию

[Properties]
SystemFont=Arial Cyr
  • Если файла не существует, то его надо создать, если секции не существует, то ее надо создать.
    Для DBD 7.0 нужно испpавить pеестp: ключ
    HKCU\Software\Borland\DBD\7.0\Preferences\Properties\SystemFont="Arial Cyr"

Наверх к содержанию


Вопрос:
Hе получается вставить в таблицу записи со строками на русском языке -- некоторые буквы меняются на другие -- что делать?

Ответ:

В Database Desktop поставьте правильный Language Driver у таблицы, например, Pdox ANSI Cyrr.

Наверх к содержанию


Вопрос:

Я переписал готовую программу на машину заказчика, а она там не запускается -- говорит "Error initializing database engine". Что делать?

Ответ:
Прочитать X:\DELPHI\DOC\deploy.txt.

Наверх к содержанию


Вопрос:
Помню еще один хороший частый вопрос про коннект к Personal Oracle, но не помню ответа на него... Hапомните?

Ответ:

user/password@2:
Это так для Oracle SQL Plus, и более других его утилит. А в BDE надо оставить все как для коннекта к сетевому серверу, (протокол TNS, имя юзера, кодировку, интерфейсную DLL) только вместо имени сервера написать "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;


Наверх к содержанию  

Вопрос:
Подскажите хорошую литературу по базам данных.

Ответ:
1. Мартин Грубер "Понимание SQL" (highly recommended)
2. Мартин Грубер "SQL: справочное руководство" (recommended)

Наверх к содержанию


-------------------------------------------------------------------
Идеальный автосерфинг
-------------------------------------------------------------------
Hosted by uCoz