AGB  ·  Datenschutz  ·  Impressum  







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

D09 MySQL C-API ExecQry

Ein Thema von AMaurer · begonnen am 16. Mai 2011 · letzter Beitrag vom 16. Mai 2011
 
AMaurer

Registriert seit: 14. Dez 2010
34 Beiträge
 
Delphi 11 Alexandria
 
#1

D09 MySQL C-API ExecQry

  Alt 16. Mai 2011, 15:19
Datenbank: MySQL • Version: 5.5 • Zugriff über: C-API
Hallo Ihr Experten.

Als Hobbyist steht man manchmal wie ein Ochse vorm Berg ...

Ich habe mich am Tutorial von Michael Puff langgehangelt. Änderungen mussten im Bereich String PAnsiChar vorgenommen werden, da das bekanntlich im D2009 anders läuft.

Ich habe Zugriff auf die DB (MySQL 5.5), kann Daten auslesen im Formular darstellen z. B. edit-Felder.

StringGrid funktioniert wie im Beispiel auch bis auf die Spaltennamen. Hier habe ich explixit folgendes Problem:

Aus Ihrem Tutorial, abgewandelt mit AnsiChar ...
function ExecQuery(const Datenbank, query: AnsiString; var Cols: TCols; var Rows: TRows): Boolean; var
MySQLRes: PMYSQL_RES;
MySQLRow: PMYSQL_ROW;
AffectedRows: Int64;
ColCount: Cardinal;
Field: PMYSQL_FIELD;
i: Integer;
j: Integer;
ErrorCode: Integer;
begin
// Datenbank auswählen
ErrorCode := mysql_select_db(Descriptor, PAnsiChar(Datenbank));
if ErrorCode = 0 then
begin
// Query ausführen
ErrorCode := mysql_real_query(Descriptor, PAnsiChar(query), length(query));
if ErrorCode = 0 then
begin
// Query speichern
MySQLRes := mysql_store_result(Descriptor);
if Assigned(MySQLRes) then
begin
// zurückgelieferte Anzahl der Spalten
ColCount := mysql_num_fields(MySQLRes);
SetLength(Cols, ColCount);
// Spalten-Array füllen
for i := 0 to ColCount - 1 do
begin
Field := mysql_fetch_field_direct(MySQLRes, i);
Cols[i] := Field.name;
...

Field.name bringt Compiler-Fehlermeldung: Record, Objekt oder Klassentyp erforderlich.
Wenn ich die Zeile Cols[i] := Field.Name auskommentiere läuft die Prozedur, die erste Zeile bleibt aber logischerweise in der nachfolgenden Funktion StringGrid füllen leer.

In der Referenz von MySQL-5.5 sind die Funktionen rund um mysql_fetch_field() beschrieben. Dementsprechend soll es .Name geben.

Habt Ihr eine Idee woran das liegt, dass .Name nicht funktioniert?


Danke für Eure Hilfe ...


Viele Grüße

Andreas
  Mit Zitat antworten Zitat
 


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 03:14 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