AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi BDE unter Win 7 64 bit
Thema durchsuchen
Ansicht
Themen-Optionen

BDE unter Win 7 64 bit

Ein Thema von Furtbichler · begonnen am 18. Nov 2013 · letzter Beitrag vom 5. Dez 2016
Antwort Antwort
Seite 1 von 2  1 2      
Furtbichler
(Gast)

n/a Beiträge
 
#1

BDE unter Win 7 64 bit

  Alt 18. Nov 2013, 19:42
Datenbank: SQL-Server • Version: egal • Zugriff über: ODBC/BDE
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?
  Mit Zitat antworten Zitat
grl

Registriert seit: 5. Feb 2007
174 Beiträge
 
FreePascal / Lazarus
 
#2

AW: BDE unter Win 7 64 bit

  Alt 18. Nov 2013, 19:44
Kann mich da dumpf dran erinnern, daß sich das abstellen ließ, indem man den Kompatibilitätsmodus der Applikation auf WinXP SP2 stellt.

Gruß
GRL
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: BDE unter Win 7 64 bit

  Alt 18. Nov 2013, 19:52
Ah, das probiere ich morgen mal aus. Lustigerweise funktioniert das auf meinem Laptop problemlos. Aber egal. Danke erstmal.
  Mit Zitat antworten Zitat
grl

Registriert seit: 5. Feb 2007
174 Beiträge
 
FreePascal / Lazarus
 
#4

AW: BDE unter Win 7 64 bit

  Alt 18. Nov 2013, 19:55
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
  Mit Zitat antworten Zitat
wbibb

Registriert seit: 15. Okt 2004
Ort: Ibbenbüren
3 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: BDE unter Win 7 64 bit

  Alt 18. Nov 2013, 20:08
....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
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#6

AW: BDE unter Win 7 64 bit

  Alt 18. Nov 2013, 20:13
Wenn man das Programm nicht mit Als Administrator ausführen startet, spielt der Status Admin keine Rolle.

Siehe Testprogramm:

Delphi-Quellcode:
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.
Im Anhang: Source und EXE
Angehängte Dateien
Dateityp: zip CTM.zip (53,7 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.589 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: BDE unter Win 7 64 bit

  Alt 18. Nov 2013, 20:21
....ist die ODBC Verbindung unter 32Bit erstellt worden?
Ja, ein beliebter Fehler, ODBC-Datenquellen einrichten heißt der Eintrag in der Verwaltung, aber dahinter muss man dann aufpassen, dass man 32-Bit oder 64-Bit, je nach Programm nimmt.

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.

Wann welcher Kompatibilitätsmodus für welche Applikation unter welchen Umständen richig ist hab ich nicht durchblickt
Es sollte die höchste Windowsversion als Kompatibilitätsmodus eingestellt werden, bei der die Funktion, die nun nicht mehr funktioniert, noch drin war. Im Zweifelsfall eine, bei der man weiß, dass es lief. Zudem gibt es dafür auch eine entsprechende Doku.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#8

AW: BDE unter Win 7 64 bit

  Alt 18. Nov 2013, 22:21
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.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: BDE unter Win 7 64 bit

  Alt 19. Nov 2013, 00:29
Es ist mir jetzt schon peinlich, aber die "offizielle" BDE 64bit ... http://cc.embarcadero.com/item/27573
()
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.589 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: BDE unter Win 7 64 bit

  Alt 19. Nov 2013, 06:27
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz