Ошибка инициализации bde домашняя бухгалтерия windows 10

Корректный с бухгалтерской и юридической точки зрения документооборот. При оформлении заказа вы получаете оригинал счета-договора, счет-фактуру, товарную накладную, акт сдачи-приемки услуг, лицензионный сертификат с печатью по запросу.


2.4. Что такое «код активации» и «регистрационный ключ». Чем они отличаются?

Код активации нужен для активации программы в автоматическом режиме через Интернет. Код активации является Вашим персональным кодом и не меняется при смене компьютера или переустановке Windows. Активировать свою копию программы Вы можете самостоятельно в любой момент.
Регистрационный ключ нужен для регистрации программы вручную. При смене компьютера или переустановке Windows, регистрационный ключ меняется и его нужно заново запрашивать через окно активации программы (см. п.2.3.).

Для Windows 11, Windows 10, Windows 8, Windows 7
1. Отключите UAC: Панель управления Windows — Учетные записи пользователей — Изменение параметров контроля учетных записей — Никогда не уведомлять
2. Перезапустите компьютер
3. Проинсталлируйте Домашнюю бухгалтерию в ту папку, где она стоит сейчас
4. Запустите Домашнюю бухгалтерию
5. После успешного запуска Домашней бухгалтерии закройте ее и можете включить UAC снова.
 



3.3. Домашняя бухгалтерия не запускается. При загрузке
появляется сообщение об ошибке BDE.

Выполните следующие действия:
1. Убедитесь, что Ваша учетная запись Windows
имеет права администратора
2. Скачайте файл установки BDE:

https://www.keepsoft.ru/files/bde/bde_install.zip (3.5 Мб)
3. Распакуйте скачанный файл bde_install.zip в любую
новую папку
4. Зайдите в папку, куда Вы распаковали файл bde_install.zip и найдите
файл Install. В свойствах файла Install на закладке «Совместимость»
поставьте галочку в поле «Запускать программу в режиме совместимости с
Windows XP»
5. Запустите файл Install.bat и проинсталлируйте BDE на свой компьютер
6. После успешной инсталляции BDE, найдите на Вашем компьютере и запустите файл
bdeadmin.exe (обычно этот файл находится в папке C:\ProgramData\Keepsoft\BDE)
7. В BDE Administrator перейдите на закладку
«Configuration»
8. В закладке «Configuration» перейдите в ветвь
Configuration — Drivers — Native — PARADOX
9. В правой части окна BDE Administrator у
параметра «NET DIR» измените значение на полный путь к папке
BDE Домашней бухгалтерии.
Для Windows XP это
папка: C:\Documents and Settings\All Users\Application Data\Keepsoft\BDE
Для Windows Vista, Windows 7, Windows 8, Windows 10, Windows 11 это папка: C:\ProgramData\Keepsoft\BDE
10. Примените сделанные изменения (пункт Object —
Apply)
11. Закройте BDE Administrator
12. Запускайте Домашнюю бухгалтерию
 



3.4. Домашняя бухгалтерия не запускается под учетной
записью, не имеющей прав администратора. При загрузке появляется
сообщение об ошибке BDE.

Выполните следующие действия:
1. Войдите в Windows с правами администратора
2. Один раз запустите на компьютере Домашнюю
бухгалтерию
3. Закройте Домашнюю бухгалтерию
4. Скачайте файл установки BDE:

https://www.keepsoft.ru/files/bde/bde_install.zip (3.5 Мб)
5. Распакуйте скачанный файл bde_install.zip в любую
новую папку
6. Зайдите в папку, куда Вы распаковали файл bde_install.zip и найдите
файл Install. В свойствах файла Install на закладке «Совместимость»
поставьте галочку в поле «Запускать программу в режиме совместимости с
Windows XP»
7. Запустите файл Install.bat и проинсталлируйте BDE на свой компьютер
8. После успешной инсталляции BDE, найдите на Вашем компьютере и запустите файл bdeadmin.exe
(обычно этот файл находится в папке C:\ProgramData\Keepsoft\BDE)
9. В BDE Administrator перейдите на закладку
«Configuration»
10. В закладке «Configuration» перейдите в ветвь Configuration — Drivers — Native — PARADOX
11. В правой части окна BDE Administrator у
параметра «NET DIR» измените значение на полный путь к папке
BDE Домашней бухгалтерии.
Для Windows XP это
папка: C:\Documents and Settings\All Users\Application Data\Keepsoft\BDE
Для Windows Vista, Windows 7, Windows 8, Windows 10, Windows 11 это папка: C:\ProgramData\Keepsoft\BDE
12. Примените сделанные изменения (пункт Object —
Apply)
13. Закройте BDE Administrator
14. Зайдите в Windows под пользователем без прав
администратора
15. Запускайте Домашнюю бухгалтерию
 



