Autor Beitrag
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 13.09.02 13:41 
Hallo leute
ich habe heute einen interbase server installiert. nun habe ich aber zwei fragen, da ich das ganze unter suse linux 8.1 installiert habe weiß ich nicht, wo ich einstellen muss, damit interbase beim anschalten des pcs automatisch mitgestartet wird. Ich bin leider noch ein linux neuling... *g*

Und zum zweiten, reicht es, wenn ich den interbase komponenten aus delphi eine serverip verpasse oder muss ich auch noch einen client installieren? Die clients sind dann auf windows..

danke für die antworten soweit.

gruß
ken
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 13.09.02 13:59 
Hi
den Client musst du auf jedem Rechner installieren, von dem du auf die Datenbank zugreifen willst.
Linuxspezialist bin ich auch keiner, aber vielleicht hilft dir das weiter:
Auszug aus dem Operations Guide
Zitat:

Starting the server
To start the InterBase server, log in as the 'root' or 'interbase' user. 'interbas' is a
synonym for 'interbase' to accommodate operating systems that do not support nine-character account names.)
Execute the following command:
ibmgr -start
Note Once you have started ibserver using one login, such as 'root' be aware that all objects created belong to that login. They are not accessible to you if you later start ibserver as one of the other two ('interbas' or 'interbase'). It is highly recommended to run the
InterBase Server as 'interbase'

Stopping the server
To stop the InterBase server, execute the following command:
ibmgr -shut -password SYSDBA_password
You do not need to log on as 'root' to do this.
Note Currently, the -shut command rolls back all current transactions and shuts down the server immediately. If you need to allow clients a grace period to complete work and detach gracefully, use shutdown methods for individual databases.


Hoffe das hilft dir weiter
Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
CenBells Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 13.09.02 15:42 
danke für die schnelle antwort.
Weiß jetzt noch jemand, ob ich das in die rc.config eintragen kann und dann wird das automatisch beim systemstart gestartet?
Gruß

Ken
CenBells Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Mo 16.09.02 13:59 
Titel: Habe es geschafft und könnte bei Interesse ein FAQ eintrag..
Moin leute.

Habe es am Wochenende geschafft den Interbase Server auf Suse Linux einzurichten (war doch 8.0 und nicht wie oben gesagt 8.1 *g*).
Um nun nachfolgenden leuten die Einrichtung zu erleichtern, habe ich mir überlegt, daß ich hier ein FAQ zum einrichten des Server verfassen könnte. Mit Installation auf Linux, was man lles beachten sollte. Was man benötigt, um mit Tools (IBConsole) auf den Server zuzugreifen, und wie man letztendlich Delphi einrichtet, um auf der Datenbank zu arbeiten.

Also, wenn interesse besteht, gebt an dieser Stelle bescheid.

Gruß
Ken
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mo 16.09.02 14:06 
Immer her damit :D

Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
CenBells Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Mo 16.09.02 15:40 
ok, dann werde ich mich heute an das FAQ machen und es veröffentlichen, sobald ich es für würdig erachte. *g*

Ich schätze, das ich morgen soweit bin.
Gruß
Ken
*Dawson*
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 19



BeitragVerfasst: Mo 16.09.02 18:34 
Hallöchen Ireniceus,

es gibt auch eine möglichkeit die Installation des IB-Clients auf jedem Rechner zu umgehen. Dazu musst Du ein paar Programmzeilen in Deine Anwendung einbauen. Bei mir haut das super hin...

Was brauch der Interbase Client wirklich - die gds32.dll und einen Eintrag in der "services" Datei von Windows. Die gds32.dll kopiert man einfach in den Programmordner. Die folgende Prozedur ruft man beim Programmstart auf fertig.

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
// Minimale Client Installation. Eintrag in Win Services Datei
// ________________________________________________________________________________________________________
procedure CheckGDS;
var txtDatei      : TextFile;
    strDummy,
    strWin, strBak: String;
    blnGefunden, blnAdmin   : Boolean;
    srcDatei,
    dstDatei      : TFileStream;    // Source & Destination

  // Wie lautet das Windows Verzeichnis?
  function  WinDir:String;
  var intLen:Integer;
  begin
    SetLength(Result, MAX_PATH+1);
    intLen := GetWindowsDirectory(pChar(Result), Length(Result)-1);
    SetLength(Result, intLen)
  end{WinDir};

  // Hat der User Administrationsrechte?
  function IsAdmin:Boolean;
  const cstTestKey = 'Software\CheckGDS';
  begin
    Result := False;
    with TRegistry.Create do
      try
        Rootkey:= HKEY_LOCAL_MACHINE;
        if OpenKey(cstTestKey, True) then begin
          Result := True;
          CloseKey;
          DeleteKey(cstTestKey);
        end{if};
      finally
        Free;
      end{try};
  end{GetIsAdmin};

  // Ist die GDS32.DLL verfÜgbar?
  function IsIBClient:Boolean;
  var IBLibrary: THandle;
  begin
    IBLibrary := LoadLibrary('GDS32.DLL');
    Result := IBLibrary <> 0;
    if Result then FreeLibrary(IBLibrary);
  end{IsIBClient};

begin
  blnGefunden:=False;
  // Ermittlung der Windowsversion und somit der Position der Datei "services"
  strWin:=WinDir;
  // Wo liegt die Datei services?
  if Win32Platform = VER_PLATFORM_WIN32_NT then begin
    // WinNT oder 2000
      strBak:=strWin+'\system32\drivers\etc\services_gds.bak';
      strWin:=strWin+'\system32\drivers\etc\services';
      blnAdmin:=True; // Administrationsrechte ?
  end else begin
    // Windows 95,98,ME
    strBak:=strWin+'\services_gds.bak';
    strWin:=strWin+'\services';
    blnAdmin:=True;
  end;

  // Kontrollieren der Dateiposition
  if fileExists(strWin) then begin
    AssignFile(txtDatei,strWin);
    reset(txtDatei);
    strDummy:='';
    repeat
      readln(txtDatei,strDummy);
      if POS('gds_db',strDummy)>0 then begin
        blnGefunden:=True;
        Break;
      end;
    until eof(txtDatei);
    CloseFile(txtDatei);
    if not blnGefunden then begin
    if blnAdmin then begin
        // Sicherungskopie erstellen
        srcDatei := TFileStream.Create(strWin, fmOpenRead );
        try
          dstDatei := TFileStream.Create( strBak, fmOpenWrite or fmCreate );
        except
          srcDatei.Free;
          exit;
        end;
        try
          dstDatei.CopyFrom(srcDatei, srcDatei.Size ) ;
        except
          dstDatei.Free;
          srcDatei.Free;
          exit;
        end;
        dstDatei.Free;
        srcDatei.Free;
        // gds Eintrag wird erg?zt
        AssignFile(txtDatei, strWin);
        Append(txtDatei);
        writeln(txtDatei,'gds_db           3050/tcp               # InterBase Client');
        { Hier steht Code, der ein Flush vor dem Schlie?n der Datei erfordert. }
        Flush(txtDatei);  { Sicherstellen, da?der Text tats?hlich in die Datei geschrieben wird. }
        CloseFile(txtDatei);
      end else
        MessageDlg('Sie verfÜgen nicht Über Administrationsrechte!'+#13+#10+''+#13+#10+
                   'Daher k?nen die notwendigen Eintragungen nicht durchgefÜhrt '+#13+#10+
                   'werden!'+#13+#10+''+#13+#10+'Melden Sie sich als Administrator noch einmal an!',
                   mtError, [mbAbort], 0);

    end;
  end else begin
    // services wurde nicht gefunden
    MessageDlg('Die Datei services konnte an der Position'+#13+#10+strWin+#13+#10+
               'nicht gefunden werden!', mtError, [mbAbort], 0);
    Halt;
  end;
  // GDS32.DLL kann nicht angesprochen werden
  if not IsIBClient then begin
    MessageDlg('Die Bibliothek GDS32.DLL kann nicht angesprochen werden!', mtError, [mbAbort], 0);
    Halt;
  end;
end;


Der Code stammt nicht von mir. Bin mir aber auch nicht sicher, wo ich daraf gestoßen bin... im original Quellcode waren die Pfadangaben falsch und wurden von mir angepasst...
Falls sich also der Author übergangen fühlt, bitte Mail an mich...

Marcus

_________________
Wahrscheinlich geht es auch anderes,
aber anders ist ja nicht das selbe...
CenBells Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Di 17.09.02 14:43 
@Dawson,

danke, wusste ich aber schon. Aber ich werde es natürlich berücksichtigen.

Gruß
Ken
CenBells Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Fr 20.09.02 23:23 
habe faq eintrag fertig gestellt. muss ich irgendwem bescheid sagen, oder wird der nun in die richtige Spalte verschoben?
BlackOrpheus
Hält's aus hier
Beiträge: 9



BeitragVerfasst: Di 24.09.02 20:03 
Titel: IB Zugriff
Den ganzen Plunder mit DLL selber laden kannst Du Dir schenken.
Die IB Komponenten machen das schon ganz von alleine (zumindest die von D6 Ent.)
Du musst auf den Clients auch nicht den IB Client installieren.
Es reicht vollkommen die gds32.dll entweder in das Win\System32 Verzeichnis oder in das des Programms zu packen. Alles weitere läuft wie von selbst.

In diesem Sinne ...
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Mi 25.09.02 08:33 
Hi
Zitat:

Es reicht vollkommen die gds32.dll entweder in das Win\System32 Verzeichnis oder in das des Programms zu packen.

Ja, ja und dann passierts ratzfatz, dass die Datei mehrmals oder in unterschiedlichen Versionen da ist, oder dass eine neuere durch eine ältere ersetzt wird. Und dann fang mal an Fehler zu suchen. Da hab ich beim ersten Mal Stunden gebraucht. :evil:
Mit den IB Komponenten gibts die Möglichkeit auch die Installation oder Deinstallation zu steuern. Funzt easy und es ist sichergestellt, dass alles korrekt installiert wird.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Di 31.12.02 17:38 
Hi,

LCS hat folgendes geschrieben:
Mit den IB Komponenten gibts die Möglichkeit auch die Installation oder Deinstallation zu steuern. Funzt easy und es ist sichergestellt, dass alles korrekt installiert wird.


Wo ist denn das ? Das hab ich noch nicht entdeckt. :?:

Gruß
Hansa