AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi FResult.FieldValue in Array
Thema durchsuchen
Ansicht
Themen-Optionen

FResult.FieldValue in Array

Ein Thema von Masterraven9 · begonnen am 17. Mai 2008 · letzter Beitrag vom 17. Mai 2008
Antwort Antwort
Masterraven9

Registriert seit: 18. Nov 2007
5 Beiträge
 
#1

FResult.FieldValue in Array

  Alt 17. Mai 2008, 20:13
Datenbank: MySQL • Version: 5 • Zugriff über: direct
Hy,

ich bin noch ein ziehmlicher Anfänger in der Programmierung und hoffe ihr könnt mir bei meinen Startschwierigkeiten helfen.

Ich versuche die Daten die in einer MySQL Datenbakn stehen auszulesen und in einem Array zu speichern. Ist das überhaupt möglich?

Also zuerst habe ich nach der Anleitung von delphi-treff gearbeitet, was auch funktioniert hat.

Nun möchte ich die Daten aber nicht in einer Tabelle ausgeben sondern in einem Array zwischenspeichern.

Variable:

Delphi-Quellcode:
type
  Daten = record
    ID : string[150];
    Titel : string[150];
    Serie : string[150];
    Staffel : string[150];
  end;

var
  Form1: TForm1;
  Ergebnis : array[1..20] of Daten;
Die Verbindung steht auch soweit und auch die Abfrage ist erfolgreich:

Delphi-Quellcode:
  if assigned(FResult) then begin
    if FMysql.Status<>MYSQL_STATUS_READY then
      ShowMessage('Ein Ergebnis wurde unvollständig gelesen!');
      FreeAndNil(FResult);
  end;
  q := 'SELECT * FROM videos WHERE Art = "3" ORDER BY Serie';
  FResult := FMysql.query(q, true, ex);
  if assigned(FResult) then
    ShowMessage('Query: OK - Ergebnis gespeichert')
  else
    if ex then
      ShowMessage('Query: OK - ausgeführt')
    else
      ShowMessage('Query fehlgeschlagen: '+FMysql.LastError);
Nun versuch ich die Ergebnisse in dem Array Ergebnis zu speichern:

Delphi-Quellcode:
if assigned(FResult) then begin
    if FResult.ResultType=rtStored then begin
      FResult.First;
      for i:=0 to FResult.RowsCount-1 do begin
        Ergebnis[i].ID := FResult.FieldValue(0);
        Ergebnis[i].Titel := FResult.FieldValue(1);
        Ergebnis[i].Serie := FResult.FieldValue(2);
        Ergebnis[i].Episode := FResult.FieldValue(3);
        FResult.Next;
      end;
      FResult.RecNo := cr;
    end;
  end;
Und wenn ich diesen Befehl ausführe bricht der Debugger ab mit einem Prozessfehler beim lesen einer Adresse.
Ich weiß nicht ob ich den Aufbau der Abfrage richtig verstanden hab oder ob der Code 100%ig in Ordnung ist.

Ich hoffe jemand kann mir einen Rat geben

thx
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: FResult.FieldValue in Array

  Alt 17. Mai 2008, 20:21
Herzlich willkommen in der Delphi-PRAXiS, Masterraven9.

Ein offensichtlicher Fehler ist wohl, dass du die Indizierung des Arrays vergessen hast:

Delphi-Quellcode:
// ...
      for i:=0 to FResult.RowsCount-1 do
        if i < Length(Ergebnis) then
        begin
          Ergebnis[i].ID := FResult.FieldValue(0);
          Ergebnis[i].Titel := FResult.FieldValue(1);
          Ergebnis[i].Serie := FResult.FieldValue(2);
          Ergebnis[i].Episode := FResult.FieldValue(3);
          FResult.Next;
        end else raise Exception.Create('array too small, some results dropped');
// ...
Freundliche Grüße
  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 09:47 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