3.5. При попытке получить курсы валют через Интернет
появляется сообщение: Произошла ошибка. Не удалось соединиться с
сервером.

1. Убедитесь, что в момент получения курса валют у Вас установлено
соединение с Интернетом.
2. У Вас может быть установлен Firewall. Настройте Firewall так, чтобы
он давал доступ Домашней бухгалтерии в Интернет.
3. Вы работаете в Интернет через прокси. Укажите настройки прокси в
настройках Домашней бухгалтерии.
4. Ваш провайдер или сервер Центробанка были временно недоступны.
Повторите попытку позже.



3.6. При попытке активировать Домашнюю бухгалтерию
автоматически через Интернет появляется сообщение: Произошла ошибка. Не
удалось соединиться с сервером.

1. Убедитесь, что в момент активации Домашней бухгалтерии у Вас
установлено соединение с Интернетом.
2. У Вас может быть установлен Firewall. Настройте Firewall так, чтобы
он давал доступ Домашней бухгалтерии в Интернет.
3. Вы работаете в Интернет через прокси. Укажите настройки прокси в
настройках Домашней бухгалтерии.
4. Ваш провайдер или сервер www.keepsoft.ru были временно недоступны.
Повторите попытку позже.



3.7.
Я хочу перенести Домашнюю бухгалтерию на другой
компьютер. Как мне это сделать?

Для того, чтобы перенести Домашнюю бухгалтерию с одного компьютера на
другой без потери накопленной базы данных, нужно сделать следующее:
1. Проинсталлируйте Домашнюю бухгалтерию на новый компьютер. Скачать
последнюю версию Домашней бухгалтерии можно

здесь
2. Активируйте свою копию Домашней бухгалтерии на новом компьютере.
В Домашней бухгалтерии существует система автоматической регистрации
через Интернет. Если кода активации у Вас нет, но Вы являетесь
зарегистрированным пользователем Домашней бухгалтерии, то запросить
забытый код активации можно

здесь
3. При помощи системы резервного копирования, которая есть в Домашней
бухгалтерии, перенесите базу данных со старого компьютера на новый:
— На старом компьютере создайте резервную копию базы данных (Главное
окно Домашней бухгалтерии — меню Сервис — Резервное копирование —
Создать резервную копию)
— Перенесите полученный файл с резервной копией базы данных на новый
компьютер (Узнать расположение папки с файлами резервных копий можно из
Домашней бухгалтерии: Главное окно Домашней бухгалтерии — меню Сервис —
Резервное копирование — Настройка резервного копирования)
— На новом компьютере восстановите базу данных из резервной копии (Главное
окно Домашней бухгалтерии — меню Сервис — Резервное копирование —
Восстановить из резервной копии)
 



3.8.
Я хочу переустановить на своем компьютере Windows.
Как мне это правильно сделать, чтобы сохранилась моя база данных?

Для того, чтобы продолжить пользоваться Домашней бухгалтерией после
переустановки Windows и не потерять свою накопленную базу данных, нужно
сделать следующее:
1. Создайте резервную копию базы данных Домашней бухгалтерии. Для этого
зайдите в Домашнюю бухгалтерию, и откройте меню «Сервис — Резервное
копирование — Создать резервную копию».
2. Сохраните полученный файл с резервной копией в надежном месте. Узнать
расположение файлов с Вашими резервными копиями можно в настройках
Домашней бухгалтерии (меню Сервис — Резервное копирование — Настройки
резервного копирования).
3. Переустановите Windows.
4. Проинсталлируйте Домашнюю бухгалтерию на свой компьютер заново.
Скачать последнюю версию Домашней бухгалтерии можно

