AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem mit MySQL-Verbindung (MySQL ODBC 3.51 Driver)
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit MySQL-Verbindung (MySQL ODBC 3.51 Driver)

Ein Thema von mirko2000 · begonnen am 22. Jul 2004 · letzter Beitrag vom 22. Jul 2004
Antwort Antwort
mirko2000

Registriert seit: 9. Nov 2003
69 Beiträge
 
#1

Problem mit MySQL-Verbindung (MySQL ODBC 3.51 Driver)

  Alt 22. Jul 2004, 09:26
Hallo!

Ich versuche gerade auf die MySQL-Datenbank (Version 4.20d) mit dem ODBC Treiber (MySQL ODBC 3.51 Driver) zuzugreifen.

Kann mir jemand sagen, warum keine Daten angezeigt werden können? Die Attributnamen werden ausgegeben es werden nur keine Daten ausgegeben obwohl 3 Datensätze in der Tabelle vorhanden sind!?

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  con : Connection;
  rst : Recordset;
  fld : Field;
  r, x, y, i : Integer;
begin
  con := CoConnection.Create;
  rst := CoRecordset.Create;

  con.Open('bl', 'BENUTZER', 'PASSWORT', -1);

  rst.Open('SELECT * FROM abteilung', con, adOpenStatic, adLockOptimistic, adCmdText);

  x := rst.Fields.Count-1;
  y := rst.RecordCount;

  StringGrid1.ColCount := x+1;
  StringGrid1.RowCount := y+1;

  For i := 0 to x do
  begin
    StringGrid1.Cells[i, 0] := rst.fields[i].Name;
  end;

  r := 1;
  rst.MoveFirst;

  while not rst.EOF do
  begin
    For i := 0 to x do
    begin
      fld := rst.Fields[i];
      StringGrid1.Cells[i, r] := fld.Value;
    end;

    r := r + 1;
    rst.MoveNext;
  end;

  rst.Close;
  rst := nil;
  con.Close;
  con := nil;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Problem mit MySQL-Verbindung (MySQL ODBC 3.51 Driver)

  Alt 22. Jul 2004, 09:46
Ich denke mal die Infos unter Programs Known to Work with MyODBC sollte dir helfen. Dort werden die nötigen Schalter beschrieben, die du in deinem ODBC-Eintrag setzen mußt.

Einfacher gehts mit native-Komponenten wie MyDAC. Kosten zwar ein paar €, dafür benötigst Du kein ADO, ODBC oder BDE.
  Mit Zitat antworten Zitat
mirko2000

Registriert seit: 9. Nov 2003
69 Beiträge
 
#3

Re: Problem mit MySQL-Verbindung (MySQL ODBC 3.51 Driver)

  Alt 22. Jul 2004, 11:36
Gibt es sonst keine andere Lösung?

Sollte doch eigentlich auch mit ADO funktionieren, oder?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: Problem mit MySQL-Verbindung (MySQL ODBC 3.51 Driver)

  Alt 22. Jul 2004, 11:41
ADO und MySQL ist nicht so toll, weil man nicht sicher sein kann, dass auch die ODBC-Treiber auf dem Rechner sind.
Nimm lieber die Zeos-Komponenten. Dann brauchst du bloß die libmysql.dll mitliefern und gut ist!
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Problem mit MySQL-Verbindung (MySQL ODBC 3.51 Driver)

  Alt 22. Jul 2004, 13:32
Für ADO mußt Du auf der "Programs Known to Work with MyODBC" den Abschnitt für ADO durchlesen. Dort mußt Du ein paar ander Schalter setzen.
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Problem mit MySQL-Verbindung (MySQL ODBC 3.51 Driver)

  Alt 22. Jul 2004, 13:45
Zitat von Bernhard Geyer:
Für ADO mußt Du auf der "Programs Known to Work with MyODBC" den Abschnitt für ADO durchlesen. Dort mußt Du ein paar ander Schalter setzen.
Ich glaube nicht das dort das Problem liegt?
Code:
y := rst.RecordCount;
schau mal im Debug-Mode ob du einen Wert >-1 erreichst, sonst kann dein Stringgrid nicht auf die Recordanzahl reagieren. setze es mal manuell auf die Anzahl der zu erwartenden Datensätze.
Außerdem wird dir ein evt. auftretendes Leerfeld Probleme bereiten. Es verursacht einen Fehler nichts zuzuweisen.
  Mit Zitat antworten Zitat
mirko2000

Registriert seit: 9. Nov 2003
69 Beiträge
 
#7

Re: Problem mit MySQL-Verbindung (MySQL ODBC 3.51 Driver)

  Alt 22. Jul 2004, 13:49
Hab es jetzt herausgefunden warum es nicht funktioniert hat. Es hat die Zeile

rst.CursorLocation:=adUseClientBatch; gefehlt. Ohne diese Zeile bringt RecordCount immer -1 raus. Mit der Zeile funktioniert es!
  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 05:14 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