Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DbExpress Rückgabe (https://www.delphipraxis.net/58703-dbexpress-rueckgabe.html)

Martin W 11. Dez 2005 13:40

Datenbank: MySQL • Version: 4 • Zugriff über: dbExpress

DbExpress Rückgabe
 
Hey;


Nach längerer Pause hab ich mir vorgenommen mich mal wieder intensiv mit Delphi zu beschäftigen.

Also folgendes:, ich habe:

- TSQLConnection;
- TSQLDataSet;

Das ausführen folgendes Befehls klappt einwandfrei:

SQL-Code:
CREATE TABLE `Norm1` (`TEXT_1` text NOT NULL , `Wert` text NOT NULL ) TYPE=MYISAM PACK_KEYS=DEFAULT ROW_FORMAT=DEFAULT
oder

SQL-Code:
INSERT INTO `Norm1` (TEXT_1, Wert) VALUES(' + QuotedStr(Edit1.Text) + ', ' + QuotedStr(Edit2.Text) + ')

DOch jetzt möchte ich auch Werte abfragen. Das mache ich so:

Delphi-Quellcode:
SQLDataSet1.CommandText := 'SELECT Wert FROM `Norm1` WHERE TEXT_1=QuotedStr(Edit1.Text)';
Also Rückgabewert dürfte ich eine Tabelle mit einer Spalte sowie einigen Zeilen haben. Wie kann ich jetzt schritt für schritt den Text der einzelnen Zeilen auslesen? Möchte folgendes:

Caption Label 1 = Wert Zeile 1
Caption Label 2 = Wert Zeile 2
Caption Label 3 = Wert Zeile 3

usw..


Danke für alle Antworten,
gruß
martin

mikhal 11. Dez 2005 14:09

Re: DbExpress Rückgabe
 
Etwa so:
Delphi-Quellcode:
SQLDataSet1.Open;
Label1.Caption := SQLDataSet.FindField('Wert').AsString;
SQLDataSet1.Next;
Label2.Caption := SLQDataSet1.FindField('Wert').AsString;
...
Grüße
Mikhal

Martin W 11. Dez 2005 14:11

Re: DbExpress Rückgabe
 
Woran merke ich das ich den letzten datensatz erreicht habe`?

mikhal 11. Dez 2005 14:13

Re: DbExpress Rückgabe
 
Die Methode Eof meldet dir, wenn der Cursor über den letzten Datensatz will. Am Besten verwendest du eine While-Schleife, etwa so:

Delphi-Quellcode:
while not SQLDataSet1.Eof do
begin
  ...
  SQLDataSet1.Next;
end;
...
Grüße
Mikhal

Martin W 11. Dez 2005 14:18

Re: DbExpress Rückgabe
 
mein source sieht jetzt so aus:

Delphi-Quellcode:
  SQLDataSet1.CommandText := 'SELECT Wert FROM `Norm1` WHERE TEXT_1=' + QuotedStr(Edit1.Text);
  SQLDataSet1.Open;
  SQLDataSet1.First;
  Edit2.Text := SQLDataSet1.FindField('Wert').AsString;

es kommt der Fehler:

Zitat:

---------------------------
Project4
---------------------------
dbExpress-Fehler: [0x0003]: Ungültiger Feldtyp.
---------------------------
OK
---------------------------

mikhal 11. Dez 2005 14:30

Re: DbExpress Rückgabe
 
Ich kenne mich nicht mit MySQL aus, Verwende mal statt des Datentyps Text den Datentyp varchar mit einer Längenangabe bei der Definition deiner Tabelle. Es kann sein, daß es damit zusammenhängt. Siehe auch Dokumentation von MySQL, dort den Hinweis auf stillschweigende Anpassung, sprich Änderung, des Datentyps durch die Datenbank, Version 5.0.

Ansonsten kann ich eigentlich keinen Grund für die Fehlermeldung sehen...

Grüße
Mikhal

Martin W 12. Dez 2005 19:49

Re: DbExpress Rückgabe
 
Der Fehler kommt leider immer noch :-(...


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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 by Thomas Breitkreuz