text: delphi - Delphi Client-Server-Anwendung mit Firebird 2.5 embedded connection error
  Delphi Client-Server-Anwendung mit Firebird 2.5 embedded connection error
  Ich habe eine langwierige Frage zu stellen. Zunächst Im noch sehr neu, wenn es um Delphi-Programmierung und meine Erfahrung ist, beem meist der Entwicklung kleiner single-user-Datenbankanwendungen mit ADO und einer Access-Datenbank.
  Muss ich an den übergang nun eine client-server-Anwendung und das ist, wo das problem beginnt. Ich habe mich für Firebird 2.5 eingebettet sind, wie meine Datenbank, es ist open source, und es kann verwendet werden, mit den interbase-Komponenten in Delphi und das mehrere clients können auf die Datenbank gleichzeitig. Also folgte ich den interbase-tutorial in Delphi. Ich schaffte den Anschluss der client an den server und die Daten im Beispiel (Während Sie beide Programme auf meinem pc), aber wenn ich versuchte, Sie zu bewegen Sie den client auf einem pc, halten die server auf meine und ausgeführt, um zu sehen, wenn ich zum server herstellen können, es gab mir die folgende Fehlermeldung.
  Ausnahme EIdSocketError in-Modul clientDemo.exe bei 0029DCAC. Socket-Fehler # 10061 Verbindung abgelehnt.
  Ich verstehe, dass dies sein könnte, weil der host ist definiert als localhost auf dem client. Aber hier ist meine erste Frage. In der TSQLConncetion Sie können sterben hostname unter Fahrer->Hostname. Das, was ich wissen will ist, wie machst du diese zur Laufzeit, wie ich nicht die Eigenschaft, wenn ich versuchen und machen ein edit-Feld, um dem Benutzer zu ermöglichen, geben Sie den Wert und stellen ihn dann über den code, wie zum Beispiel:
  SQLConncetion1.- Treiber.Hostname := edtHost.text;
  Dies kann nicht getan werden, auf diese Weise, und der einzige Weg den ich sehe man kann den Hostnamen mit dem Objekt-Inspektor, das ist aber nicht zur Laufzeit verfügbar und ich brauche, um den Hostnamen an den client, wenn das Programm das erste mal ausgeführt wird, so, wie Sie den Hostnamen/IP-Adresse zur Laufzeit?
  Im mit Delphi XE2
  Gibt es noch eine Menge Fragen kommen, besonders wenn es um die Bereitstellung, aber ich werde diese Stück für Stück und ich Schätze die Beratung.
  Nicht das Rad neu erfinden. Sie haben unsere Open-Source-Client-Server-ORM mit Service-Orientierten-Architektur JSON-und SQLite3 mit dem Namen mORMot. Zumindest lohnt ein Blick auf den code oder Lesen Sie die 700-Seiten-Dokumentation, um einige design und die Implementierung von Ideen.
  InformationsquelleAutor Japster | 2011-11-26
  Eingebettet sind, können nicht verwendet werden, die von mehreren Benutzern zur selben Zeit (auch wenn es zwei Anwendungen auf dem gleichen Rechner). Sehen hier für Informationen über die Unterschiede zwischen den drei Versionen. Es gibt auch Informationen in einem anderen ALSO Frage, die helfen könnten.
  Soweit die Angabe einer server-zur Laufzeit kann dies helfen:
  Conn := TSQLConnection.Create(Self);
  Conn.DriverName := 'FirebirdConnection';
  // Replace the dbname in the next line with the
  // value obtained at runtime, as  in
  // Conn.Params.Add('Database=' + YourNewPathAndDBName);
  Conn.Params.Add('Database=C:\FireBirdData\YourDB.fdb');
  ShowMessage('Connection successfully made to DB');
  Vielen Dank für den obigen code, aber das tun Sie nicht haben, um den Hostnamen als gut, so dass die Kunden wissen, wo der server? Oder müssen Sie name den Hostnamen localhost?
  Für embedded -, gibt es keine Notwendigkeit für hostname, wie es kann nur zugegriffen werden, indem eine Anwendung/Verbindung zu einer Zeit. Bitte besuchen Sie den ersten link, den ich zur Verfügung gestellt, um die Unterschiede zwischen den drei Arten von FireBird-Servern (Classic, Superserver und Embedded); es gibt eine Tabelle, die erläutert, die Unterschiede zwischen Ihnen.
  schau mal hier connectionstrings.com/firebird ich habe nicht verwendet firebird, aber ich glaube, "Datasource=IP-ADRESSE" Hinzugefügt werden muss als parameter
  nicht für embedded. Der code, den ich gepostet funktioniert gut, verbinden und keine IP-Adresse zu löschen.
  Vielen Dank für die Ratschläge ich werde versuchen Sie es und kommen zurück mit mehr Fragen
  Ich fühle mich wirklich dumm jetzt, aber ich habe erst jetzt realisiert, dass die embedded-version ist, nur wenn die Datenbank sich auf dem pc, auf dem die Anwendung ausgeführt wird, auf. Also ich hätte Verwendung der superserver, classic oder supoerclassic server. Aber wie schwierig ist es zu implementieren?