AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Neu Firebird Datenbank wird auf Server nicht angelegt

Neu Firebird Datenbank wird auf Server nicht angelegt

Ein Thema von Chemiker · begonnen am 30. Apr 2020 · letzter Beitrag vom 3. Mai 2020
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.833 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Neu Firebird Datenbank wird auf Server nicht angelegt

  Alt 30. Apr 2020, 20:06
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
Hallo,

mit folgenden Quellcode will ich eine neue Firebird Datenbank auf einen MS Server anlegen:

Delphi-Quellcode:
procedure TfrmFirebird_DB_anlegen.DB_anlegen(ServerName, DatenbankOrdner,
   DatenbankFileName: String; var DB: TIBCConnection);
begin
  if not FileExists(DatenbankOrdner+DatenbankFileName) then
  begin
    DB:= TIBCConnection.Create(NIL);
    try
      try
        DB.database := ServerName + ':' + DatenbankOrdner + DatenbankFileName;
        DB.SQLDialect := 3;
        DB.Params.Clear;
        DB.Params.Add('USER "SYSDBA"');
        DB.Params.Add('PASSWORD "masterkey"');
        DB.Params.Add('PAGE_SIZE 16384');
        DB.LoginPrompt:= FALSE;
        DB.CreateDatabase;
        DB.Connected := FALSE;
      except
        on E: exception do
          Showmessage(E.ClassName + ': ' + E.Message);
      end;
   finally
     DB.Free;
   end;
  end;
end;

Ich habe 2 VMs laufen:

Auf der 1 VM läuft MS Vista mit BDS 2006, die IBDAC Komponenten sind neu von mir installiert worden. Wenn ich den Quellcode ausführe, so wird die neue Datenbank auf den Server abgelegt.

Auf der 2 VM läuft MS Windows 10 mit Delphi 10.3 es ist die gleiche Version der IBDAC Komponente installiert. Allerdings wenn ich den gleichen Quellcode ausführe bekomme ich folgende Fehlermeldung sieh unten.

Wenn die Datenbank einmal angelegt ist, kann man von beiden VMs eine neue Tabelle ohne Probleme auf den Server anlegen.

Meine Frage ist: Warum ist das so und wie kann man das abstellen kann?

Bis bald Chemiker
Miniaturansicht angehängter Grafiken
fehlermeldung-db-anlegen.png  
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.833 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Neu Firebird Datenbank wird auf Server nicht angelegt

  Alt 2. Mai 2020, 11:30
Hallo zusammen,

nach langem rumprobieren, bin ich auf folgende Lösung gekommen.
In der Hilfe von Devart steht:
To connect to an InterBase database on a remote server using TCP/IP the syntax is <server_name>:<filename>.
To connect to an InterBase database on a remote server using NetBEUI, the syntax is: \\<server_name>\<filename>.
To connect to an InterBase database on a remote server using SPX, the syntax is: <server_name>@<filename>.

ich bin aus diesem Grund davon ausgegangen das die Verbindung mit TCP/IP die Richtige ist.
Das funktioniert aber nur bei Vista mit BDS 2006 (<server_name>:<filename>).

Unter Windows 10 Pro muss der Aufruf mit NetBNEUI erfolgen (\\<server_name>\<filename>).
Es macht auch keinen Unterschied, ob der Server <localhost> ist, auch dann funktioniert die Anlage der Datenbank nur mit NetBNEUI.
Das scheint bei allen Windows 10 Pro (64Bit) -Rechner so zu sein (beim Laptop das gleiche Ergebnis).
Übrigens:
Die Interbase – Komponenten von Delphi verhalten sich genauso, man bekommt nur mit dem NetBEUI-Aufruf eine neue Datenbank angelegt.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.844 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: Neu Firebird Datenbank wird auf Server nicht angelegt

  Alt 2. Mai 2020, 11:44
Also entweder MS hat wieder eine Leiche aus dem Keller geholt oder da stimmt irgendwas nicht.
Bis eben dachte ich, NETBUI sei vorgestern.
Gruß, Jo
  Mit Zitat antworten Zitat
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.196 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Neu Firebird Datenbank wird auf Server nicht angelegt

  Alt 2. Mai 2020, 12:47
Also, ich habe das letztens gerade auch benötigt.
Bei mir funtioniert es so:

Delphi-Quellcode:
procedure TfrmMain.Button2Click(Sender: TObject);
begin
  //IBOCreateDatabase;
  IBCCreateDatabase('d:\db\testibc.fdb');
end;

procedure TfrmMain.IBCCreateDatabase(const ADBName: string);
begin
  // Erzeugen
  IBCAdmin.Database := ADBName;
  IBCAdmin.Server := '127.0.0.1';
  IBCAdmin.LoginPrompt := False;
  IBCAdmin.Port := '3053';

  IBCAdmin.ClientLibrary := 'fbclient.dll';
  IBCAdmin.Params.Clear;
  IBCAdmin.Params.Add('USER ''SYSDBA''');
  IBCAdmin.Params.Add('PASSWORD ''masterkey''');
  IBCAdmin.Params.Add('PAGE_SIZE 16384');
  IBCAdmin.Params.Add('DEFAULT CHARACTER SET NONE');
  //IBCConnection.Params.Add('COLLATION UNICODE_CI');
  IBCAdmin.CreateDatabase;
  // Script
  IBCConnection.Database := ADBName;
  IBCConnection.ClientLibrary := 'fbclient.dll';
  IBCScript.SQL.LoadFromFile('akten.sql');
  IBCScript.Connection := IBCConnection;
  IBCConnection.Connected := True;
  IBCScript.Execute;
