AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MySQL Abfrage

Ein Thema von chrigu99 · begonnen am 13. Mai 2006 · letzter Beitrag vom 13. Mai 2006
Antwort Antwort
chrigu99

Registriert seit: 1. Mär 2004
Ort: Bern, Schweiz
11 Beiträge
 
#1

MySQL Abfrage

  Alt 13. Mai 2006, 13:22
Hi zusammen

Also, ich habe mir eine MySQL-Abfrage zusammengebastelt, welche mir aber beim Ausführen des Programmes (nicht beim kompilieren) einen Fehler ausgibt. Hier der Code:

Delphi-Quellcode:
uses
  ... mysql ...;

    procedure DoTimer (Sender: TObject);

procedure TForm1.DoTimer(Sender: TObject);
var
  _myCon: PMySQL;
  host, user, pass, db: PChar;
  idAuthor: String;
  count: Integer;
  query: PChar;
  _myRes: PMySQL_Res;
  _myRow: PMySQL_Row;
   error: String;
begin
  host := 'www.fire-pics.ch';
  user := 'root';
  pass := 'XXXXX';
  db := 'firepics2';
  msg1 := 'Nicht genug freier Speicher, um Verbindungsdeskriptor zu initialisieren';
  msg3 := 'Verbindung mit fire-pics.ch-Server hergestellt';

  _myCon := mysql_init(nil);
  if _myCon = nil then
  begin
    ShowBalloon(msg1);
    Exit;
  end;

  //anschließend wird die Verbindung hergestellt
  if mysql_real_connect(_myCon, host, user, pass, db, 3306, nil, 0) = nil then
  begin
    msg2 := 'Die Verbindung konnte nicht hergestellt werden. Ursache: ' + mysql_error(_myCon);
    ShowBalloon(msg2);
    Exit;
  end;

  ShowBalloon(msg3);

  query := PChar('SELECT uid FROM firepics2_members WHERE username=chrigu99');
  mysql_real_query(_myCon, query, Length(query));

  _myRes := mysql_store_result(_myCon); //alle Datensätze vom Server anfordern
  _myRow := mysql_fetch_row(_myRes);
  idAuthor := _myRow[0];

    error := idAuthor;
    ShowBalloon(error);
    Exit;

  mysql_close(_myCon);
end;
wo liegt da der Fehler?

Grüsse, Chris
Chris
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: MySQL Abfrage

  Alt 13. Mai 2006, 13:27
Was für ein Fehler kommt und in welcher zeiel deines Codes?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

Re: MySQL Abfrage

  Alt 13. Mai 2006, 13:31
Ich tippe mal, das der Fehler im Bereich der Zeile 20 - 30 kommt oder ? Ist das ein Server der bei Deinem Provider steht ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
chrigu99

Registriert seit: 1. Mär 2004
Ort: Bern, Schweiz
11 Beiträge
 
#4

Re: MySQL Abfrage

  Alt 13. Mai 2006, 13:36
In keiner Zeile des Codes, wie bereits erwähnt tritt der Fehler nicht beim kompilieren auf sondern während des Ausführen des Programmes wenn die Prozedur gestartet wird:

Debugger-Exception
... Exception der Klasse EAccessViolation ... "Zugriffsverletung bei Adresse 10005536 in Modul libmysql.dll. Lesen von Adresse 0000000C" ...

[edit]
ja isses, ich hab n kompletten root-Server
[/edit]
Chris
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: MySQL Abfrage

  Alt 13. Mai 2006, 13:44
Ist dort der externe Zugriff auf mysql gestattet? Das ist normalerweise nicht so!
Markus Kinzler
  Mit Zitat antworten Zitat
chrigu99

Registriert seit: 1. Mär 2004
Ort: Bern, Schweiz
11 Beiträge
 
#6

Re: MySQL Abfrage

  Alt 13. Mai 2006, 14:12
jep, sonst könnte ich gar nicht verbinden. ach ja, das hab ich vergessen, die verbindung wird einwandfrei hergestellt, es klemmt erst ab der abfrage!
Chris
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: MySQL Abfrage

  Alt 13. Mai 2006, 14:20
Versuch mal den username zu Quoten, es handelt sich hierbei ja um einen String.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

Re: MySQL Abfrage

  Alt 13. Mai 2006, 14:42
Zitat von chrigu99:
Debugger-Exception
... Exception der Klasse EAccessViolation ... "Zugriffsverletung bei Adresse 10005536 in Modul libmysql.dll. Lesen von Adresse 0000000C" ...
So eine ganz dumme Frage, Du hast schon die richtige libmysql.dll im Windows-System32 Verzeichnis oder ? Die libmysql.dll muss schon zur Version des MySQL-Servers passen. Starte doch mal das Programm mit F9 aus der IDE heraus. Dann muss er an der Codezeile halt machen, wo Deine EAccessViolation auftritt.


Zitat von chrigu99:
jep, sonst könnte ich gar nicht verbinden. ach ja, das hab ich vergessen, die verbindung wird einwandfrei hergestellt, es klemmt erst ab der abfrage!
Das soll heißen, dass mann mit Deinem Root-User von jedem PC drauf zugreifen kann. Kleiner Tipp am Rande. Wenn es so ist, solltest Du es ändern und Dir einen passenden User anlegen, der nicht so viele Rechte hat wieder Root-User der Datenbank.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: MySQL Abfrage

  Alt 13. Mai 2006, 14:54
Ich würde sogar den externen Zugriffauf den Server komplett sperren. Zugriff über die datenbank nur über "middle-ware" (PHP usw.) oder über ssh.
Markus Kinzler
  Mit Zitat antworten Zitat
chrigu99

Registriert seit: 1. Mär 2004
Ort: Bern, Schweiz
11 Beiträge
 
#10

Re: MySQL Abfrage

  Alt 13. Mai 2006, 16:34
das mit dem root-benutzer iss mir schon bewusst, ist jetzt nur für testzwecke, dachte erst dass es an sowas liegen könnte.

die dll-version ist von winem win32-mysql server in der version 5.0.20, der server auf dem server ( lol ) ist linux und version 5.0.15. kann das nen unterschied machen? wenn ja. wo finde ich dll's für den linux-server? der hat ja diese so-dateien und keine dll's?

grüsse

[edit]
mkinzler:
Versuch mal den username zu Quoten, es handelt sich hierbei ja um einen String.

was meinst du damit genau?
[/edit]

[edit2]
jaa, daran lag es, am teil mit username=chrigu99 hat er sich aufgehängt... Danke für den Hinweis!!
[/edit2]
Chris
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 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