2009-05-09 2 views
0

내 Delphi7 앱에서는 관리자 ("Dave")로 로그인했을 때 데이터베이스에 연결할 수 있지만 표준 또는 제한된 사용자 ("파리")로 로그인하지 않은 경우 데이터베이스에 연결할 수 있습니다. XP 홈에서 발생 & Vista Business Ultimate 64. db에 대한 별칭을 사용합니다. 데이터베이스는 Firebird, 미들웨어는 IBO 4.7입니다.BDE의 고스트를 없애기

나는 이것을 다른 스레드에 올렸지 만, 더 많은 정보를 알고있다. & BDE가 문제인 것 같다. 분명히 DB.Pas가 링크되어 있습니다. project.map 파일에서 볼 수 있습니다. & exe가 BDE 별칭을 얻기 위해 레지스트리를 읽습니다.

모든 BDE 관련 소스 & dcu 파일을 제거했습니다. DB 구성 요소가 완전히 검색되었습니다. & 깨끗하게 나옵니다.

아무도 없습니까?

+3

DB.pas는 BDE가 아닙니다. BDE는 dbtables.pas로 연결됩니다. –

답변

3

분명히 언급하자면, 모든 USES 절도 확인 했습니까?

그리고 걱정할 필요가 없습니다. IBO에 익숙하지 않지만 Db.pas (TDataSet, TDatasource)도 사용하고 있습니다.

DbTables 유닛과 그 안에있는 구성 요소를 찾아야합니다. 이것은 전역 적으로 선언되고 인스턴스화 된 Session 변수를 포함합니다. 그리고 TSession은 BDE에 연결됩니다.

+0

참으로. ADO 구성 요소를 사용하지만 종종 TDataSet뿐만 아니라 DB.Pas를 추가합니다. BDE의 일부가 아닙니다 (BDE에서 사용) –

4

패키지로 빌드하지 않는다고 가정하면 디스크에서 db.pas와 db.dcu를 제거하고 (예 : db! .pas와 db! .dcu로 이름을 바꾸십시오) 다시 빌드하십시오. 컴파일러는 db가 참조되는 위치에서 멈춰야합니다.

+1

컴파일 할 때 명령 줄을 사용해야 할 수도 있고 디자이너가 Db.pas를 사용할 수도 있습니다. –

+0

Designer는 패키지로 컴파일되므로 컴파일에 영향을주지 않아야합니다. – gabr

1

나는 당신의 도움으로 그것을 해결했습니다. 첫 번째 gabr은 .dcus를 제거하도록 권장했습니다. db.dcu를 포함하여 몇 가지를 찾았습니다. 그것을 사망. 이제 IB.dcu (Borland Interbase 인터페이스)를 사용하여 컴파일이 중지되었습니다. 그것을 죽인 &가 컴파일되었습니다. .map에 DB에 대해 Grepped - 존재하지 않습니다. 여전히 Paris처럼 작동하지 않을 것이므로, TConnection의 AliasName 속성은 FireBird 별칭이 아닌 BDE 별칭에 대한 것이므로 공개 속성을 비워 둡니다.

파리 아래 exe 란 &이 작동했습니다!.

이제 저는 주말에이 집을 가져 갔다고 말하고 싶습니다. 그것이 효과가있을 때 나는 블러드 베이더를 외쳤다! 내 목소리 맨 위에 - & 세 고양이가 모두 비둘기 & 숨기기.

"IB"- 700,000 줄의 코드에서 3 개의 문자!

누군가이 유령에 의해 유령이 끌린다면, IB에 대해 grep을!

감사합니다. (gals?) - 가장 좋은 대답을 어떻게 표시합니까?

감사합니다. Dave.

+1

가장 도움이 된 대답을 선택하고 동의 버튼을 클릭하십시오. 그것은 '대답 된'질문과 답이없는 질문을 구분함으로써 도움이됩니다. –

관련 문제