![]() |
Datenbank: SQL-Server • Version: egal • Zugriff über: ODBC/BDE
BDE unter Win 7 64 bit
Hi,
Ich habe ein altes (ein wirklich altes) Projekt, das die BDE verwendet, um über ODBC auf einen SQL-Server zuzugreifen. Nun soll Win-XP durch Win 7(64 bit) ersetzt werden. Kein Problem eigentlich, denn es läuft ja alles super auf meinem Laptop. Nur leider nicht beim Kunden, was irgendwie logisch ist (Murphy lässt grüßen). Also: Der Kunde ist lokaler Admin, richtet eine System-DSN ein (getestet, funktioniert). Dann im BDE-Administrator den Alias einrichten, der verwendet den ODBC-DSN (getestet, funktioniert). Aber aus der Anwendung heraus kommt keine Verbindung zustande. Folgendes ist auffällig: 1. ODBC-Konfiguration lässt sich vom BDE-Administrator (rechte Maustaste auf Aliasnamen) zwar starten, funktioniert aber nicht ('Konfigurationsbutton' bleibt ohne Wirkung). 2. Die Anwendung bricht mit dem Fehler 'Unbekannter User ""' ab (also kein Username). Der Username ist in der BDE hinterlegt. Offenbar kann die Anwendung diese Einstellungen nicht aus der BDE (dem Alias) abrufen. 3. Wenn ich den User direkt in der Anwendung angebe, kommt keine Verbindung zustande, weil der Server unbekannt ist. Auch hier vermute ich, das die Anwendung den ODBC-DSN nicht aus den BDE-Einstellungen ermitteln kann. Es handelt sich also irgendwie um ein Windows-Benutzer/Rechteproblem. Aber da der Anwender angeblich lokaler Admin ist, verstehe ich das nicht so recht. Kennt jemand das Problem? Was könnte noch geprüft werden? |
AW: BDE unter Win 7 64 bit
Kann mich da dumpf dran erinnern, daß sich das abstellen ließ, indem man den Kompatibilitätsmodus der Applikation auf WinXP SP2 stellt.
Gruß GRL |
AW: BDE unter Win 7 64 bit
Ah, das probiere ich morgen mal aus. Lustigerweise funktioniert das auf meinem Laptop problemlos. Aber egal. Danke erstmal.
|
AW: BDE unter Win 7 64 bit
Wann welcher Kompatibilitätsmodus für welche Applikation unter welchen Umständen richig ist hab ich nicht durchblickt - aber meine Windows-Erfahrungen halten sich extrem in Grenzen...
GRL |
AW: BDE unter Win 7 64 bit
....ist die ODBC Verbindung unter 32Bit erstellt worden?
Wir hatten ein ähnliches Problem und nach Einrichtung der ODBC Verbindung lief alles. ODBC Einrichtung mit... C:\Windows\SysWOW64\odbcad32.exe |
AW: BDE unter Win 7 64 bit
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn man das Programm nicht mit Als Administrator ausführen startet, spielt der Status Admin keine Rolle.
Siehe Testprogramm:
Delphi-Quellcode:
Im Anhang: Source und EXE
program Test;
{$IFDEF FPC} {$mode objfpc}{$H+} {$ELSE} {$APPTYPE CONSOLE} {$ENDIF} uses SysUtils, Windows, Classes; Const SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)); SECURITY_BUILTIN_DOMAIN_RID = $00000020; DOMAIN_ALIAS_RID_ADMINS = $00000220; DOMAIN_ALIAS_RID_USERS = $00000221; DOMAIN_ALIAS_RID_GUESTS = $00000222; DOMAIN_ALIAS_RID_POWER_USERS= $00000223; function CheckTokenMembership(TokenHandle: THandle; SidToCheck: PSID; var IsMember: BOOL): BOOL; stdcall; external advapi32; function UserInGroup(Group :DWORD) : Boolean; var pIdentifierAuthority :TSIDIdentifierAuthority; pSid : Windows.PSID; IsMember : BOOL; begin pIdentifierAuthority := SECURITY_NT_AUTHORITY; Result := AllocateAndInitializeSid(pIdentifierAuthority,2, SECURITY_BUILTIN_DOMAIN_RID, Group, 0, 0, 0, 0, 0, 0, pSid); try if Result then if not CheckTokenMembership(0, pSid, IsMember) then //passing 0 means which the function will be use the token of the calling thread. Result:= False else Result:=IsMember; finally FreeSid(pSid); end; end; begin Writeln(Format('Current user is Admin %s',[BoolToStr(UserInGroup(DOMAIN_ALIAS_RID_ADMINS),True)])); Writeln(Format('Current user is Guest %s',[BoolToStr(UserInGroup(DOMAIN_ALIAS_RID_GUESTS),True)])); Writeln(Format('Current user is Power User %s',[BoolToStr(UserInGroup(DOMAIN_ALIAS_RID_POWER_USERS),True)])); readln; end. |
AW: BDE unter Win 7 64 bit
Zitat:
Ich hatte das allerdings auch als jemand die UAC deaktiviert hatte. Danach ging mit den ODBC Verbindungen nicht mehr viel. Auch die Reaktivierung hat nichts gebracht. Am Ende wurde das letzte Image zurückgespielt, die UAC blieb ganz normal an und alles lief. Zitat:
|
AW: BDE unter Win 7 64 bit
Super, sind das hier gute Denkanstöße.
Die Details kenne ich nicht, der Kunde sitzt in der Ukraine und morgen gehe ich per VNC rauf. Ich denke, da ist eine Konfusion zwischen 32 und 64 bit. Danke, ich melde mich, wenn es Fortschritte gibt. |
AW: BDE unter Win 7 64 bit
Es ist mir jetzt schon peinlich, aber die "offizielle" BDE 64bit ...
![]() (:oops::oops::oops:) |
AW: BDE unter Win 7 64 bit
Wobei ich für unsere alten BDE-Anwendungen ein Vorab-Setup geschrieben habe, das nicht nur die BDE installiert, sondern auch z.B. eine passende SHAREDMEMLOCATION abhängig vom Zielrechner ermittelt und setzt. (Die Daten aus FastMM sind dabei sehr hilfreich. ;-))
Für den ODBC Zugriff ist das aber nicht erforderlich, deshalb reicht da das normale BDE Setup. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz