Delphi-PRAXiS
Seite 24 von 36   « Erste     14222324 252634     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   Delphi MySQL ohne Komponenten (https://www.delphipraxis.net/6543-mysql-ohne-komponenten.html)

Maja Jessica 20. Jun 2007 13:43

Re: MySQL ohne Komponenten
 
Hi,

dabei nervten mich immer die vielen verschiedenen Versionen der libmysql.dll, so dann und wann funktionierte irgendetwas nicht mehr welches vorher klappte.
Eventuell lag es auch an mir bzw meinen Code.
So habe ich es nie geschafft, mit den vorhandenen, die Feldtypen einer mysql-Tabelle zu bestimmen. :(

Wer Spass hat kann ja dieses hier nach Delphi portieren.

Grüße, MJ

Chewie 20. Jun 2007 20:57

Re: MySQL ohne Komponenten
 
Zitat:

Zitat von JB82
PS: Bitte an Chewie oder einen Admin/Mod: Bitte tausche doch den Link im ersten Posting aus, da er nicht mehr funktioniert.

Das muss ein Mod tun, ich hab dazu nicht die Rechte. Der erste Beitrag ist schon "bisschen" länger als 24 Stunden her :zwinker:

JB82 20. Jun 2007 21:58

Re: MySQL ohne Komponenten
 
Moin Chewie,

Zitat:

Zitat von Chewie
Das muss ein Mod tun, ich hab dazu nicht die Rechte. Der erste Beitrag ist schon "bisschen" länger als 24 Stunden her :zwinker:

na sowas! Ok, von der Einschränkung wusste ich nichts, da ich selbst mit YaBB arbeite und an phpBB nicht gewöhnt bin. :wink:

Viele Grüße, Jens

Mackhack 21. Jun 2007 02:29

Re: MySQL ohne Komponenten
 
Aus Aktuellem Anlass,...

Gibt es eigentlich eine aktualisierte Version der .pas file?

Maja Jessica 21. Jun 2007 09:24

Re: MySQL ohne Komponenten
 
Hi,

ich möchte mal zusammenfassen:
- Die Seiten von Fichtner sind nicht (nicht mehr) zu erreichen
- Der Zugriff über die LibMySql.dll ist immer noch beliebt
- Viele Tutorials im Netz beziehen sich auf die LibMySql.dll/mysql.pas
- Die Suche nach einer aktuellen Version endet fast immer in "Frage/Suche-Threads"

Da wäre es doch ein interessantes Projekt, die veraltete mysql.pas auf aktuellen Stand zu bringen.
Doch was ist der aktuelle Stand? Mysql5? Und wie stelle ich sicher, daß auch die "richtige" LibMysql.dll VersionXZY verwendet wird?
Woher weiss ich, welche Funktionen/Proceduren in einer vorliegenden LibMySql.dll vorhanden sind.
Wie ist die Vorgehensweise beim Schreiben einer 'neuen' mysql.pas.
Ich selbst traue mir das nicht zu, dafür reichen meine Programmierkenntnisse bei weiten nicht aus.
Wäre aber sehr interessant zu erfahren wie so etwas bewerkstelligt wird.
Eventuell in einen neuen Thread?
Oder ist das alles sinnlos, weil es eine Menge freier Zugriffskomponenten gibt?
Was meinen die Profis im Forum?

So long, MJ

JB82 21. Jun 2007 13:52

Re: MySQL ohne Komponenten
 
Hallo MJ,

Ich finde auch, dass es ein interessantes Projekt wäre, da ich aber keinerlei Kenntnisse von C++ habe, kann ich es leider auch nicht beginnen.

Zitat:

Zitat von Maja Jessica
Eventuell in einen neuen Thread?

Warum? dieser Threat ist schon so gut bevölkert, warum ihn nicht einfach fortsetzen? Schließlich ist es ja kein neues Thema, sondern nur die Erweiterung des laufenden Themas.
Zitat:

Zitat von Maja Jessica
Oder ist das alles sinnlos, weil es eine Menge freier Zugriffskomponenten gibt?

Nein, ich denke es ist wahrlich nicht sinnlos, denn die vorhandenen Möglichkeiten unterliegen entweder der GPL (was sicherlich für viele Programmierer inakzeptabel ist) oder es handelt sich um Komponenten. Letztere sind aus min. drei Gründen von Nachteil:
  • Sie können nicht in den eingeschränkten personal-Versionen von Delphi genutzt werden
  • Der Zugriff auf die Daten ist zwar verspielt einfach möglich, aber eine schnelle Abfrage / Änderung ist nicht möglich, mit der DLL ist es schnell umgesetzt und schnell durchgeführt. Außerdem ist die DLL problemlos aus einer TForm-losen Anwendung (Kommandozeilenanwendung!!!) nutzbar. (Nebenbei bemerkt, ich fand es dramatisch einfacher, die Funktionsweise der DLL zu verstehen, als die Funktionsweise der Borland-Komponenten!)
  • Durch die Verwendung der DLL entsteht im Gegensatz zur Nutzung einer Komponente kein unnötiger Overhead im Programm.

Zitat:

Zitat von Maja Jessica
Was meinen die Profis im Forum?

Zugegeben, ich bin neu hier, aber ich hoffe, meine Meinung wird auch mit in die Diskussion aufgenommen ;-)

Viele Grüße, Jens

micha0815 31. Jul 2007 06:41

Re: MySQL ohne Komponenten
 
Hallo Forum,

auch ich wäre interessiert. Bringe leider auch die gleichen Vorraussetzungen mit (keine Ahnung) denke aber das, daß ganze mehr oder weniger nur eine Fleißarbeit ist. So schwer kann das nicht sein.

Wer hat Tipps und Tutorial

Verwenden von C++ Bibliotheken mit Delphi
und was muß man beachten das nicht nur Delphi-Leute sondern Free-Pascal und Turbo -Leute auch damit arbeiten können? (auch unter Linux bzx. alle Plattformen die Free-Pascal auch untersützt.


mfg - Micha

pemue 18. Jan 2008 09:50

Re: MySQL ohne Komponenten
 
Hi ich habe folgendes Problem, wenn Compilieren will, kommt immer eine Meldung "[82] Variable 'query' ist möglicherweise nicht initialisiert worden"

Aber es compiliert trotzdem, nur mit dem erstellen der Tabellen haut es nicht hin, also DB wird erstellt, aber die Tabellen nicht... bitte helft mir weiter
Danke schonmal

Gruß
Pemue

Delphi-Quellcode:
unit MySQLTest;

interface

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

type
  TForm1 = class(TForm)
    grbConnect: TGroupBox;
    btConnect: TButton;
    edHost: TEdit;
    edUser: TEdit;
    edPassw: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    edDB: TEdit;
    Label4: TLabel;
    PopupMenu1: TPopupMenu;
    localhost1: TMenuItem;
    procedure btConnectClick(Sender: TObject);
    procedure localhost1Click(Sender: TObject);
    procedure MakeTables(_myCon: PMySQL);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btConnectClick(Sender: TObject);
var
  _myCon: PMySQL;      //unseren Verbindungsdeskriptor
  host, user, pass, db: PChar;      //die Anmeldedaten
  query: PChar;
begin
  //Aufnehmen der Anmeldedaten
  host := pchar(edHost.Text);
  user := pchar(edUser.Text);
  pass := pchar(edPassw.Text);
  db := pchar(edDB.Text);

  //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');

    if MessageDlg('Soll eine neue Datenbank angelegt werden?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin
      query := 'CREATE DATABASE apitest';
      mysql_real_query(_myCon, query, Length(query));
    end;
      if MessageDlg('Neue Tabellen anlegen?',
      mtConfirmation, [mbYes, mbNo], 0) = mrYes then
        MakeTables(_myCon)
end;

procedure TForm1.MakeTables(_myCon: PMySQL);
var
  query: PChar;
begin
  mysql_select_db(_myCon, 'apitest');    //zu Datenbank "APITest" wechseln
  mysql_real_query(_myCon, 'CREATE TABLE posts(id int, author int, date datetime, entry text)', Length(query));
  mysql_real_query(_myCon, 'CREATE TABLE users(id int, name varchar(50), pass varchar(50))', Length(query));
end;

procedure TForm1.localhost1Click(Sender: TObject);
begin
edHost.Text := 'localhost';
edUser.Text := 'root';
edPassw.Text := 'jazzy';
end;

end.

DeddyH 18. Jan 2008 09:57

Re: MySQL ohne Komponenten
 
Ich kenne die Bibliothek nicht, aber aus dem Bauch heraus würde ich sagen:
Delphi-Quellcode:
procedure TForm1.MakeTables(_myCon: PMySQL);
var
  query: PChar;
begin
  mysql_select_db(_myCon, 'apitest');    //zu Datenbank "APITest" wechseln
  query := 'CREATE TABLE posts(id int, author int, date datetime, entry text)';
  mysql_real_query(_myCon, query, Length(query));
  query := 'CREATE TABLE users(id int, name varchar(50), pass varchar(50))';
  mysql_real_query(_myCon, query , Length(query));
end;

pemue 18. Jan 2008 10:21

Re: MySQL ohne Komponenten
 
Oh vielen Danke, ich bin gerade bei den ersten schritten, und klammere mich dabei sehr an dieses tuturial, und bemerke selbst manche fehler nicht. Vielen Dank für deine Hilfe DeddyH


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:55 Uhr.
Seite 24 von 36   « Erste     14222324 252634     Letzte »    

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