Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zur Laufzeit mit ADS verbinden (https://www.delphipraxis.net/17764-zur-laufzeit-mit-ads-verbinden.html)

LogoPie 9. Mär 2004 15:01


Zur Laufzeit mit ADS verbinden
 
Huhu Leutz

Ich möchte gerne schon zur Laufzeit meine Anwendung mit der Datenbank
verbinden und zwar ohne Login.

MfG Pierre

APP 9. Mär 2004 18:01

Re: Zur Laufzeit mit ADS verbinden
 
Gute Idee,
wenn Du uns noch sagen könntest wo es hapert...


Mal so nach Gefühl ein Beispiel:

AdsConnection1 -> AdsTable1 -> DataSource1 -> DBGrid1

Im onCreate Ereignis vom MainFormular:
Delphi-Quellcode:
  // Sicher ist sicher
  AdsTable1.Active := FALSE;
  WITH AdsConnection1 DO
    BEGIN
      // Kein Loginfester anzeigen
      LoginPrompt := FALSE;
      ConnectPath := 'Das Verzeichnis wo Deine Tabellen sind';
      AdsServerTypes := [stADS_LOCAL];
    END;
  WITH AdsTable1 DO
    BEGIN
      TableName := 'DeineTabelle.adt';
      Active := TRUE;
    END;
Ist natürlich extrem ausbaufähig, z.B. mit Sicherheitsabfragen
(Tabelle vorhanden, Connect fehlerhaft,...)

LogoPie 18. Mär 2004 08:44

Re: Zur Laufzeit mit ADS verbinden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin Leutz

Ich möchte mein Programm zur laufzeit mit der Datenbank verbinden bekomme aber eine Fahlermeldung was mache ich falsch.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
     PageControl1.ActivePageIndex := 0; // zeigt Statusanzeige nach dem Programm start

     DM.TInteressen.Active := False; // Schließt Tabellen
     DM.TInteressenten.Active := False;
     DM.TStatus.Active := False;
     DM.TToDoListe.Active := False;
     DM.TMitarbeiter.Active := False;
     DM.TLand.Active := False;
     DM.TWiedervorlage.Active := False;
with DM.AdsConnection1 do
    begin
      // Kein Loginfester anzeigen
      DM.AdsConnection1.LoginPrompt := FALSE;
      DM.AdsConnection1.ConnectPath := 'C:\Dokumente und Einstellungen\pierre\Desktop\Software\Datenbank '; //Verzeichnis wo die Tabellen sind
      //DM.AdsConnection1.AdsServerTypes := [stADS_REMOTE,stADS_LOCAL];
    end;
  with DM.TInteressen do
    begin
      DM.TInteressen.TableName := 'Interessen.adt'; // Tabellen Name
      Active := TRUE;
    end;

Im Anhang die Fehlermeldung

Sharky 18. Mär 2004 08:51

Re: Zur Laufzeit mit ADS verbinden
 
Muss mann bei diesem ADS die Connection nicht aktivieren?

LogoPie 18. Mär 2004 09:01

Re: Zur Laufzeit mit ADS verbinden
 
Ich weiß nicht darum schreibe ich ja ins Forum.
Habs mal so Probiert, aber die Fehlermeldung ist die gleiche

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
     PageControl1.ActivePageIndex := 0; // zeigt Statusanzeige nach dem Programm start

     DM.AdsConnection1.IsConnected :=True;
     DM.TInteressen.Active := False; // Schließt Tabellen
     DM.TInteressenten.Active := False;
     DM.TStatus.Active := False;
     DM.TToDoListe.Active := False;
     DM.TMitarbeiter.Active := False;
     DM.TLand.Active := False;
     DM.TWiedervorlage.Active := False;
with DM.AdsConnection1 do
    begin
     // DM.AdsConnection1.IsConnected :=True;
      // Kein Loginfester anzeigen
      DM.AdsConnection1.LoginPrompt := FALSE;
      DM.AdsConnection1.ConnectPath := 'C:\Dokumente und Einstellungen\pierre\Desktop\Software\Datenbank '; //Verzeichnis wo die Tabellen sind
      //DM.AdsConnection1.AdsServerTypes := [stADS_REMOTE,stADS_LOCAL];
    end;
  with DM.TInteressen do
    begin
      DM.TInteressen.TableName := 'Interessen.adt'; // Tabellen Name
      Active := TRUE;
    end;
end;

KarstenW 18. Mär 2004 16:27

Re: Zur Laufzeit mit ADS verbinden
 
Mal abgesehen davon daß der Fehler nicht von ADS ausgegeben wird.

IsConnected :=True; ist der letzte Befehl bevor die Tabellen geöffnet werden.
Du kannst doch bei einer offenen Connection nicht noch Pfade und andere grundsätzlichen Einstellungen ändern !

Loginpromp und Servertypen kannst du doch auch schon im Objektinspektor festlegen.

Und wieso schließt du die Tabellen ? Wenn die Connection nicht aktiv ist, werden alle Tabellen geschlossen. D. H. wenn du alle Tabellen schließen willst, mach die Connection zu.

noch dazugefügt:
Code:
  with DM.TInteressen do
    begin
      DM.TInteressen.TableName := 'Interessen.adt'; // Tabellen Name
      Active := TRUE;
    end;
Hast du da mit der with-Anweisung nicht doppelt gemoppelt ?

Und um noch mal auf die erste Antwort von APP zurückzukommen:
Code:
  If DM.AdsConnection1.IsConnected = True then DM.AdsConnection1.IsConnected := false;
sollte deine erste Zeile sein um sicher zu gehen.


Karsten


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:56 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