![]() |
Datenbank: MS-SQL Server 2005 Express • Zugriff über: ODBC
TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindung
Liste der Anhänge anzeigen (Anzahl: 1)
Nachdem ich nun eine ODBC_Verbindung zu einer ms sql 2005 Datenbankhergestellt, mit der TSQLConnection-Komponente hergestellt hatte, ist es möglich die Daten auszulesen mit der TSQLQuery-Komponente.
So war ich vorgegangen: ![]() Beim auslesen in einer While-Schleife kommt es zu Problemen.
Delphi-Quellcode:
Die Ergebnismenge beträgt 4 Zeilen bei der Abrage, SELECT * FROM dbo.irgendwas
procedure TForm1.sqlquery();
var c,r: Integer; begin r:=0; with SQLQuery1 do begin Close; Open; First; end; with SQLQuery1 do begin if FieldList.Count > 0 then begin StringGrid1.ColCount := FieldList.Count; while not SQLQuery1.Eof do begin for c := 0 to FieldList.Count - 1 do begin StringGrid1.Cells[c,r] := Fields.Fields[c].AsString; end; Inc(r); SQLQuery1.Next; end; end; end; end; An sich funktioniert es, aber beim 4. SQLQuery1.Next kommt eine Fehlermeldung. Datenbank-Server-Fehler: dbExpress for ODBC: Failed to get an error message Weiss jemand, wo der Fehler liegt und wie kann man den beheben? |
Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu
Hallo...
als Tip versuche mal folgendes... ersetze die while Schleife durch
Delphi-Quellcode:
vieleicht kommt er mit dem Eof nicht klar :gruebel:repeat .... until SQLQuery1.FindNext = False |
Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu
Danke für deine Antwort.
Jetzt kommt kein Fehler mehr, aber nur ein Datensatz. |
Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu
Ist in der 4. Zeile ein NULL-Wert?
|
Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu
... :wiejetzt:
ich benutze bei mir immer repeat/until... :roll: ...er müßte normal alle durchlaufen bis er keinen nächsten mehr findet... ...im Prinzip umgekehrt zu Deiner Lösung, welche eigentlich genauso funtionieren müßte. Find.Next setzt normal immer auf den nächsten Datensatz (sofern vorhanden) ansonsten ist das Result 'False'. ... :gruebel: [edit] die Ergebnismenge hat nur 4 Zeilen--> Datensatzzeiger auf Zeile1... d.h. nach 3 Next ist der Datensatzzeiger schon auf dem letzten. Zitat:
[/edit] |
Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu
@haentschman: Wie funktioniert das, wenn die Datenmenge komplett leer ist?
|
Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu
mit einer Überprüfung vorher... :-D
...hast ja Recht... PS: Fehler suchen heißt Fehlerquellen ausschließen...oder ? :-D |
Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu
das Problem schreit deshalb nach einer While-Schleife
|
Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu
In der 4. Zeile steht kein NULL-Wert.
Im Quelltext beim FindNext ist mir eine Merkwüridkeit aufgefallen. Bei TDataSet.FindNext steht:
Delphi-Quellcode:
und in FindRecord steht:
Result := FindRecord(False, True);
Delphi-Quellcode:
:shock: was ist das für ein murks?
Result := false;
|
Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu
@haentschman: In der Kürz' liegt die Würz'.
@mkinzler: Deine Ein-Satz-Antworten sind immer wieder zum Schmunzeln. :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 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