здесь
5. Активируйте Домашнюю бухгалтерию своим персональным кодом активации,
который Вам ранее высылался по e-mail. В Домашней бухгалтерии существует
система автоматической регистрации через Интернет. Если кода активации у
Вас нет, но Вы являетесь зарегистрированным пользователем Домашней
бухгалтерии, то запросить забытый код активации можно

здесь
6. Восстановите базу данных Домашней бухгалтерии из созданной Вами
резервной копии (меню Сервис — Резервное копирование — Восстановить из
резервной копии).



3.9.
В окнах Домашней бухгалтерии вместо русских букв я вижу знаки вопроса.

1. Зайдите в панели управления Windows в раздел «Язык
и региональные настройки» и выберите русский язык для программ, не
поддерживающих Юникод
2. Перезапустите компьютер

Если это не поможет, то сделайте, пожалуйста, следующее:
1. Зайдите в редактор реестра Windows (Пуск — Выполнить — regedit.exe)
2. Откройте ветку «HKEY_CURRENT_USER — Control Panel — International»
3. Измените значение параметра «Locale» на: 00000419
4. Измените значение параметра «LocaleName» на: ru-RU
5. Перезапустите компьютер



3.10.
Как установить Домашнюю бухгалтерию на флешку?

1. Закройте Домашнюю бухгалтерию, если она у Вас открыта
2. Скачайте последнюю версию Домашней бухгалтерии здесь >>
3. Проинсталлируйте Домашнюю бухгалтерию на флешку
4. Запустите Домашнюю бухгалтерию с флешки и активируйте ее своим кодом активации для переносной лицензии. Приобрести переносную лицензию можно здесь >>

Обалдеть, только думал, чтобы тему завести — возникла проблема аж на двух объектах.
Вот что нашел.

«В документации трактуется как конфликт при доступе к памяти совместного доступа (error Shared Memory Conflict ($210D, 8461)). И поведение похоже. Загружается первая программа(всё нормально).
Загружается вторая. При инициализации выдаёт ($210D). Если в этот момент закрыть первую программу, то загрузка второй завершиться успешно. При этом. Если теперь запустить первую программу, а затем выгрузить вторую (которая давала ошибку) и загрузить её снова , то загрузка пройдёт успешно.

Решение нашёл в параметрах конфигурации BDE
Configuration\SYSTEM\INIT\
параметр SHAREDMEMLOCATION

NT 2000 Ru
значение увеличивал с 1000 с шагом 1000 на 3000 ошибка исчезла»

Источник.

Вчера на одном из проблемных объектов пробовал, там ситуация такая: сервер выделенный, при загруженном сервере перестали запускаться Редактор и Отчеты. Сервер закрываю — все ОК.
Поставил SHAREDMEMLOCATION = 2048 — вроде все стало грузиться нормально, сегодня менеджеры будут гонять.

Решать проблему надо, ибо случается

Алексей Аркадьев

Когда заказчик ищет волшебника, то чаще всего он находит сказочника.
Если у Вас есть вопрос по поддержке — напишите его на форуме, я обязательно отвечу, если знаю ответ.
Если Вам нужны какие-то файлы, пишите на почту: support@carbis.ru, но вначале посмотрите в разделе для скачивания.
Для коммерческих вопросов:
+7 (495) 740-49-91, или на почту: sales@carbis.ru

Эксперт

Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 14
Всего: 154

Да в ФАКе нашем это есть.

Цитата
Есть один вопрос: как сделать так чтобы локальная база данных работала без бде администратор. В моем проекте база альясы не использует.   

