SQL Statement



  • Hi @ all !!

    Ich hab ne DB Anwendung (Interbase; ODBC) wo ich ganz normale SQL Statements verwende:

    ssql = "Select ... from ... where ... = ";
        ssql += ..;
        ssql += "BLA BLA";
        db.Open(CRecordset::snapshot, ssql);                
    
    //  db.MoveFirst();
    
            while(!db.IsEOF())
            {
                Format ....
    
                db.MoveNext();
            }
    

    Wenn ich die Tabelle mit

    Select *
    

    abrage läuft alles korrekt durch.
    Wenn ich nun einzelne Felder abfrage Select feld1, feld2 .., kriege ich folgende Fehlermeldung "Invalid column index for result set"

    Was mach ich hier falsch ???



  • In deiner Klasse (DB vom Assi) wurde eine Variable angegeben wieviele Spalten dein Table hat.

    m_nFields = ;

    Da eione DB-Anfrage über den Assi in alle Membervariablen (Tablefield`s) schreiben will kommt diese Fehlermeldung da nicht alle abgefragt wurden.

    [ Dieser Beitrag wurde am 03.12.2002 um 15:51 Uhr von Unix-Tom editiert. ]



  • Hi Unix-Tom

    Die Variable hat der Assi nicht angelegt !!

    Ich will aber nicht dass er alle Variblen füllt. Ich will nur ein bestimmtes Feld abfragen !!!

    Wie kann ich denn das machen ?????

    Thx



  • Schau dir mal in der FAQ meinen Code an. In diesem löscht du raus was du nicht abfragen möchtest.

    m_nFields

    nicht vergessen zu ändern.



  • m_nFields habe ich jetzt gefunden !!!

    @ Unix-Tom: Dein Sample in der FAQ ist fast der gleiche wie meiner.

    Trotzdem komme ich mit meinem Problem nicht weiter !!!
    m_nFields kann ich nicht ändern, da ich die Felder noch später brauche !!!

    Was habe noch für Möglichkeiten ???

    Thx



  • Alternative A)
    Du fragst alles ab und störst dich nicht daran, dass du zu viel abfragst.

    Alternative 😎
    Du legst einen neuen CRecordset für jede Abfrage an und passt DoFieldExchange
    gemäß deinen Membervariablen an.

    Ich würde A bevorzugen.
    🙄



  • OK, ich habe meine RecordSet angepasst und einige Felder rausgeschmissen !!!

    Nun kriege ich beim Ausführen die Meldung "conversion is not implemented" ???
    Welche Konvertierung ist damit gemeint ???

    Thx



  • Hat niemand eine Idee ???

    Sorry, aber es ist echt dringend für mich !!

    Thx


Anmelden zum Antworten