Больница совершила недопустимую операцию и будет закрыта…

Данный совет показывает как в Delphi 2.01 можно использовать функцию BDE DbiCallBack для получения значения линейки прогресса при длительных пакетных операциях, связанных с движением данных.

Дополнительная документация, описывающая вызовы функций BDE, находится в файле BDE32.HLP (расположенном в каталоге, где установлен 32-битный IDAPI).

При создании функций обратного вызова BDE, BDE будет осуществлять “обратный вызов” функций вашего приложения, позволяя тем самым извещать ваше приложение о происходящих событиях, а в некоторых случаях передавать информацию обратно BDE.
Читать полностью…

Автор: admin | в 2:14 | Рубрики: BDE, Базы данных

Автор: Nomadic

Из беседы юзеров: “Как включить Windows, не включая компьютер?”

BDE: под Windows, все версии.
Если Вы обнаружите, что Вы ограничены более строго, чем здесь описано, или Вы получаете ошибку выхода за пределы доступной памяти, то увеличение параметра SHAREDMEMSIZE в BDE Config до 4096 или более может способствовать снятию более строгих ограничений.
Здесь указаны максимальные ограничения для некоторых общих обьектов BDE.
Читать полностью…

Session.AddAlias(AliasName, AliasDriver, Params);
Session.SaveConfigFile;

Автор: admin | в 2:14 | Рубрики: BDE, Базы данных

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

uses
DB, DBTables, DbiProcs, DbiErrs, DbiTypes;

procedure CopyTable(FromDir, SrcTblName, ToDir, DestTblName:
String);
var
DBHandle: HDBIDB;
ResultCode: DBIResult;
Src, Dest, Err: Array[0..255] of Char;
SrcTbl, DestTbl: TTable;
begin
SrcTbl := TTable.Create(Application);
DestTbl := TTable.Create(Application);
try
SrcTbl.DatabaseName := FromDir;
SrcTbl.TableName := SrcTblName;
SrcTbl.Open;
DBHandle := SrcTbl.DBHandle;
SrcTbl.Close;
ResultCode := DbiCopyTable(DBHandle,false,
StrPCopy(Src,FromDir + ‘\’ + SrcTblName), nil,
StrPCopy(Dest,ToDir + ‘\’ + DestTblName));
if ResultCode <> DBIERR_NONE then
begin
DbiGetErrorString(ResultCode,Err);
raise EDatabaseError.Create(’While copying ‘ +
FromDir + ‘\’ + SrcTblName + ‘ to ‘ +
ToDir + ‘\’ + DestTblName + ‘, the ‘
+ ‘ database engine generated the error ”’
+ StrPas(Err) + ””);
end;
finally
SrcTbl.Free;
DestTbl.Free;
end;
end;

Автор: admin | в 2:14 | Рубрики: BDE, Базы данных

uses BDE;

{Without the Registry:}

procedure TForm1.Button1Click(Sender: TObject);
var
ThisVersion: SYSVersion;
begin
DbiGetSysVersion(ThisVersion);
ShowMessage(’BORLAND DATABASE ENGINE VERSION = ‘ + IntToStr(ThisVersion.iVersion));
end;

{With the Registry:}

function GetBDEVersion: string;
var
h: hwnd;
ptr: Pointer;
proc: TSYSVerProc;
ver: SYSVersion;
idapi: string;
reg: TRegistry;
begin
try
reg.RootKey := HKEY_CLASSES_ROOT;
reg.OpenKey(’CLSID\{FB99D710-18B9-11D0-A4CF-00A024C91936}\InProcServer32′, False);
idapi := reg.ReadString(”);
reg.CloseKey;
finally
reg.Free;
end;
Result := ‘‘;
h := LoadLibrary(PChar(idapi));
if h <> 0 then
try
ptr := GetProcAddress(h, ‘DbiGetSysVersion’);
if ptr <> nil then
begin
proc := ptr;
Proc(Ver);
Result := IntToStr(ver.iVersion);
Insert(’.', Result, 2);
end;
finally
FreeLibrary(h);
end;
end;