Убить призрака БДЭ

В моем приложении Delphi7 я могу подключаться к базе данных, когда вы вошли в систему как администратор ("Dave"), но не в случае, когда вы вошли в систему как обычный или ограниченный пользователь ("Paris"). Бывает на XP Home & Vista Business Ultimate 64. Я использую псевдоним для БД. База данных Firebird, промежуточное ПО IBO 4.7.

Я опубликовал это в другой ветке, но знаю, что у меня гораздо больше информации, и кажется, что проблема в BDE. Очевидно, что DB.Pas связан. Я вижу его в файле project.map, и exe читает реестр, чтобы получить псевдоним BDE.

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

Кто-нибудь там был?

3 ответа

Предполагая, что вы не собираете пакеты, удалите db.pas и db.dcu с диска (например, переименуйте их в db!.Pas и db!.Dcu) и пересоберите. Компилятор должен остановиться там, где указана БД.

Просто чтобы отметить очевидное, вы также проверили все пункты USES?

Вам не нужно беспокоиться о Db.pas, я не знаком с IBO, но подозреваю, что он также использует Db.pas (TDataSet, TDatasource).

Вам нужно будет найти блок DbTables и компоненты там. Он содержит глобально объявленную и созданную переменную Session. И TSession ссылки на BDE.

Я решил это с вашей помощью. Сначала Габр рекомендовал удалить.dcus. Я имел, но нашел несколько, в том числе db.dcu. Уничтожил это. Теперь компиляция остановлена ​​на IB.dcu (интерфейс Borlands для Interbase). Убил его и получил компиляцию. Grepped для БД в.map - нет. Все равно не будет работать как Париж, поэтому я нашел комментарий Джейсона в источниках, который показал, что свойство AliasName TConnection было для псевдонима BDE, а не для псевдонима FireBird, поэтому я установил свойство пустым.

Запустил exe под Парижем, и это сработало!

Теперь я должен сказать вам, что взял этот дом на выходные, надеясь на некоторую сосредоточенность. Когда это сработало, я закричал BLOODY BONZER! во весь голос - и все три кошки нырнули и спрятались.

"IB" - 3 символа в 700 тысячах строк кода!

Так что, если кого-то преследует этот призрак, grep для IB!

Спасибо, ребята (девчонки?) - как я могу объяснить вам лучший ответ?

Спасибо, Дейв.

Другие вопросы по тегам