Типичная ошибка! BDE это не поддержка alias! компоненты Дельфи такие как Table, Query, Database — почти вообще ничего не делают! — это только удобный интерфейс к BDE. Т.е. BDE реально читает и пишет в базы данных, обнавляет файлы, управляет транзакциями, сортирует данные, исполняет SQL запросы. BDE с одной стороны имеет BDE Admin для ее управления, а с другой API, которые и использует Дельфи в компонентах. Если вам надо обойтись без BDE вы должны использовать другие драйвера доступа к базам данных: ODBC, DAO, ADO, RDO — многие из них имеют свои API или COM интерфейсы которые вы можете использовать (напрямую, либо найти компоненты для этого, кроме того ADO входит в стандартную поставку дельфей, но через него приконнектится к парадоксу довольно затруднительно). Если же все эти драйвера вас не устраивают то вам надо написать свой драйвер к базе данных (можно прямо в коде программы), он должен обеспечивать:

1) Чтение и запись базы
2) Поддержка транзакций
3) Исполнение SQL запросов
4) Поддержка индексов и ключей
5) Поддержка многопользовательского доступа.
6) Стандартный набор API которые позволят подключаться компонентам типа Table, Query

Есть так же сторонние библиотеки для доступа к базам данных через свои собственные драйвера: HALCYON, или Апполо (Предложил МММ);
vkDBF- компонент для работы с ДБФ для Дельфы6/5 без БДЕ.(Предложил Free)

Цитата
Problem/Question/Abstract:

What are the essential files to ship with an application that uses the BDE?

Answer:

Delphi allows you to generate a nice tight executable file (.EXE), but if you have created a database application you must include the files that make up the Borland Database Engine as well. The table below shows the files that are mandatory when delivering a database application with Delphi.
File Name  Description
IDAPI01.DLL — BDE API DLL
IDBAT01.DLL — BDE Batch Utilities DLL
IDQRY01.DLL — BDE Query DLL
IDASCI01.DLL — BDE ASCII Driver DLL
IDPDX01.DLL — BDE Paradox Driver DLL
IDDBAS01.DLL — BDE dBASE Driver DLL
IDR10009.DLL — BDE Resources DLL
ILD01.DLL — Language Driver DLL
IDODBC01.DLL — BDE ODBC Socket DLL
ODBC.New — Microsoft ODBC Driver Manager DLL V2.0
ODBCINST.NEW — Microsoft ODBC Driver Installation DLL V2.0
TUTILITY.DLL — BDE Table Repair Utility DLL
BDECFG.EXE — BDE Configuration Utility DLL
BDECFG.HLP — BDE Configuration Utility Help
IDAPI.CFG —    BDE Configuation File (settings)

To assist the user, Delphi ships with an install program for exporting the appropriate files that you want deliver to your clients. Also, installation programs such as InnoSetup and InstallShield can automatically include the relevant files in their setup programs.

InnoSetup is my program installation program of choice, and it is FREE! For more information or to download a copy visit Jordan Russhttp:// www.jrsoftware.orgell’s site at

Finally a tip on using the setup CAB file that ships with the BDE to install the relevant files can be found in DKB, article title «Installing BDE from BDEINST.CAB»

Цитата

If you have taken a close look at the listing of the BDE installation directory (usually \Program Files\Borland\Common FIles\BDE), you’ve noticed there’s a file called BDEINST.CAB. If BDEINST.CAB isn’t present in the BDE folder, you probably chose not to let it be installed. As this tip requires this file, you might want to run install again and install only BDEINST.CAB. Anyway, let’s get back to the tip.

What is BDEINST.CAB?

BDEINST.CAB is a cabinet (Microsoft’s compression format) file that contains only one large file: BDEINST.DLL. This DLL contains a simple installation program along with all the necessary files for a basic install of BDE. It will correctly install BDE with the native drivers for Paradox, dBase, MS Access and FoxPro. It won’t install drivers for SQL database servers. If all you need is a basic installation of BDE for supporting one of the forementioned databases, then BDEINST.CAB is the best choice for you.

Given the problem InstallShield and Wise have with installing BDE 5, BDEINST.DLL has a great appeal, since it was created by the Borland folks and doesn’t suffer from the same problems InstallShield and WISE do.

There is, however, a drawback: BDEINST.DLL is a quite large file, so it’s that good if you’re deploying on floppy disks. There’s a workaround for this problem and we’ll get back to it later on.

Using BDEINST.DLL

In order to use BDEINST.DLL, all you have to do is to extract it from BDEINST.CAB. There are several ways this can be done. Two of them are:

