2009-05-09 6 views
0

В моем приложении Delphi7 я могу подключиться к базе данных при входе в систему как администратор («Dave»), но не при входе в систему как обычный или ограниченный пользователь («Париж»). Бывает на XP Home & Vista Business Ultimate 64. Я использую псевдоним для db. База данных - это Firebird, среднее - это IBO 4.7.Killing the Ghost of BDE

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

Я удалил все связанные с BDE источники & Файлы dcu, я искал проект для компонента DB &, он выглядит чистым.

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

+3

Обратите внимание, что DB.pas не является BDE! BDE связан с dbtables.pas. –

ответ

3

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

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

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

+0

Действительно. Мы используем компоненты ADO, но часто добавляем DB.Pas, а также TDataSet. Он не является частью BDE (но используется BDE) –

4

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

+1

Возможно, вам придется использовать CommandLine для компиляции, дизайнер также может полагаться на Db.pas. –

+0

Дизайнер скомпилирован в пакеты и не должен влиять на компиляцию. – gabr

1

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

Ran the exe под Париж & это сработало !.

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

«IB», - 3 символа в 700 тыс. Строк кода!

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

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

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

+1

Просто выберите ответ, который помог вам лучше всего, и нажмите кнопку «Принять». Это помогает, просеивая «ответившие» и неурегулированные вопросы. –