Чтение онлайн

на главную - закладки

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

{$R *.DFM}

function TForm1.ChkPath : Boolean;

var s: array[0..100] of char;

begin

 If DirectoryExists(Edit1.Text) then begin

DataBase1.DatabaseName:= 'TempDB';

DataBase1.DriverName:= 'Standard';

DataBase1.LoginPrompt:= false;

DataBase1.Connected := False;

DataBase1.Params.Add('Path=' + Edit1.Text);

DataBase1.Connected := TRUE;

Result := TRUE;

 end else begin

StrPCopy(s,'Каталог : ' + Edit1.text + '
не найден');

Application.MessageBox(s, 'Ошибка!', MB_ICONSTOP);

Result := FALSE;

 end;

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

 if ChkPath then Check(DbiAcqPersistTableLock(Database1.Handle, 'PARADOX.DRO','PARADOX'));

end;

end.
 

Нечувствительный к регистру поиск в первичном индексе Paradox

Delphi 1 

К сожалению, это невозможно. Вы можете создать другой (вторичный) индекс, нечувствительный к регистру, для того же поля (или полей), для которых был создан первичный индекс, но как вы можете догадаться, этот путь потребует дополнительного программирования. 

Создание таблицы Paradox

Delphi 1 

Вот маленький кусочек кода для создания таблицы Paradox:

with TTable.create(self) do begin

 DatabaseName := 'C:\temp';

 TableName := 'FOO';

 TableType := ttParadox;

 with FieldDefs do Begin

Add('Age', ftInteger, 0, True);

Add('Name', ftString, 25, False);

Add('Weight', ftFloat, 0, False);

 End;

 IndexDefs.Add('MainIndex','IntField', [ixPrimary, ixUnique]);

 CreateTable;

End;
 

DBEdit и реальные значения

При работе с реальными числами, хранимые в таблице Paradox, вы уверены в том, что вы используете тип Real как тип ваших данных? Если так, то попробуйте использовать тип Double. Double – 8-байтовое (64-битное) реальное число, которое нормально работает с BDE, тогда как Real – 6-байтовая версия и подходит

только для Delphi и BP. Или попробуйте использовать Extended, занимающий 10 байтов.

Почему при создании таблицы Paradox с первичным нечувствительным к регистру индексом вываливается ошибка?

Пара строк

Nomadic отвечает:

В Парадоксе первичный индекс всегда CaseSensitive. 

Как сменить пароль (master password) для таблицы Paradox?

Nomadic отвечает:

Пожалуйста: 

var

 db : TDatabase;

 Desc : CRTblDesc;

begin

 db := PriceTable.OpenDatabase;

 FillChar(Desc, SizeOf(Desc), #0 );

 StrCopy(Desc.szTblName, PChar(PriceTable.TableName));

 StrCopy(Desc.szTblType, szParadox);

 StrCopy(Desc.szPassword, 'password');

 Desc.bProtected := TRUE;

 Check(DbiDoRestructure(db.Handle, 1, @Desc, nil, nil, nil, FALSE));

end;
 

Что нужно сделать для нормальной работы в одноранговой сети с базами Paradox?

Nomadic отвечает:

BDE Config/Admin – нa вкладке System устaнови LOCAL SHARE в TRUE!

Здесь комментарий –

В Help параметр LOCAL SHARE описан как:

AA> === Cut ===

AA> The ability to share access to local data between an active BDE

AA> application and an active non-BDE application. Set to TRUE if you need to

AA> work with the same files through both a BDE and a non-BDE application at

AA> the same time. (It is not necessary to set LOCAL SHARE to TRUE if you do

AA> not need to have both applications open at the same time.) Default: FALSE.

AA> === Cut ===

Дак читал я вышеизложенное, и расцениваю его кaк туманопускательство. А подозреваю, что просто у BDE для скорости есть свой внутренний кэш (или, может, мехaнизм блокировок в пaмяти), и для двух приложений на одном компьютере оно всё делает хорошо, a вот если приложение находится на другом компьютере (и лезет в БД через другую копию BDE), то у него есть доступ только к файлам нa диске (как и у non-BDE application).

Скорее всего, борланд отключает эти хитрости у сетевых дисков. Hо для локального дискa, который рaсшарен по сети, он этого, похоже, не сделaл :(

И BDE нa файл-сервере не заботится о правильных индексaх и блокировках нa диске (т.е. не ожидает, что кто-то мог исправить индекс, пока оно ворон считaло).

А этa установка заставляет его работать по старым парадоховым соглашениям.

Что и требовалось.

PS. Иначе говоря, следует считать, что network is non-BDE application, и тогда это не есть бага :) 

Поделиться:
Популярные книги

Сын Тишайшего

Яманов Александр
1. Царь Федя
Фантастика:
попаданцы
альтернативная история
фэнтези
5.20
рейтинг книги
Сын Тишайшего

"Искажающие реальность" Компиляция. Книги 1-14

Атаманов Михаил Александрович
Искажающие реальность
Фантастика:
боевая фантастика
космическая фантастика
киберпанк
рпг
5.00
рейтинг книги
Искажающие реальность Компиляция. Книги 1-14

Школа. Первый пояс

Игнатов Михаил Павлович
2. Путь
Фантастика:
фэнтези
7.67
рейтинг книги
Школа. Первый пояс

Невеста на откуп

Белецкая Наталья
2. Невеста на откуп
Фантастика:
фэнтези
5.83
рейтинг книги
Невеста на откуп

Убивать чтобы жить 2

Бор Жорж
2. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 2

Вперед в прошлое!

Ратманов Денис
1. Вперед в прошлое
Фантастика:
попаданцы
5.00
рейтинг книги
Вперед в прошлое!

Аргумент барона Бронина 4

Ковальчук Олег Валентинович
4. Аргумент барона Бронина
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Аргумент барона Бронина 4

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Измена. Право на обман

Арская Арина
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Право на обман

Бастард Императора. Том 7

Орлов Андрей Юрьевич
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 7

Жаба с кошельком

Донцова Дарья
19. Любительница частного сыска Даша Васильева
Детективы:
иронические детективы
8.26
рейтинг книги
Жаба с кошельком

Бастард Императора. Том 11

Орлов Андрей Юрьевич
11. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 11

Академия чаросвет. Тень

Ярошинская Ольга
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Академия чаросвет. Тень

Наследие Маозари 4

Панежин Евгений
4. Наследие Маозари
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Наследие Маозари 4