· Using WinZip or another CAB-compatible archiver. Simply extract BDEINST.DLL from the CAB file. 

· Using Microsoft’s EXTRACT utility that comes with Windows 9x and NT. From a DOS window, issue the command below (path is also shown): 

· 

· C:\Program Files\Borland\Common Files\BDE>EXTRACT /E BDEINST.CAB 

· 

· This will extract BDEINST.DLL to the current directory, since no destination dir was specified in the command line. 

  The task now is to use the DLL. This is as simple as issuing the command line below:

C:\WINDOWS\SYSTEM\REGSVR32.EXE /S CABINST.DLL

If the command above fails, make sure you have REGSVR32.EXE on your machine. Not all machines have it, and, in case of deploying BDEINST.DLL, it’s also a good idea to deploy REGSVR32.EXE. This file can be found in \WINDOWS\SYSTEM or \WINNT\SYSTEM32.

A progress dialog box will popup indicating that the installation of BDE is going ok. This is all it takes to install BDE without needing any additional tool such as InstallShield or Wise.

If you do not want to deploy REGSVR32.EXE, you can create a small VCL-less and formless application that simply calls DllRegisterServer from the DLL.

Цитата
program InstallPrfSt;

{
Программа иллюстрирует, как установить BDE с поддержкой PARADOX 7.0
на «чистой машине» и создать алиас.
Пример использования в качестве простейшего инсталлятора для программы
C:\MyDir\MyProg.exe
1.Создайте каталог C:\MyDir\BDE и скопируйте в него след. файлы:
CHARSET.BLL
OTHER.BLL
IDAPI32.CFG
BLW32.DLL
IDAPI32.DLL
IDBAT32.DLL
IDPDX32.DLL
IDR20009.DLL
IDSQL32.DLL
BDEADMIN.EXE — по вкусу, т.к. необходимым не является.
2.Измените значение константы AliasName на имя необходимого вам алиаса.
3.Откомпиллируйте и запустите эту программу из каталога C:\MyDir.
ВHИМАHИЕ!!! Если на машине уже установлено BDE, то перед экспериментами
сохраните (на всякий случай) след. ключи из реестра:
[HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine] и
[HKEY_LOCAL_MACHINE\SOFTWARE\Borland\BLW32].
}

{$APPTYPE CONSOLE}
uses
  Windows, BDE, Registry;

const
  AliasName: string = ‘PrefStat’;

var
  R: DBIResult;
  Path: string;

procedure WriteString(S1:string);
begin
  S1 := S1 + #0;
  AnsiToOem(@S1[1], @S1[1]);
  writeln(S1);
end;

function GetExePath(S1:string):string;
var
  I, K :Integer;
  S: string;
begin
  K := 1;
  S := »;
  for I := Length(S1) downto 1 do
  begin
    if S1[I] = ‘\’ then
    begin
      K := I;
      Break;
    end;
  end;

  for I := 1 to K — 1 do
    S := S + S1[I];

  Result:=S;
end;

procedure InstallBde;
const
  Bor: string = ‘SOFTWARE\Borland’;
var
  a: TRegistry;
  BPath: string;
