Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Keine Verbindung zu dBase über Netzwerk (https://www.delphipraxis.net/136155-keine-verbindung-zu-dbase-ueber-netzwerk.html)

Svenkan 24. Jun 2009 17:01

Datenbank: dBase • Zugriff über: TSQL

Keine Verbindung zu dBase über Netzwerk
 
Liste der Anhänge anzeigen (Anzahl: 3)
Ich habe das Problem, dass, falls über das Netzwerk auf eine entsprechende dBase-Datei zugegriffen werden muss, keine Verbindung aufgebaut werden kann und das Programm dementsprechend mit lauter Fehlermeldungen den Start verweigert. Das ist ein riesiges Problem, weil dieser Fall sehr oft eintritt.
Gibt es eine entsprechende Einstellung für dBase-Datenbanken oder wie lässt sich dieses Problem lösen?

Entsprechende Code-Stellen im Programm:

Delphi-Quellcode:
 if DirectoryExists(path) then begin
  Session.NetFileDir:=prgmpath+pdir;
  Session.PrivateDir:=prgmpath+pdir;
 end;
Delphi-Quellcode:
if (neuer_pfad) OR (neues_schuljahr) then begin
  for i := 1 to 33 do begin
    Application.ProcessMessages;
    TQuery(FindComponent('Query'+inttostr(i))).Close;
    TQuery(FindComponent('Query'+inttostr(i))).DatabaseName := path;
    //TQuery(FindComponent('Query'+inttostr(i))).Open;
  end;
Beispiel für 'Einrichten' eines Querys:
Delphi-Quellcode:
  Query1.Close;
  Query1.SQL.Text := 'SELECT * FROM "VT'+sj+'"';
  Query1.SQL.Add('WHERE S NOT IN ("M","E","H") '+abteilung+SchPlKKA_Str+' AND DATUM=:today');
  Query1.SQL.Add('ORDER BY '+order1);
  Query1.ParamByName('today').Value := today;
  Query1.Open;
Entsprechende Fehlermeldung im Anhang!

/edit: Anbei nochmal Objektinspektor/-hierarchie von Session1 und Query1!

hoika 24. Jun 2009 17:59

Re: Keine Verbindung zu dBase über Netzwerk
 
Hallo,

Delphi-Quellcode:
if DirectoryExists(path) then begin
  Session.NetFileDir:=prgmpath+pdir;
  Session.PrivateDir:=prgmpath+pdir;
end;
Also path ist ja wohl der Netzwerk-Pfad, also z.B. F:\Data.
prgmpath und pdir Programmpfad (c:\programme) und der Pfad des Programms selbst.

Das PrivateDir ins Programmeverzeichnis zu legen ist schlecht,
dort gibt es meistens kein Schreibrecht.
NetFileDir wird nur unter Paradox benutzt.

Ich würde trotzdem beide aufs Temp-Verzeichnis des Users setzen.

Ansonsten sehe ich hier nichts besonders "schlimmes".
ausser vielleicht die Verwendung von "".
Beim Tabellen-Namen ist es eigentlich nicht notwendig.
Statt ("M","E","H") sollte QuotedStr oder Parameter verwendet werden.

Ich würde einfach mal ein kleines Testprogramm schreiben,
das ein simples Select * macht ohne irgendein where .


Deine Fehlermeldung besagt übrigens, dass eine Query nicht geöffnet ist,
prüfst du denn auch vor dem Zugriff, ob die Query geöffnet werden konnte ?


Heiko

peschai 25. Jun 2009 06:24

Re: Keine Verbindung zu dBase über Netzwerk
 
Hallo

Hast du es schon mit Try..except..end versucht ?

peschai 25. Jun 2009 06:27

Re: Keine Verbindung zu dBase über Netzwerk
 
Hallo

...und noch etwas ist mir aufgefallen...
Es wäre besser Pfade sicherer zu "verbinden"

anstelle
Delphi-Quellcode:
...:=prgmpath+pdir;
würde ich besser empfehlen
Delphi-Quellcode:
...:=IncludeTrailingBackslash(prgmpath)+pdir;

Svenkan 27. Jun 2009 11:59

Re: Keine Verbindung zu dBase über Netzwerk
 
Wie ich nun erfahren habe, tritt das Problem auf bei einem Anwender lokal auf. Das Problem ist nur ganz einfach, dass ich es nicht nachvollziehen bzw. reproduzieren kann.

@ peschei: Hastn Beispiel für try..except?

hoika 29. Jun 2009 06:43

Re: Keine Verbindung zu dBase über Netzwerk
 
Hallo,

Delphi-Quellcode:
try
  Query1.Open;
except
  on E: Exception do ShowMessage('Query1.Open, Fehler '+E.message);
end;

BTW: Warum DBase ?


Heiko

guke 14. Jul 2009 17:06

Re: Keine Verbindung zu dBase über Netzwerk
 
Da das Problem nur auf einem PC aufzutreten scheint:

Schau Dir die Konfiguration der IDAPI.CFG (oder wie heißt das Dingens heute?) auf den Rechnern an, wo die Abfrage funktioniert und vergleiche sie mit der, wo es nicht funktioniert.

hoika 14. Jul 2009 19:43

Re: Keine Verbindung zu dBase über Netzwerk
 
Halölo,

idapi32.cfg heisst die :=)


Heiko

guke 14. Jul 2009 19:59

Re: Keine Verbindung zu dBase über Netzwerk
 
Danke, so bleibt Opa ein wenig auf dem Laufenden. :thumb:

Svenkan 5. Aug 2009 18:02

Re: Keine Verbindung zu dBase über Netzwerk
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wie ich gerade sehe: Ich habe mich oben verschrieben und es sollte heißen, dass das Problem nun auch bei einem Anwender auftritt, der das Programm nur lokal verwendet. Es ist leider so, dass dieser Fehler anscheinend öfters auftritt. Vlt. könntet ihr mal testen, ob bei euch der Query-Fehler beim Start auch direkt auftritt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr.
Seite 1 von 2  1 2      

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