AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindung
Thema durchsuchen
Ansicht
Themen-Optionen

TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindung

Ein Thema von Painterxyz · begonnen am 26. Nov 2007 · letzter Beitrag vom 26. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
Painterxyz

Registriert seit: 25. Nov 2007
36 Beiträge
 
#1

TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindung

  Alt 26. Nov 2007, 19:49
Datenbank: MS-SQL Server 2005 Express • Zugriff über: ODBC
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: http://www.delphipraxis.net/internal...ct.php?t=99598

Beim auslesen in einer While-Schleife kommt es zu Problemen.

Delphi-Quellcode:
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;
Die Ergebnismenge beträgt 4 Zeilen bei der Abrage, SELECT * FROM dbo.irgendwas

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?
Miniaturansicht angehängter Grafiken
fehlermeldung_odbc_182.gif  
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#2

Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu

  Alt 26. Nov 2007, 20:10
Hallo...


als Tip versuche mal folgendes...

ersetze die while Schleife durch
Delphi-Quellcode:

repeat
  ....
until SQLQuery1.FindNext = False
vieleicht kommt er mit dem Eof nicht klar
  Mit Zitat antworten Zitat
Painterxyz

Registriert seit: 25. Nov 2007
36 Beiträge
 
#3

Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu

  Alt 26. Nov 2007, 20:19
Danke für deine Antwort.

Jetzt kommt kein Fehler mehr, aber nur ein Datensatz.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu

  Alt 26. Nov 2007, 20:25
Ist in der 4. Zeile ein NULL-Wert?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#5

Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu

  Alt 26. Nov 2007, 20:25
...

ich benutze bei mir immer repeat/until...
...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'.

...

[edit]
die Ergebnismenge hat nur 4 Zeilen--> Datensatzzeiger auf Zeile1...
d.h. nach 3 Next ist der Datensatzzeiger schon auf dem letzten.
Zitat:
beim 4. SQLQuery1.Next
... ist einfach ein Next / Schleifendurchlauf zu viel.
[/edit]
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu

  Alt 26. Nov 2007, 20:27
@haentschman: Wie funktioniert das, wenn die Datenmenge komplett leer ist?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#7

Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu

  Alt 26. Nov 2007, 20:30
mit einer Überprüfung vorher...
...hast ja Recht...

PS: Fehler suchen heißt Fehlerquellen ausschließen...oder ?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu

  Alt 26. Nov 2007, 20:33
das Problem schreit deshalb nach einer While-Schleife
Markus Kinzler
  Mit Zitat antworten Zitat
Painterxyz

Registriert seit: 25. Nov 2007
36 Beiträge
 
#9

Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu

  Alt 26. Nov 2007, 20:34
In der 4. Zeile steht kein NULL-Wert.

Im Quelltext beim FindNext ist mir eine Merkwüridkeit aufgefallen.

Bei TDataSet.FindNext steht:
Result := FindRecord(False, True); und in FindRecord steht:
Result := false; was ist das für ein murks?
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: TSQLQuery.Next gibt einen Fehler bei MSSQL-ODBC-Verbindu

  Alt 26. Nov 2007, 20:36
@haentschman: In der Kürz' liegt die Würz'.

@mkinzler: Deine Ein-Satz-Antworten sind immer wieder zum Schmunzeln.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:50 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