begin
  BPath:=PATH + ‘\BDE’;
  a := TRegistry.Create;
  with a do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey(Bor + ‘\Database Engine’, True);
    WriteString(‘CONFIGFILE01′, BPath+’\IDAPI32.CFG’);
    WriteString(‘DLLPATH’, BPath);
    WriteString(‘RESOURCE’, ‘0009’);
    WriteString(‘SaveConfig’, ‘WIN32’);
    WriteString(‘UseCount’, ‘2’);
    CloseKey;
    OpenKey(Bor+’\BLW32′,True);
    WriteString(‘BLAPIPATH’, BPath);
    WriteString(‘LOCALE_LIB3′, BPath+’\OTHER.BLL’);
    WriteString(‘LOCALE_LIB4′, BPath+’\CHARSET.BLL’);
    CloseKey;
    OpenKey(Bor+’\Database Engine\Settings\SYSTEM\INIT’,True);
    WriteString(‘AUTO ODBC’, ‘FALSE’);
    WriteString(‘DATA REPOSITORY’, »);
    WriteString(‘DEFAULT DRIVER’, ‘PARADOX’);
    WriteString(‘LANGDRIVER’, ‘ancyrr’);
    WriteString(‘LOCAL SHARE’, ‘FALSE’);
    WriteString(‘LOW MEMORY USAGE LIMIT’, ’32’);
    WriteString(‘MAXBUFSIZE’, ‘2048’);
    WriteString(‘MAXFILEHANDLES’, ’48’);
    WriteString(‘MEMSIZE’, ’16’);
    WriteString(‘MINBUFSIZE’, ‘128’);
    WriteString(‘SHAREDMEMLOCATION’, »);
    WriteString(‘SHAREDMEMSIZE’, ‘2048’);
    WriteString(‘SQLQRYMODE’, »);
    WriteString(‘SYSFLAGS’, ‘0’);
    WriteString(‘VERSION’, ‘1.0’);
    CloseKey;
    OpenKey(Bor+’\Database Engine\Settings\SYSTEM\FORMATS\DATE’,True);
    WriteString(‘FOURDIGITYEAR’, ‘TRUE’);
    WriteString(‘LEADINGZEROD’, ‘FALSE’);
    WriteString(‘LEADINGZEROM’, ‘FALSE’);
    WriteString(‘MODE’, ‘1’);
    WriteString(‘SEPARATOR’, ‘.’);
    WriteString(‘YEARBIASED’, ‘TRUE’);
    CloseKey;
    OpenKey(Bor+’\Database Engine\Settings\SYSTEM\FORMATS\NUMBER’,True);
    WriteString(‘DECIMALDIGITS’, ‘2’);
    WriteString(‘DECIMALSEPARATOR’, ‘,’);
    WriteString(‘LEADINGZERON’, ‘TRUE’);
    WriteString(‘THOUSANDSEPARATOR’, ‘ ‘);
    CloseKey;
    OpenKey(Bor+’\Database Engine\Settings\SYSTEM\FORMATS\TIME’,True);
    WriteString(‘AMSTRING’, ‘AM’);
    WriteString(‘MILSECONDS’, ‘FALSE’);
    WriteString(‘PMSTRING’, ‘PM’);
    WriteString(‘SECONDS’, ‘TRUE’);
    WriteString(‘TWELVEHOUR’, ‘TRUE’);
    CloseKey;
    OpenKey(Bor+’\Database Engine\Settings\REPOSITORIES’,True);
    CloseKey;
    OpenKey(Bor+’\Database Engine\Settings\DRIVERS\PARADOX\INIT’,True);
    WriteString(‘LANGDRIVER’, ‘ancyrr’);
    WriteString(‘TYPE’, ‘FILE’);
    WriteString(‘VERSION’, ‘1.0’);
    CloseKey;
    OpenKey(Bor+’\Database Engine\Settings\DRIVERS\PARADOX\TABLE
    CREATE’,True);
    WriteString(‘BLOCK SIZE’, ‘4096’);
    WriteString(‘FILL FACTOR’, ’95’);
    WriteString(‘LEVEL’, ‘7’);
    WriteString(‘STRICTINTEGRTY’, ‘TRUE’);
    CloseKey;
  end;
  a.Free;
end;

