Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   BDES 2006 und externe mySQL Verbindung (https://www.delphipraxis.net/78297-bdes-2006-und-externe-mysql-verbindung.html)

eLem3ntx 2. Okt 2006 18:21


BDES 2006 und externe mySQL Verbindung
 
Moinsen @ alle Programmierer^^
Also ich habe folgendes Problem dass ich gerne eine Verbindung mit meiner mySQL Datenbank von meinem Server herstellen möchte, jedoch weis ich nicht genau wie ich dass machen soll und zum anderem bin ich auch noch anfänger in DELPHI kann zwar schon einiges z.B. INI files etc. aber mySQL und DELPHI ist mir neu.
Nun hab ich schon oft gelesen dass sowas über Zeos oder so gehen soll jedoch bekomm ich dass ding nicht installiert und wenn ich die examples starte kommt immer PASCAL FEHLER Z"dateiname".dll/etc. nicht gefunden (USES).

Nun frag ich euch liebes Forum, wie kann ich dies am besten anstellen?
Thx im Vorraus :D eLem3ntx / em3L

Balu der Bär 2. Okt 2006 18:32

Re: BDES 2006 und externe mySQL Verbindung
 
Hallo,

dafür hat doch Chewie mal ein Tutorial geschrieben: MySQL ohne Komponenten

Schöne Grüße,

eLem3ntx 2. Okt 2006 18:47

Re: BDES 2006 und externe mySQL Verbindung
 
Ok danke :D habe das Tut verstanden jedoch wenn ich das Project teste kommt der Fehler in der mySQL Unit dass die Winsock.dcuil nicht gefunden werden kann. Weiß einer wieso hab alles genau nach Tut gemacht. die libmySQL.dll und die mySQL File in den Project ordner kopiert und mySQL in USES geschrieben jedoch wird mySQL unter den USES auch rot unterstrichen!

Kann jemand helfen? Danke :D

M4r5 2. Okt 2006 18:49

Re: BDES 2006 und externe mySQL Verbindung
 
Das Tutorial sieht auf den ersten schnellen Blick ganz interessant aus, vor allem wenn einem Turbo Delphi 2006 Express bei Zeos ständig die Fremdkomponeten moniert.

Eine Klasse zur Verbindung ist völlig ausreichend.

Mal reinarbeiten

thx

eLem3ntx 2. Okt 2006 20:54

Re: BDES 2006 und externe mySQL Verbindung
 
Zitat:

Zitat von M4r5
Das Tutorial sieht auf den ersten schnellen Blick ganz interessant aus, vor allem wenn einem Turbo Delphi 2006 Express bei Zeos ständig die Fremdkomponeten moniert.

Eine Klasse zur Verbindung ist völlig ausreichend.

Mal reinarbeiten

thx

Hä was hat dass denn hiermit zu tun? Weis leider immer noch nicht weiter :(

Balu der Bär 2. Okt 2006 21:00

Re: BDES 2006 und externe mySQL Verbindung
 
Wie du weißt immernoch nicht weiter? In dem Tutorial steht doch wie du deine MySQL-Datenbank mit Delphi ansteuern kannst? Wieso setzt du es nicht einfach um?

Luckie 2. Okt 2006 21:04

Re: BDES 2006 und externe mySQL Verbindung
 
Was ist das für ein Server? Ist das ein Server bei einem Hoster bei dem du nur Webspace mit einer Datenbank hast? Dann könntest du Probleme bekommen, da die meisten Webhoster einen externen Zugriff nicht zulassen aus Sicherheistgründen.

eLem3ntx 2. Okt 2006 21:28

Re: BDES 2006 und externe mySQL Verbindung
 
Zitat:

Zitat von Luckie
Was ist das für ein Server? Ist das ein Server bei einem Hoster bei dem du nur Webspace mit einer Datenbank hast? Dann könntest du Probleme bekommen, da die meisten Webhoster einen externen Zugriff nicht zulassen aus Sicherheistgründen.

Joa so ist es jedoch kommt der fehler ja schon in der mysql.pas in der datei die ich nicht verändert hab und original von der homepage kommt!
Dass müsste ja dann noch nix mit der Winsock zu tun haben oder?

Balu der Bär 2. Okt 2006 21:39

Re: BDES 2006 und externe mySQL Verbindung
 
Zitat:

Joa so ist es jedoch kommt der fehler ja schon in der mysql.pas in der datei die ich nicht verändert hab und original von der homepage kommt!
Was für ein Fehler bei welchem Quellcode? Ohne genauere Informationen wird es sehr schwer fallen, dir zu helfen.

eLem3ntx 2. Okt 2006 22:07

Re: BDES 2006 und externe mySQL Verbindung
 
Na dass hab ich glaub schon geschrieben aber es ist ja nicht verkehrt nochmal den Fehler zu posten :D
Also jedesmal wenn ich mein Project compilen will breichtet mir Borland dass in der mySQL.pas (die datei vom tutorial) die Datei Winsock.dcuil nicht gefunden werden kann (PASCAL FEHLER).
Jedoch weis ich nicht woher ich diese überhaupt haben sollte oder zu was man sie überhaupt braucht?!??
Auf jedenfall copiled Borland dass nicht :(

Weis einer weiter?

mkinzler 2. Okt 2006 22:09

Re: BDES 2006 und externe mySQL Verbindung
 
Du mußt ein VCL-Win32 Project und kein VCL(Net) Projekt erzeugen.

eLem3ntx 2. Okt 2006 22:36

Re: BDES 2006 und externe mySQL Verbindung
 
Zitat:

Zitat von mkinzler
Du mußt ein VCL-Win32 Project und kein VCL(Net) Projekt erzeugen.

Danke für die schnelle Antwort jedoch besteht immer noch der gleiche fehler (übrigens bei mir nennt sich dass Windows forms anwendung ein VCL-Win32 Project gibt es nich könnte es vtl. daran liegen??)

Edit: Ok sorry habs gefunden danke für eure Unterstützungen :D, eLem3ntx

Vtl. folgen noch weitere probs^^

mkinzler 2. Okt 2006 22:38

Re: BDES 2006 und externe mySQL Verbindung
 
Hast du vielleicht Turbo Delphi für .Net? Dnn geht diese Klasse nicht.

eLem3ntx 2. Okt 2006 22:53

Re: BDES 2006 und externe mySQL Verbindung
 
Nein hab das Borland Normal Delphi 2006 und nun geht es auch jedoch sagt er beim connecten: "Client does not support authentication protocol requested by server; consider upgrading MySQL client".
Heißt dass jetzt dass der Server dies nicht unterstützt? Kann man dass irgendwie umgehen?

mkinzler 2. Okt 2006 22:59

Re: BDES 2006 und externe mySQL Verbindung
 
Die Client-Bibliothek scheint nicht zur Serverversion zu passen.

eLem3ntx 2. Okt 2006 23:08

Re: BDES 2006 und externe mySQL Verbindung
 
Hmm ok also liegt dies an der "libmySQL.dll" oder? Kann ich dieses problem irgendwie lößen?
vtl. hab ichs auch einfach falsch gemacht, so richtig?:
Delphi-Quellcode:
  host := 'http://db.odin.hosting-agency.de';
  user := 'username der db';
  pass := 'passwort';
  db := 'datenbankname';

mkinzler 2. Okt 2006 23:18

Re: BDES 2006 und externe mySQL Verbindung
 
Lade dir einen neueren client herunter.

eLem3ntx 2. Okt 2006 23:20

Re: BDES 2006 und externe mySQL Verbindung
 
Zitat:

Zitat von mkinzler
Lade dir einen neueren client herunter.

Wie meinst du dass? Welchen client (sorry aber in mySQL "für Delphi" bin ich echt anfänger)? Also die libmySQL.dll oder die mySQL.pes?
Danke für die schnelle antworten :D

Edit:
Hier die Überschrift von meiner mySQL datenbank vtl. hilft euch / dir etwas weiter:

"Willkommen bei phpMyAdmin 2.6.2-pl1"
"Verbunden mit MySQL 4.1.15-Debian_1-log auf localhost als datenbankname@localhost"

Meine libmySQL.dll hat die Version 3.23.49
und die mySQL.pas die gleiche also auch 3.23.49

mkinzler 2. Okt 2006 23:28

Re: BDES 2006 und externe mySQL Verbindung
 
Du brauchst also auch ein Client in der Version 4.x
http://dev.mysql.com/downloads/connector/

eLem3ntx 2. Okt 2006 23:34

Re: BDES 2006 und externe mySQL Verbindung
 
Tut mir echt leid, ich bin dir zwar seehr dankbar :D aber leider weis ich nicht welches der 5 verschiedenen downloads ich nehmen soll oder wo es hin kommt :D

Tut mir leid jedoch bin ich mit mySQL und Delphi noch nit so auf zack.

mkinzler 2. Okt 2006 23:45

Re: BDES 2006 und externe mySQL Verbindung
 
http://dev.mysql.com/get/Downloads/M....exe/from/pick

eLem3ntx 2. Okt 2006 23:56

Re: BDES 2006 und externe mySQL Verbindung
 
Ok ich hab dass nun installiert und was bringt mir dass ganze nun? Es haben sich keine änderungen ergeben!
Thx im Vorraus... eLem3ntx / em3L

mkinzler 2. Okt 2006 23:59

Re: BDES 2006 und externe mySQL Verbindung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Clients

M4r5 3. Okt 2006 00:35

Re: BDES 2006 und externe mySQL Verbindung
 
bei mir kommt immer ein "Access denied ...(Using PW)" was nach der mysql Doku entweder auf ein falsches Passwort schließen lässt oder der Server erlaubt keine externen Zugriffe.

Kann man die mysql Version ändern, auf dem Server läuft eine pre 4.1 oder nimmt der immer die aktuelle libmysql.dll?

Balu der Bär 3. Okt 2006 07:35

Re: BDES 2006 und externe mySQL Verbindung
 
Zitat:

Zitat von M4r5
bei mir kommt immer ein "Access denied ...(Using PW)" was nach der mysql Doku entweder auf ein falsches Passwort schließen lässt oder der Server erlaubt keine externen Zugriffe.

Hast du schonmal bei deinem Hoster nachgefragt ob externe Zugriffe gestattet sind?

eLem3ntx 3. Okt 2006 11:27

Re: BDES 2006 und externe mySQL Verbindung
 
Ok Leute danke habs hinbekommen musste den Client libmySQL41.dll umbenennen in libmySQL.dll und schon sagter verbindung hergestellt :D
Thx @ all eLem3ntx/em3L

M4r5 3. Okt 2006 11:38

Re: BDES 2006 und externe mySQL Verbindung
 
Ich frage den Hoster lieber nicht, ich will keine schlafenden Pferde wecken :wink:

wenns nicht geht muss ich mir eine andere db suchen.

Kann man mittels "Php info" die entsprechende Variableneinstellung sehen?

mkinzler 3. Okt 2006 11:41

Re: BDES 2006 und externe mySQL Verbindung
 
Zitat:

Kann man mittels "Php info" die entsprechende Variableneinstellung sehen?
Nein dies wird in der mysql-Verwaltungsdatenbank oder in der FireWall des Providers eingerichtet.

eLem3ntx 3. Okt 2006 11:47

Re: BDES 2006 und externe mySQL Verbindung
 
So Leute also danke nochmals für eure hilfe nun geht wenigstens die Verbindung zur externen DB :D

Nun möchte ich doch gerne Datensätze auslesen und diese per showmessage ausgeben, habe dies auch nach dem Tutorial gemacht jedoch unterstreicht er immer ein paar dinge rot und lässt mich nicht compilen. Hat vtl. jemand den kompletten script?

mkinzler 3. Okt 2006 11:51

Re: BDES 2006 und externe mySQL Verbindung
 
Zeig mal deinen Code

eLem3ntx 3. Okt 2006 11:59

Re: BDES 2006 und externe mySQL Verbindung
 
Ok also ich hab das jetzt behoben kann auch schon daten auslesen doch am Ende kommt immer ein Fehler von BDES dass es Zugriffsverletzungen in der libmySQL.dll gäbe. Doch hier mal der Script:

Delphi-Quellcode:
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

//============================================================
type
  TdelphiEntry = record
    name: String;
    text: String;
  end;
  TdelphiEntries = Array of TdelphiEntry;
//============================================================

procedure TForm1.Button1Click(Sender: TObject);
var
  _myCon: PMySQL;
  host, user, pass, db: PChar;

//============================================================
  delphi: TdelphiEntries;
  _myRes: PMySQL_Res;
  _myRow: PMySQL_Row;
  i: Integer;
  query: PChar;
//============================================================

begin

  host := 'http://db.odin.hosting-agency.de';
  user := '*****';
  pass := '*****';
  db := '*****';

  _myCon := mysql_init(nil);
  if _myCon = nil then
  begin
    ShowMessage('Nicht genug freier Speicher, um Verbindungsdeskriptor zu initialisieren');
    Exit;
  end;

  if mysql_real_connect(_myCon, host, user, pass, db, 3306, nil, 0) = nil then
  begin
    ShowMessage('Die Verbindung konnte nicht hergestellt werden. Ursache: ' + mysql_error(_myCon));
    Exit;
  end;

  ShowMessage('Verbindung hergestellt');


  query := 'SELECT * FROM delphi ORDER BY id';
  mysql_real_query(_myCon, query, Length(query));

  _myRes := mysql_store_result(_myCon);
  if _myRes = nil then
  begin
    ShowMessage('Es konnten keine Datensätze zurückgebenen werden. Ursache: ' + mysql_error(_myCon));
    Exit;
  end;

  SetLength(delphi, mysql_num_rows(_myRes));

  for i := 0 to High(delphi) do
  begin
    _myRow := mysql_fetch_row(_myRes);
    delphi[i].name := _myRow[0];
    delphi[i].text := _myRow[1];
   
showmessage(delphi[i].name);

  mysql_free_result(_myRes);


  mysql_close(_myCon);
end;
end;

end.
Und dann wäre da noch die Frage wie ich datensätze per Delphi einfügen kann, mach ich dass auch mit insert into?

M4r5 4. Okt 2006 19:08

Re: BDES 2006 und externe mySQL Verbindung
 
Bei Access denied blockiert es der Provider, auf eine andere DB bin ich ohne Probs gekommen, nachdem ich die richtige lib hatte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz