Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm wird nich vollständig beendet (https://www.delphipraxis.net/85211-programm-wird-nich-vollstaendig-beendet.html)

Wenqu 27. Jan 2007 13:06


Programm wird nich vollständig beendet
 
Guten Tag,
Ich suche schon seit heute morgen verzweifelt nach einer Lösung meines folgenden Problems:

Mein Programm hat folgende Funktionen/Aufgaben:
Es soll eine Verbindung mit einer MySQL Datenbank aufbauen - Daten auslesen sowie Datensätze Löschen/Ändern
Eine FTP Verbindung aufbauen - Dort Ordner erstellen und löschen

MySQL habe ich durch folgendes Tutorial gelöst:
Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken

Und FTP mit Indy.

Das klappt auch alles soweit aber sobald ich das Programm beende finde ich das Programm immernoch bei den Prozessen.
Ich konnte das Problem ansatzweise lokalisieren. Es liegt an der MySQL Verbindung, dazu habe ich mir folgendes kleines Programm geschrieben um es zu demonstrieren:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, mySQL;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Descriptor: PMYSQL;

implementation

{$R *.dfm}

//Verbindung zur MySQL - Datenbank herstellen
function ConnectMySQL(Descriptor: PMYSQL; Host, User, PW, DB: string; Port:
  Integer): PMYSQL;
begin
  result := mysql_real_connect(Descriptor, PChar(Host), PChar(User),
    PChar(PW),
    PChar(DB), PORT, nil, 0);
end;


//Verbindung zur MySQL - Datenbank schließen
procedure Disconnect;
begin
  mysql_close(Descriptor);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Descriptor := mysql_init(nil);

      Descriptor := ConnectMySQL(Descriptor, '85.13.132.213', 'd00246e8', '000000', 'd00246e8', 3306);
      if Assigned(Descriptor) then
        label1.Caption:='Connected';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Disconnect;
  label1.Caption:='Disconnect';
end;

end.
Die Datei libmysql.dll sowie mysql.pas befinden sich im selben Verzeichnis wie das Project und es wurde an ihnen nichts geändert!

Ich denke es liegt daran, das er die Verbindung nicht richtig beenden kann...
Ich hoffe das sind genug Informationen damit ihr mir ein wenig helfen könnt.

Auf schnelle Hilfe :wink:
Klaus

marabu 27. Jan 2007 18:31

Re: Programm wird nich vollständig beendet
 
Herzlich willkommen in der Delphi-PRAXiS, Klaus.

An deinem Test-Programm ist nichts auszusetzen. Mein Test-Programm verschwindet, abgesehen von einer gewissen Latenzzeit bei der Anzeigeaktualisierung des Task-Managers, sofort aus der Prozessliste.

Freundliche Grüße

Wenqu 28. Jan 2007 12:31

Re: Programm wird nich vollständig beendet
 
Nun ich habe jetzt wieder einmal die .pas und .dll neu heruntergeladen und im Ordner ersetzt jedoch ohne Erfolg.
Da fiel mir noch was ein, es könnte gut sein das sich mehrere mysqllib.dll Dateien auf meinem System befinden. Also habe ich mal mein System durchsucht und tatsächlich findet er noch einige Dateien.

Könnte es möglich sein das eine andere nicht richtig kompatible .dll Datei verwendet wird, und wenn ja wie kann ich das Problem lösen?

An was könnte es noch liegen?

MfG
Klaus

marabu 28. Jan 2007 13:44

Re: Programm wird nich vollständig beendet
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Klaus,

versuche es zuerst mal mit einer lokalen Installation, bevor du es mit 85.13.132.213 angehst. Anbei mein Testprogramm. Wenn auch das nicht zu deiner Zufriedenheit funktioniert, dann musst du mal die MySQL-Version und die DLL-Version mitteilen, welche du zum Testen verwendest. Willst du eine bestimmte DLL verwenden, dann speichere sie bei deiner ausführbaren Datei.

Freundliche Grüße


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