ODBC SQL liefert auf selbe Tabelle unterschiedl ResultSets

  • Hi ... ich greife per ODBC auf eine MSSQL SERVER Tabelle zu (lesend)


    qryString.SQL = "SELECT OCNT, SUBJECT AS SU FROM DOCUMENTOBJSUBJECTS"
    result.Execute
    Do
    cnt = cnt + 1
    result.NextRow
    Loop Until result.IsEndOfData
    ...


    so erhalte ich 12849 Datensätze


    qryString.SQL = "SELECT SUBJECT AS SU FROM DOCUMENTOBJSUBJECTS"


    so erhalte ich 14134 Datensätze


    qryString.SQL = "SELECT NOTESUNID FROM DOCUMENTOBJSUBJECTS"


    so erhalte ich 14381 Datensätze


    ?(


    Das kann doch überhaupt nicht sein!! Meine Tabelle hat 14381 Datensätze, sowie ich die Spalte "Subject" ins SQL aufnehme, werden es weniger!!


    Bitte dringend um Hilfe!!


    :danke:

  • Hi,


    Da sich die Ergebnisse dann unterscheiden, wenn Du an dem SELECT etwas aenderst, liegt doch die Vermutung nahe, dass
    es sich um ein Problem innerhalb der Tabelle handelt.


    Inkonsistenzen innerhalb der Tabelle kannst Du ausschliessen?



    Andreas

  • Inwiefern Inkonsistenzen? Ich weiss nur, dass Excel und MSSQL Management Studio immer eine korrekte Anzahl liefern, auch wenn ich das Statement anpasse ...


    wie soll ich denn mit der Schreibweise umgehen? Kommt der mit Null Werten nicht klar? ;(

  • OK, ich mache jetzt


    qryString.SQL = "SELECT CAST(SUBJECT AS CHAR), CAST(NOTESUNID AS CHAR) FROM DOCUMENTOBJSUBJECTS"


    und das scheint zu funktionieren! immer 14381 Datensätze.


    vielleicht hilft es mal jemandem :thumbup:


    ACHTUNG: CAST(NOTESUNID AS CHAR) lieferte mir dann doch nur 30 Zeichen (warum auch immer?!?), also hab ich es da wieder rausgenommen.
    OK auch das geklärt: dem CAST sollte man die Länge mitgeben


    qryString.SQL = "SELECT CAST(SUBJECT AS CHAR(999)) AS SU, CAST(NOTESUNID AS CHAR (34)) AS NU FROM DOCUMENTOBJSUBJECTS"




    Danke Andreas ;)