Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi MySQL zugang (https://www.delphipraxis.net/127284-mysql-zugang.html)

milos 10. Jan 2009 09:32


MySQL zugang
 
Kann man mit einem Buttonklick in phpmyadmin von localhost automatisch einen SQL befehl geben?

DeddyH 10. Jan 2009 09:34

Re: MySQL zugang
 
Den müsstest Du selber abspeichern und laden (sofern ich Dich überhaupt richtig verstanden habe).

milos 10. Jan 2009 09:40

Re: MySQL zugang
 
Ich möchte mit einem einzigen Buttonclick, automatisch in phpmyadmin zugreifen und einen SQL befehl eingeben lassen, den ich schon selbst vorgegeben habe. z.B. ButtonOnClick -> localhost/phpmyadmin -> SQL eintragen -> CREATE DATABASE oder so :D
und das alles unsichtbar

DeddyH 10. Jan 2009 09:41

Re: MySQL zugang
 
Ach, der Button soll in einem Delphi-Programm sein?

milos 10. Jan 2009 09:43

Re: MySQL zugang
 
In einer Form ja.

DeddyH 10. Jan 2009 09:47

Re: MySQL zugang
 
Wieso denn dann der Umweg über phpMyAdmin? Mit entsprechenden Zugriffskomponenten (mysqldirect, ZEOS, etc.) wäre das doch viel sinnvoller.

[edit] Siehe z.B. hier: http://www.delphipraxis.net/internal...ect.php?t=7266 [/edit]

milos 10. Jan 2009 09:54

Re: MySQL zugang
 
Danke ich werde es mir mal anschaun

mkinzler 10. Jan 2009 09:56

Re: MySQL zugang
 
Vielleicht ist der Direktzugriff ( wie bei den meisten Providern) von aussen gesperrt. Dann würde ich aber ein eigenes (PHP-)Skript erzeugen, welches ich dann aufrufe.

Die Muhkuh 10. Jan 2009 10:00

Re: MySQL zugang
 
Er schreib explizit localhost, daher kann er sich das auch für Exklusiv-Zugriff einrichten.

DeddyH 10. Jan 2009 10:01

Re: MySQL zugang
 
Da von localhost die Rede war bin ich davon ausgegangen, dass es sich um den eigenen Rechner handelt.

milos 10. Jan 2009 10:02

Re: MySQL zugang
 
Zitat:

Zitat von DeddyH
Wieso denn dann der Umweg über phpMyAdmin? Mit entsprechenden Zugriffskomponenten (mysqldirect, ZEOS, etc.) wäre das doch viel sinnvoller.

[edit] Siehe z.B. hier: http://www.delphipraxis.net/internal...ect.php?t=7266 [/edit]

Bei diesem Tutorial komme ich nicht weitder.... Es wird gesagt ich soll mysql.pas in Windows/System32 verschieben das habe ich gemacht... Als ich dann in uses MySQL hinzugefügt habe ging es nicht.

Edit: Es geht jetzt :D

milos 10. Jan 2009 10:19

Re: MySQL zugang
 
Ich habe noch eine Frage. Ist PMySQL ein komponent?

Die Muhkuh 10. Jan 2009 10:22

Re: MySQL zugang
 
Nö.

Zitat:

Neben den Funktionen werden noch folgende Datentypen, die in mysql.pas definiert sind, benutzt:

PMySQL
PMySQL_Res
PMySQL_Rows

DeddyH 10. Jan 2009 10:22

Re: MySQL zugang
 
Das Tutorial heißt "MySQL ohne Komponenten" :mrgreen:. Aber es ist eine Klasse.

milos 10. Jan 2009 10:26

Re: MySQL zugang
 
Bei mir kommt ne zugriffsverletzung :(

mkinzler 10. Jan 2009 10:28

Re: MySQL zugang
 
Dann zeig mal deinen Code

milos 10. Jan 2009 10:33

Re: MySQL zugang
 
Bis jetzt:
Delphi-Quellcode:
unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  _myCon: PMySQL;      //unseren Verbindungsdeskriptor
  host, user, pass, db: PChar;      //die Anmeldedaten
begin
  //wir werden uns als Root-Benutzer in localhost einloggen, ohne eine
  //bestimmte Datenbank auszuwählen
  host := 'localhost';
  user := 'root';
  pass := '';
  db := 'lan';

  //jetzt wird _myCon initialisiert
  _myCon := mysql_init(nil);
  if _myCon = nil then
  begin
    ShowMessage('Nicht genug freier Speicher, um Verbindungsdeskriptor zu initialisieren');
    Exit;
  end;
 
  //anschließend wird die Verbindung hergestellt
  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');

  //zum Schluss wird die Verbindung wieder geschlossen
  mysql_close(_myCon);
end;


end.

Die Muhkuh 10. Jan 2009 10:34

Re: MySQL zugang
 
Wo kommt die Meldung? :roll:

milos 10. Jan 2009 10:39

Re: MySQL zugang
 
Liste der Anhänge anzeigen (Anzahl: 1)
Bild angehengt

Die Muhkuh 10. Jan 2009 10:43

Re: MySQL zugang
 
An welcher Stelle im Code...

milos 10. Jan 2009 10:46

Re: MySQL zugang
 
Ich glaube bei FormCreate

mkinzler 10. Jan 2009 10:49

Re: MySQL zugang
 
Du musst auch erst eine Instanz der Klasse erzeugen

jfheins 10. Jan 2009 10:49

Re: MySQL zugang
 
http://www.delphipraxis.net/internal...ct.php?t=47972 ...

Die Muhkuh 10. Jan 2009 10:56

Re: MySQL zugang
 
Zitat:

Zitat von mkinzler
Du musst auch erst eine Instanz der Klasse erzeugen

Welche Klasse meinst Du?

milos 10. Jan 2009 10:58

Re: MySQL zugang
 
Delphi-Quellcode:
  //jetzt wird _myCon initialisiert
  _myCon := mysql_init(nil);

mkinzler 10. Jan 2009 11:05

Re: MySQL zugang
 
Zitat:

Zitat von Die Muhkuh
Zitat:

Zitat von mkinzler
Du musst auch erst eine Instanz der Klasse erzeugen

Welche Klasse meinst Du?

Stimmt, es wird ja die lowlevel API verwendet. :oops:
Fehler wisst normalerweise auf einen Zugriff auf nicht instantiierte Klassenreferenz hin (Nil)

DeddyH 10. Jan 2009 11:09

Re: MySQL zugang
 
Ich hatte auch gedacht, dass es sich um Klassen handelt. Sry für die Fehlinformation :oops:

[edit] @milos: Stepp doch mal mit F7 durch den Code und sag uns dann die Zeile, in der der Fehler auftritt. [/edit]

Die Muhkuh 10. Jan 2009 11:11

Re: MySQL zugang
 
Ja, das dachte ich erst auch, aber er erzeugt ja von Hand keine Klasse.

Vielleicht solltest Du das Projekt nochmal komplett von vorne machen. Höchstens Du packst endlich mal den Debugger aus und schaust genau nach, wo es kracht. Sonst raten wir hier morgen noch rum!

milos 10. Jan 2009 11:16

Re: MySQL zugang
 
Bei dem kommt der Fehler
Delphi-Quellcode:
//jetzt wird _myCon initialisiert
  _myCon := mysql_init(nil);

mkinzler 10. Jan 2009 11:18

Re: MySQL zugang
 
Setzte mal vor dieser Zeile einen Haltepunkt und drücke wenn er anhält F7


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