Delphi-PRAXiS
Seite 8 von 36   « Erste     678 91018     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)

fungunner2 16. Jan 2005 00:45

Re: MySQL ohne Komponenten
 
Hallo
Ohman,klar habs gefunden....thx für den Wink mit dem Zaunpfahl :wall:
Vielleicht kannste mir trotzdem nochmal auf die Sprünge helfen:
Wenn ich mit MysqlFront einen 17KB grossen Text einlade ist das auch kein Problem.
Versuch ich das gleiche mit unten stehendem Code gehts ums verecken nicht.


Code:
procedure TForm1.BitBtn4Click(Sender: TObject);
var
klar:integer;
textrein : string;
begin
 begin
  host := 'localhost';
  user := 'root';
  pass := '';
  db := pchar('mails');

  _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;
//**************************Verbindung steht !

 mysql_select_db(_myCon, pchar('mails'));
 msg := SakMsgList1.items[ currentMsg]; //Hier lade ich den Text einer Mail

 dateneintrag := ''''+msg.From+''''+ ',' +''''+msg.Date+''''+ ',' +''''+msg.Subject+''''+ ',' +''''+msg.ContentType+''''+ ',' +''''+msg.Text.Text+'''' ;

//**************************Bis hierher sind die Variabeln auch korrekt bestückt !

 query := pchar('INSERT INTO popper2 (von,datum,subject,art,text) values (' + dateneintrag +')' );
 klar := mysql_real_query(_myCon, query, Length(query));

//**************************Jetzt gibt mir klar eine -1 zurück,also nicht verarbeitet !

end;

end;
Ich steig einfach nicht dahinter warum.
Wäre nett wenn Du noch einen Denkanstoss für mich hättest.

mfg
Hans

Chewie 16. Jan 2005 15:24

Re: MySQL ohne Komponenten
 
Lass dir im Fehlerfalle doch einfach mal mysql_error() ausgeben, da kriegst du die Fehlermeldung von der DB.

fungunner2 17. Jan 2005 12:37

Re: MySQL ohne Komponenten
 
Hallo
Ich habs :thumb:
Im übergebenen Text scheiterte die Übergabe an einem " ' " (Hochkommata) im Delphi String.
Dadurch erhielt der Mysql Befehl eine falsche Syntax.
Jetzt weiss ich wenigstens worans lag.
Danke für die Hilfe !

mfg
Hans

Luckie 26. Jan 2005 15:36

Re: MySQL ohne Komponenten
 
Zitat:

Zitat von Chewie
Delphi-Quellcode:
  if _myCon = nil then
  begin
    ShowMessage('Nicht genug freier Speicher, um Verbindungsdeskriptor zu initialisieren');
    Exit;
  end;

Das finde ich etwas unbefriedigend. Ich fange auch mal an und gucke mir SQL Datenbanken an und das ist mir gleich aufgefallen. Gibt es nicht so was wie GetLastSQLError und SQLErrorCodeToStr?

Luckie 26. Jan 2005 16:03

Re: MySQL ohne Komponenten
 
Folgender Code aus dem Tutorial:
Delphi-Quellcode:
var
  query: PChar;
  _myCon: PMySQL;
begin
  query := 'CREATE DATABASE APITest';
  mysql_real_query(_myCon, query, Length(query));
end;
Wie kann man überprüfen, ob die Datenbank schon besteht und wie kann ich Fehler im Query auswerten? Oder anders ausgedrückt, woher weiß ich, ob der Query erfolgreich ausgeführt wurde und wenn nicht, woran es lag (keine DB, keine Tabelle, Syntaxfehler, ...)?

Selbst rausgefunden:
0: alles hat geklappt
1: hier: Datenbank gibt es schon

Wenn ich den obigen Code ausführe, ohne mich vorher mit dem Server verbunden zu haben, dann bekomme ich eine Exception. Ist das richtig?

Chewie 28. Jan 2005 10:17

Re: MySQL ohne Komponenten
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Chewie
Delphi-Quellcode:
  if _myCon = nil then
  begin
    ShowMessage('Nicht genug freier Speicher, um Verbindungsdeskriptor zu initialisieren');
    Exit;
  end;

Das finde ich etwas unbefriedigend. Ich fange auch mal an und gucke mir SQL Datenbanken an und das ist mir gleich aufgefallen. Gibt es nicht so was wie GetLastSQLError und SQLErrorCodeToStr?

Dein GetLastSQLError heißt mysql_errno und dein SQLErrorCodeToStr mysql_error.

Luckie 28. Jan 2005 10:28

Re: MySQL ohne Komponenten
 
Perfekt. :thumb: Danke.

Smeagol 17. Feb 2005 23:28

Re: MySQL ohne Komponenten
 
Hallo, ich bin neu hier.
Ich habe mal ein wenig mit der MySql Unit herumprobiert. Ich habe nun folgendes Problem: wenn ich als Host 'localhost' verwende, ist alles OK, aber wenn ich einen Host verwenden will, der eine Domäne ist (z.B. 'dbxxx.1und1.de') bekomme ich die Fehlermeldung "Unknown MySQL Server Host". Muss ich irgendwo eine Einstellung vornehmen???

emsländer 17. Feb 2005 23:54

Re: MySQL ohne Komponenten
 
Zitat:

Zitat von Smeagol
Hallo, ich bin neu hier.
Ich habe mal ein wenig mit der MySql Unit herumprobiert. Ich habe nun folgendes Problem: wenn ich als Host 'localhost' verwende, ist alles OK, aber wenn ich einen Host verwenden will, der eine Domäne ist (z.B. 'dbxxx.1und1.de') bekomme ich die Fehlermeldung "Unknown MySQL Server Host". Muss ich irgendwo eine Einstellung vornehmen???

Wie wäre es denn erst einmal mit dem Check der Firewall? Denn die lässt ja den MYSQL-Port nach aussen nicht durch. Und wie ist es bei 1und1? Haben die den Port nach aussen offen?


Gruss

EL

Sharky 18. Feb 2005 07:17

Re: MySQL ohne Komponenten
 
Zitat:

Zitat von Smeagol
..., aber wenn ich einen Host verwenden will, der eine Domäne ist...

Viele Anbieter verbieten den Zugriff auf den mySQL-Server von aussen. Sprich der Benutzer hat nur lokalen Zugriff auf den Server.
Frage am besten deinen Provider ob es möglich ist von aussen auf den mySQL zugreifen zu können.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 Uhr.
Seite 8 von 36   « Erste     678 91018     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