begin
  Path:=GetExePath(ParamStr(0));
  R:=dbiInit(nil);
  if R<>DBIERR_NONE then
  begin
    WriteString(‘Инициализация BDE …’);
    InstallBDE;
  end;
  R:=dbiInit(nil);
  if R=DBIERR_NONE then
  begin
    WriteString(‘Инициализация BDE прошла успешно’);
    DbiDeleteAlias(nil, PChar(AliasName));
    R:=DbiAddAlias(nil, PChar(AliasName), szPARADOX,
    PChar(‘PATH:’+Path+’\DB’), True);
    if R=DBIERR_NONE then
      WriteString(‘Псевдоним «‘+AliasName+'» создан’)
    else
      WriteString(‘Ошибка создания псевдонима «‘+AliasName+'»‘);
    R:=DbiCfgSave(nil, nil, Bool(-1));
    if R=DBIERR_NONE then
      WriteString(‘Файл конфигурации сохранён’)
    else
      WriteString(‘Ошибка сохранения файла конфигурации’);
    DbiExit;
  end
  else
    WriteString(‘Ошибка инициализации BDE’);
end.

Использую Microsoft Visual C# 2010, Windows 7 Максимальная.
BDE использует только компоненты Zulu.
Запрос к данным выполняется один раз после подключения к карте (или переподключения).
Если возникла данная ошибка, то необходимо закрыть все приложения использующие zb.dll, причем работающие другие приложения могут выполнять запрос к данным.
При каждом запуске приложения производится регистрация компонентов Zulu.
В настройках BDE:
SHAREDMEMLOCATION — 5BDE
SHEREDMEMSIZE — 4096

Вот так выглядит метод, использующий zb.dll:
Layer Layer = axZuluMap.Map.Layers[(short)index];
ZbDatabase DataBase = null;
try
{
DataBase = new ZbDatabase();
if (!DataBase.Open(Layer.BaseName))
{
return false;
}
DataTable tempTable = new DataTable();
IZbDataset Dataset = null;
IZbQueryInfo QueryInfo = DataBase.Queries[index2];
int QueryResult = 0;
QueryInfo.QueryByExample(«», null, ref QueryResult, ref Dataset);//В этом месте возникает эта ошибка
if (Dataset == null)
return false;
Dataset.MoveFirst();
while (!Dataset.Eof)
{
DataRow Row = tempTable.NewRow();
for (int i = 0; i < ListFilds.Count; i++)
{
Row[i] = Dataset.get_FieldDisplayValue(i);
}
tempTable.Rows.Add(Row);
Dataset.MoveNext();
}
return true;
}
catch
{
return false;
}
finally
{
if (DataBase != null)
DataBase.Close(true);
}

Есть готовые Dll написанные на Delphi и использующие BDE. Есть программа написанные на VC, использует эти Dll.
Возникает проблема: если сначала была запущена любая программа «X», которая использует BDE, то после создания CWinApp возникает ошибка «Инициализации BDE«. Причем, все работает хорошо, если программу «X» не запускать. ???

Если отключить в Settings/General отключить поддержку MFC то все заработало.
Вместо программы «X» можно запустить BDE Administrator, эфект тот же.
Ошибка исчезает под XP и 2003, под 2000 и 9X, эфект тот же.

Вот тестовая программка на VC.

// testVC.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include <windows.h> 

typedef void (WINAPI * MYPROC)(unsigned int Comm);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
  BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;
  HMODULE hLibrary = LoadLibrary("c:\\UsesBDE.dll");
  if(hLibrary) 
  {
    MYPROC ProcAdd = (MYPROC) GetProcAddress(hLibrary, "LIBRARYENTRY"); 
      if (fRunTimeLinkSuccess = (ProcAdd != NULL)) 
        (ProcAdd) (0); 
    fFreeResult = FreeLibrary(hLibrary); 
  }
  return 0;
}

Вот тестовая DLL на Delphi.

unit Unit1;
interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, DB, DBTables, BDE;

type
  TForm1 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    procedure FormShow(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
var
    dbDes: DBDesc;
    Res: DBIResult;
    TempPath : string;
begin
  TempPath := 'c:\temp';
  Res:=DbiInit(nil);
  if Res <> DBIERR_NONE  then
  begin
   DbiDllExit;
   DbiExit;
   Res:=DbiInit(nil);
  end;
  if Res = DBIERR_NONE  then
   begin
      ShowMessage('Подключились!');
      Res:=DbiGetDatabaseDesc(PChar('DBDEMOS'),@dbDes);
      if Res <> DBIERR_NONE then
       begin
         ShowMessage('Не определен алиас!');
       end;
   end
   else
       begin
         ShowMessage( 'Ошибка!');
       end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
   DbiDllExit;
   DbiExit;
end;

end.

PS. Кто сегодня самый умный?

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Нужна ли лицензия на windows 10 pro
  • Восстановление оболочки windows 10
  • Sigmatel audio high definition audio codec windows
  • Deeppavlov установка на windows
  • Openssl for windows binaries