2009-05-09 10 views
0

In meiner Delphi7-App kann ich mich mit der Datenbank verbinden, wenn ich als Administrator ("Dave") angemeldet bin, aber nicht, wenn ich als normaler oder eingeschränkter Benutzer ("Paris") angemeldet bin. Passiert auf XP Home & Vista Business Ultimate 64. Ich verwende einen Alias ​​für die db. Datenbank ist Firebird, Middleware ist IBO 4.7.Den Geist der BDE töten

Ich postete dies in einem anderen Thread, aber ich weiß, ich habe viel mehr Informationen, & es scheint, dass die BDE das Problem ist. Offenbar ist die DB.Pas in verlinkt. Ich kann es in der Datei project.map sehen, & die exe liest die Registrierung, um den BDE-Alias ​​zu erhalten.

Ich habe alle BDE-bezogenen Quellen entfernt & dcu Dateien, ich habe das Projekt erschöpfend für eine DB-Komponente & gesucht es kommt sauber.

Ist jemand dort gewesen?

+3

Beachten Sie, dass DB.pas nicht die BDE ist! BDE ist mit dbtables.pas verknüpft. –

Antwort

3

Nur um das Offensichtliche zu erwähnen, haben Sie auch alle USES Klauseln überprüft?

Und es ist nicht Db.pas müssen Sie sich sorgen, ich bin nicht vertraut mit IBO, aber ich vermute, es verwendet Db.pas (TDataSet, TDatasource) sowie.

Sie müssen nach der DbTables-Einheit und den darin enthaltenen Komponenten suchen. Es enthält eine global deklarierte und instanziierte Session-Variable. Und TSession verbindet sich mit der BDE.

+0

In der Tat. Wir verwenden die ADO-Komponenten, fügen jedoch häufig DB.Pas sowie TDataSet hinzu. Es ist kein Teil von BDE (wird aber von BDE verwendet) –

4

Angenommen, Sie erstellen keine Pakete - entfernen Sie db.pas und db.dcu von der Festplatte (benennen Sie sie beispielsweise in db! .pas und db! .dcu um) und erstellen Sie sie neu. Der Compiler sollte anhalten, wo auf die Datenbank verwiesen wird.

+1

Möglicherweise müssen Sie die Befehlszeile zum Kompilieren verwenden, der Designer kann sich auch auf Db.pas verlassen. –

+0

Designer ist in Pakete kompiliert und sollte die Kompilierung nicht beeinflussen. – gabr

1

Ich löste es mit Ihrer Hilfe. Erste gabr empfahl ich entfernen die .dcus. Ich hatte, fand aber ein paar, einschließlich db.dcu. Es getötet. Jetzt wird die Kompilierung bei Verwendung von IB.dcu beendet (Borland-Schnittstelle zu Interbase). Getötet, & bekam eine Kompilierung. Grepped für DB in der .map - nicht vorhanden. Ich würde immer noch nicht als Paris arbeiten, also fand ich in den Quellen einen Jason-Kommentar, der enthüllte, dass die AliasName-Eigenschaft von TConnection für den BDE-Alias ​​und nicht für den FireBird-Alias ​​galt, also stellte ich die Eigenschaft auf leer.

Lief die exe unter Paris & es funktionierte !.

Jetzt muss ich Ihnen sagen, dass ich dieses Haus für das Wochenende genommen hatte, in der Hoffnung auf etwas Fokus. Als es funktionierte, schrie ich BLOODY BONZER! an der Spitze meiner Stimme - & alle drei Katzen von & verbarg versteckte.

"IB," - 3 Zeichen in 700 tausend Zeilen Code!

Also, wenn jemand von diesem Geist verfolgt wird, grep für IB!

Danke Jungs (Mädels?) - Wie kann ich Ihnen die beste Antwort?

Danke, Dave.

+1

Wählen Sie einfach die Antwort aus, die Ihnen am besten geholfen hat, und klicken Sie auf die Schaltfläche Akzeptieren. Es hilft beim Sichten "beantworteter" und nicht beantworteter Fragen. –