end;
Windows 10, 64 bit (kene VM) - getestet mit FB 2.59 und 3.05

Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.833 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Neu Firebird Datenbank wird auf Server nicht angelegt

  Alt 2. Mai 2020, 12:57
Hallo dataspider,

wie sieht ADBName aus?

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.196 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Neu Firebird Datenbank wird auf Server nicht angelegt

  Alt 2. Mai 2020, 13:11
steht im Beitrag in Button2Click...

Frank

[EDIT] seh einen Unterschied eigentlich nur in den Paremetern (einfaches vs. doppeltes Hochkomma)
Frank Reim

Geändert von dataspider ( 2. Mai 2020 um 13:14 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von IBExpert
IBExpert

Registriert seit: 15. Mär 2005
460 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Neu Firebird Datenbank wird auf Server nicht angelegt

  Alt 2. Mai 2020, 14:58
Am Aufbau vom connectionstring liegt das garantiert nicht, netbeui ist garantiert nicht erforderlich.

Immer wieder als Grund tauchen irgendwo steinalte interbase gds32.dll im suchpfad auf, die von manchen
Komponenten als Standard genommen werden oder wenn man eine passende 32bit oder 64bit version der
fbclient dll schon in den richtigen pfaden ggf auch als kopierte gds32.dll abgelegt hat, fehlen
manchmal auch nur die dafür erforderlichen msvc*.dll in der zur fbclient dll passenden version.
Die sich darauf ergebenden Fehlermeldungen können manchmal abstrus sein
Holger Klemt
www.ibexpert.com - IBExpert GmbH
Oldenburger Str 233 - 26203 Wardenburg - Germany
IBExpert and Firebird Power Workshops jederzeit auch als Firmenschulung
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
527 Beiträge
 
#8

AW: Neu Firebird Datenbank wird auf Server nicht angelegt

  Alt 2. Mai 2020, 15:36
Chemiker,

stell sicher, dass deine Clientanwendung die Firebird gds32.dll/fbclient.dll verwendet, idealerweise matched diese auch die Version des Firebird Servers.

Für mich klingt es so, wie bereits von Holger erwähnt, dass deine Clientanwendung eine InterBase gds32.dll von deiner Delphi-Installation verwendet.

LG
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.833 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Neu Firebird Datenbank wird auf Server nicht angelegt

  Alt 2. Mai 2020, 18:07
Hallo,

auf dem Server läuft nur Firebird 2.5. Es wird die fbclient.dll eingebunden die auf den Server installiert worden ist. Ich habe den Port auf 3055 auf den Server umgestellt. Die Datenbank wird mit:

DB.database := '\\XXXDATENSERVER\d:\db\EO_Liste\HPLPRG2020.FDB'; angelegt.

Mit:
DB.database := 'XXXDATENSERVER:d:\db\EO_Liste\HPLPRG2020.FDB'; wird sie nicht angelegt.

Delphi-Quellcode:
procedure TfrmFirebird_DB_anlegen.DB_anlegen(ServerName, DatenbankOrdner,
   DatenbankFileName: String; var DB: TIBCConnection);
begin
  DB:= TIBCConnection.Create(NIL);
  try
    try
      DB.Port := '3055';
      DB.ClientLibrary := 'C:\Users\Internet\Documents\Embarcadero\Studio\Projekte\DB_anlegen\fbclient.dll';

      // Mit diesem Aufruf wird die Datenbank angelegt
      DB.database := '\\XXXDATENSERVER\d:\db\EO_Liste\HPLPRG2020.FDB';

      // Mit diesem Aufruf wird die Datenbank nicht angelegt
      //DB.database := 'XXXDATENSERVER:d:\db\EO_Liste\HPLPRG2020.FDB';

      DB.SQLDialect := 3;
      DB.Params.Clear;
      DB.Params.Add('USER "SYSDBA"');
      DB.Params.Add('PASSWORD "masterkey"');
      DB.Params.Add('PAGE_SIZE 16384');
      DB.LoginPrompt:= FALSE;
      DB.CreateDatabase;
      DB.Connected := FALSE;
    except
      on E: exception do
         Showmessage(E.ClassName + ': ' + E.Message);
      end;
  finally
    DB.Free;
  end;
 end;



Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.237 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: Neu Firebird Datenbank wird auf Server nicht angelegt

  Alt 2. Mai 2020, 18:23
nur mal so ne Idee:
Vista verwendet IPv4, Windows 10 ggf. schon IPv6 und damit fällt Firebird 2.5 auf die Nase, erst FB 3 kann sich per IPv6 verbinden.

Also versuch mal zumindest auf dem Server IPv6 zu deaktivieren und nimm für den Verbindungsaufbau bitte mal die IP des Servers her.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf