AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Interbase

Offene Frage von "MasterBasti"
Ein Thema von MasterBasti · begonnen am 28. Nov 2005 · letzter Beitrag vom 3. Dez 2005
Antwort Antwort
MasterBasti

Registriert seit: 3. Jun 2004
22 Beiträge
 
#1

Interbase

  Alt 28. Nov 2005, 08:47
Datenbank: Interbase • Version: 7 • Zugriff über: IBComponenten
Hallo zusammen,

irgendwie ist es mir nicht möglich gleichzeitig zur Laufzeit mit 2 verschiedenen Rechnern auf einen DAtenbank zuzugreifen....
Der erste Rechner kann Problemlos mit meinem Programm zur DB connecten. Geht auch ganz flott, jedoch schafft ein 2ter
Rechner das gleiche zur selben Zeit nicht, das programm lädt und lädt und lädt und es passiert einfach nichts....

Wenn ich jedoch aus Delphi direkt versuche einen Connect zur DB herzustellen, obwohl noch ein anderer User connected ist,
dann klappt es... Aber nur in der Entwurfsphase, während der Laufzeit sieht das dann wieder schlecht aus...

Muss ich noch irgendetwas beachten ?
Freigeben, etc ?

Bitte dringend um Hilfe...

Gruß

MasterBasti

[Edit]
Habe noch etwas rausgefunden.
Folgendes wird ausgeführt, nachdem ich mich erfolgreich angemeldet habe:

Delphi-Quellcode:
if Edit1.Text = DataModule1.IBBenutzer.FieldByName('Passwort').AsString then begin
  Form9.ModalResult := mrok;
  DataModule1.IBBenutzer.Edit;
  DataModule1.IBBenutzer.FieldByName('LastLogin').AsDateTime := Date;
  DataModule1.IBBenutzer.Post;
  //Form10.Close;
  end else begin
  Inc(i);
  Edit1.Clear;
  Messagedlg('Falsches Passwort, bitte versuchen Sie es nochmal!',mterror, [mbok],0);
Nach diesem Schritt kann ich mich dann übrigens auch mit keinem anderen Benutzer mehr in die Tabelle
IBBenutzer einloggen. Ich muss also was freigeben, aber was ?
  Mit Zitat antworten Zitat
MasterBasti

Registriert seit: 3. Jun 2004
22 Beiträge
 
#2

Re: Interbase

  Alt 28. Nov 2005, 08:50
Achja, das steht übrigens für das öffnen der DB und der Tabellen....

Delphi-Quellcode:
DataModule1.IBDatabase1.Connected := False;

DataModule1.IBDatabase1.Connected := True;

DataModule1.IBTransaction1.Active := True;
DataModule1.StammdatenD.Active := True;
DataModule1.DomainpreiseDB.Active := True;
DataModule1.AuftragDB.Active := True;
DataModule1.AuftragDB.FetchAll;
DataModule1.KundenDB.Active := True;
DataModule1.KundenDB.FetchAll;
DataModule1.DomainDB.Active := True;
DataModule1.DOMAINDB.FetchAll;
DataModule1.RechnungDB.Active := True;
DataModule1.RECHNUNGDB.FetchAll;
DataModule1.ServerDB.Active := True;
DataModule1.SERVERDB.FetchAll;
DataModule1.PaketDB.Active := True;
DataModule1.PAKETDB.FetchAll;
DataModule1.BeuzugsquellenDB.Active := True;
DataModule1.Auftragssuche.Active := True;
DataModule1.Drucken.Active := True;
DataModule1.Kundensuche.Active := True;
DataModule1.Ibbenutzer.active := True;
DataModule1.IBBenutzer.FetchAll;

DataModule1.Tempauftrag.Active := True;
DataModule1.Tempdrucker.Active := True;
DataModule1.Zugangsdaten.Active := True;
DataModule1.NachrichtenDB.Active := True;

DataModule1.ZTable2.Active := True;
DataModule1.RechnungenExtDB.Active := True;
DataModule1.LogindatenDB.Active := True;
DataModule1.Kundendaten.Active := True;
DataModule1.NewsDB.Active := True;
DataModule1.Auftragsdaten.Active := True;
  Mit Zitat antworten Zitat
GeraldK

Registriert seit: 9. Nov 2005
11 Beiträge
 
Delphi 2 Client/Server
 
#3

Re: Interbase

  Alt 28. Nov 2005, 12:18
Hallo,


welche IB Version ist im Einsatz ?
Denn mit der Single User (Desktopversion) wird ein weiterer connect wahrscheinl. Probleme machen.

LG
Gerald
  Mit Zitat antworten Zitat
MasterBasti

Registriert seit: 3. Jun 2004
22 Beiträge
 
#4

Re: Interbase

  Alt 28. Nov 2005, 12:55
Interbase 7.5 (sollte eine ServerEdition sein)
Diese Version ist zumindestens in der Anzahl der Benutzer nicht beschränkt, sodass dies
keine Probleme darstellen sollte. Ich vermute vielmehr, dass es mit den Transactions zusammenhängt,
da ich erst nicht mehr auf eine bestimmte Tabelle zugreifen kann, wenn Ihr Daten mittels (Insert/Post) zugefügt wurden.
  Mit Zitat antworten Zitat
Benutzerbild von Garby
Garby

Registriert seit: 17. Mär 2003
Ort: Tirol
199 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Interbase

  Alt 28. Nov 2005, 13:16
Wie sieht denn dein ConnectionString aus?
Walter
Wenn zwei dasselbe tun, ist es noch lange nicht dasselbe
(Adelphi)
  Mit Zitat antworten Zitat
MasterBasti

Registriert seit: 3. Jun 2004
22 Beiträge
 
#6

Re: Interbase

  Alt 29. Nov 2005, 13:34
DB-Einstellungen
user_name=SEBASTIAN
password=*******
lc_ctype=ISO8859_1
sql_role_name=3

Databasename
Ghostings-c2:c:\DB\DATA.GDB
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Interbase

  Alt 29. Nov 2005, 15:51
Zitat von MasterBasti:
Achja, das steht übrigens für das öffnen der DB und der Tabellen....
Delphi-Quellcode:
DataModule1.IBDatabase1.Connected := False;
DataModule1.IBDatabase1.Connected := True;
DataModule1.IBTransaction1.Active := True;
... u.s.w.
Das ist ja grausam.
Du öffnest alle Abfragen (oder noch schlimmer alle Tabellen) ohne zu beachten, ob die Datasets überhaupt schon benötigt werden.
Wenn du dies schon tun musst, dann solltest du eine Methode im Datenmodul haben,
die dies lokal erledigt:
Delphi-Quellcode:
procedure TDataModule1.OpenAllQueries;
begin
   IBTransaction1.Active := True;
   ...
end;
Ein Datenmodul ist nicht nur ein Container für Datenbankkomponenten, sondern muss auch Methoden haben, um zumindest eine gewisse Kapselung zu erhalten !!
Andreas
  Mit Zitat antworten Zitat
MasterBasti

Registriert seit: 3. Jun 2004
22 Beiträge
 
#8

Re: Interbase

  Alt 29. Nov 2005, 16:00
Hallo shmia,

was soll unten stehende Methode bewirken ?
Sorry der blöden Fragen

Aber man könnte das aktiveren der Transaction doch dann auch einmal am Anfang machen und nicht
in jedem meiner 20 DatenModule wieder neu ??!?!?!?!

Gruß und danke

MAsterBasti
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: Interbase

  Alt 29. Nov 2005, 16:22
Zitat von MasterBasti:
was soll unten stehende Methode bewirken ?
Sorry der blöden Fragen
Du hast eine Klasse vom Typ TDataModule1.
Davon gibt es eine Instanz namens DataModule1.
Stell dir vor es gäbe mehr davon:
Delphi-Quellcode:
var
   DataModule1A, DataModule1B, DataModule1C : TDataModule;
Dann stell du müsstest jetzt mit jedem der 3 Objekte das Gleiche machen; nämlich 10 Tabellen öffnen.
Wie würdest du dann vorgehen ?? So doch wohl nicht, oder ?
Delphi-Quellcode:
DataModule1A.Tabelle1.Open;
...
DataModule1A.Tabelle10.Open;
DataModule1B.Tabelle1.Open;
...
DataModule1B.Tabelle10.Open;
DataModule1C.Tabelle1.Open;
...
DataModule1C.Tabelle10.Open;
Du siehst, extrem viel Schreibarbeit. Sollte eine Tabelle dazukommen, dann kann man leicht eine Anweisung für ein Objekt vergessen und schon ist der Fehler da.
Ein schlauer Programmierer würde dann nur schreiben:
Delphi-Quellcode:
DataModule1A.OpenAllQueries;
DataModule1B.OpenAllQueries;
DataModule1C.OpenAllQueries;
Andreas
  Mit Zitat antworten Zitat
MasterBasti

Registriert seit: 3. Jun 2004
22 Beiträge
 
#10

Re: Interbase

  Alt 3. Dez 2005, 12:33
Ich verstehe.... haste du auch wieder Recht.... weiß auch nicht, warum ich das jetzt nicht gemacht habe....
Danke auf jeden Fall für diesen Hinweis..
  Mit Zitat antworten Zitat
Antwort Antwort


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 20:02 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