Announcement

Collapse
No announcement yet.

Clientzugriffsprobleme MSSQL 6.5 --> 2000

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Clientzugriffsprobleme MSSQL 6.5 --> 2000

    Hallo!
    Ich habe hier ein Problem, das mich davon abhält, meinen Urlaub antreten zu durfen.

    Situation:
    Kunde hat ein Warenwirtschaftssystem das damals mit Delphi 3 Client/Server Suite für MSSQL 6.5 entwickelt wurde. Das Programm wurde zu Pflege an mich übergeben, die Vorgängerfirma kann mir leider keinen Support leisten.

    Wegen der Serverumstellung auf Windows 2003 Server musste leider auch ein neuer SQL Server her, da der alte und 2003 nicht läuft.

    Es gab einige Probleme mit ein paar Sachen ("Primär-Index nicht gefunden"), doch auf meinem Programmier-Laptop (also kein Kunden-Client) mit Windows-XP und Delphi 6 kann ich mich soweit verbinden.

    Die Kunden-PC benutzen noch Windows NT und Windows 2000, und haben jeweils auch Delphi 3 installiert, damit sie die BDE verfügbar haben (warum muss das sein?).

    Jetzt das PROBLEM:
    Alle Kunden PCs koennen sich nicht mit dem neuen Server verbinden!

    Auf einem Windows 2000 PC habe ich schon einmal Delphi 7.0 Enterprise (die 6.0 hab ich im Moment nicht da!) installiert. Wenn ich in der BDE in der Systemsteuerung eine Datenbank eintrage (z.b. mit dem Namen "Sql") und die speichern will, meckert der z.B. "Name zu ungenau" oder sowas", und das Programm funktioniert also dann weder mit dem alten noch mit dem neuen Server.

    Warum geht das bei mir unter XP und nicht bei denen unter 2000 und NT? Brauchen die auch alle Delphi 6 oder die neue BDE (gibts die einzeln, wenn ja, wo?), kann ich das sonst irgendwie umstellen dass der keine BDE mehr braucht und sich direkt auf SQL verbindet oder sonstwas? Was haben die Einträge in der BDE in der Systemsteuerung mit der Komponente in Delphi zu tun? Was könnte ich wo noch einstellen?

    Ich bin für alle Tips dankbar!

  • #2
    .. und haben jeweils auch Delphi 3 installiert, damit sie die BDE verfügbar haben (warum muss das sein?).

    Wenn Du die BDE in deinem Programm verwendest mußt Du die BDE auch installieren. Das Du Delphi 3 installiert ist aber nicht nötig. Hierfür gibt es Tools wie Installshield, welche eine aktuelle BDE z.B. mittels BDE-Merge-Module installieren können.

    .. Jetzt das PROBLEM: Alle Kunden PCs koennen sich nicht mit dem neuen Server verbinden!

    Welcher genauer Zugriffsweg wird verwendet? BDE über ODBC oder BDE über SQL-Links? Da die SQL-Links auf die alte 6.5-Native-Schnittstelle zugreifen und diese ab dem SQL-Server 7.0 von MS zum alteisen gelegt wurde. Such im Forum nach "SQL-Links MS" und du findest noch weitere Infos bzw. unter http://info.borland.com/devsupport/sqllinks/

    ... ich in der BDE in der Systemsteuerung eine Datenbank eintrage (z.b. mit dem Namen "Sql") und die speichern will, meckert der z.B. "Name zu ungenau" oder sowas"

    Was machst Du <b>genau</b>?

    .. Warum geht das bei mir unter XP und nicht bei denen unter 2000 und NT?

    Wahrscheinlich fehlen noch einige Treiber (evtl. der alte MS-SQL-DBLib-Treiber).

    ... Brauchen die auch alle Delphi 6 oder die neue BDE (gibts die einzeln, wenn ja, wo?),

    Delphi 6 brauchen die definitiv nicht (oder willst Du für jeden Client 800€ D6-Lizenzkosten ausgeben). Aktuelle BDE findest Du unter http://info.borland.com/devsupport/bde/bdeupdate.html

    .. kann ich das sonst irgendwie umstellen dass der keine BDE mehr braucht und sich direkt auf SQL verbindet oder sonstwas?

    Unter D3 wird die einfachste Möglichkeit sein auf einen ODBC-Eintrag umzustellen, um das Problem mit den SQL-Links zu lösen. BDE ist aber immer noch nötig, aber der Umstellungsaufwand ist gering.

    Ab D5 (Pro) gibt es die Möglichkeit mittels ADOExpress auf eine MS-SQL-Datenbank zuzugreifen (würde zwar auch unter D3 mit den direkten ADO-Komponenten gehen, jedoch ohne den Komfort von DB-Gebundenen Controls). Der umstellungsaufwand hält sich in grenzen, aber du bist die BDE los (mußt jedoch sorgen das die ADO-Komponenten installiert sind (Version 2.5 sollte reichen http://www.microsoft.com/downloads/details.aspx?FamilyID=c57692e9-dde7-4a60-b586-5d4fd6794db6&DisplayLang=en), sind wahrscheinlich schon auf den meisten deiner Kunden-PC's installiert

    Comment


    • #3
      Danke soweit.

      -Ich benutze eine TDatabase und verbinde mich mit "MSSQL" (Option Drivername), da in der Liste leider nix mit ODBC steht, höchstens noch SQL-Server, aber damit funktioniert das nicht.

      -Wie geht das mit der Umstellung zu ADO? Muss ich da alle 200 Tables und Abfragen neu erstellen oder kann ich einfach "quasi" die TDatabase-Komponente austauschen?

      -Bei der BDE habe ich versucht, die Einstellungen genauso wie auf meinem Laptop einzutragen, wie gesagt, er speichert nicht.

      Typ MSSQL
      Databasename db_abc
      Enable BCD true
      Enable Schema Cache true
      hostname server01
      server name server01
      sqlqrymode <nix>
      username <username&gt

      Comment


      • #4
        Ich benutze eine TDatabase und verbinde mich mit "MSSQL" (Option Drivername), da in der Liste leider nix mit ODBC steht, höchstens noch SQL-Server, aber damit funktioniert das nicht.

        MSSQL ist der "Aliasname" für den SQL-Links-Treiber. Willst Du über ODBC gehen, so mußt Du im ODBC-Manager einen entsprechenden Eintrag erzeugen. Dieser wird dir dann bei der TDatabase-Komponente angeboten.

        -Wie geht das mit der Umstellung zu ADO? Muss ich da alle 200 Tables und Abfragen neu erstellen oder kann ich einfach "quasi" die TDatabase-Komponente austauschen?

        Du mußt TDatabase -> TADOConnection, TTable -> TAdoTable (besser TAdoDataset) und TQuery -> TAdoQuery (besser TAdoDataset) umstellen. Ist alle doch einiges an Umstellungsauswand. Ist jedoch nichts vor einem Urlaub (Da ja noch einige Tests gemacht werden müssen).

        -Bei der BDE habe ich versucht, die Einstellungen genauso wie auf meinem Laptop einzutragen, wie gesagt, er speichert nicht.

        Typ MSSQL Databasename db_abc Enable BCD true Enable Schema Cache true hostname server01 server name server01 sqlqrymode <nix> username <username>

        Mit dem SQL-Links (bzw. allgemein mit den SQL-Links) kenn ich micht nicht aus (hatte niemals damit zu tun)

        Comment

        Working...
        X