none
CRecordset::open für AddNew RRS feed

  • Frage

  • Hallo,

    ich greife auf eine (MySQL) Datenbank mit ODBC CDatabase und CRecordset zu.

    Wenn ich nur Daten mit AddNew in eine Tabelle einfügen will, muss ich den Recordset mit "select * from mytable" öffnen. In meiner Tabelle sind über 2,5 Millionen Einträge. Anscheinend liest das Recordset bei open dann alle Daten ein? Das ist ja unsinnig, wenn ich nur neue Daten hinzufügen will. Zumindest bricht der open-Befehl mit einem Timeout ab.

    rs.Open(AFX_DB_USE_DEFAULT_TYPE, "select * from mytable", CRecordset::appendOnly);

    Warum wird bei CRecordset::appendOnly alles eingelesen?

    Wie muss der select-Befehl aussehen?

    Danke für Hilfe, Guido


    Dienstag, 8. November 2016 11:58

Antworten

  • Hallo Guido,

    warum die Daten eingelesen werden, kann ich dir nicht sagen aber Du kannst das sehr einfach mit

    SELECT ... FROM <Tabelle> WHERE 1 = 0

    umgehen. Damit wird dann kein Datensatz eingelesen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    • Bearbeitet Stefan Falz Dienstag, 8. November 2016 13:17
    • Als Antwort markiert Guido Franzke Dienstag, 8. November 2016 14:29
    Dienstag, 8. November 2016 13:17

Alle Antworten

  • Hallo Guido,

    warum die Daten eingelesen werden, kann ich dir nicht sagen aber Du kannst das sehr einfach mit

    SELECT ... FROM <Tabelle> WHERE 1 = 0

    umgehen. Damit wird dann kein Datensatz eingelesen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    • Bearbeitet Stefan Falz Dienstag, 8. November 2016 13:17
    • Als Antwort markiert Guido Franzke Dienstag, 8. November 2016 14:29
    Dienstag, 8. November 2016 13:17
  • Somit brauchen wie erwartet keine Daten eingelesen werden. Der select geht und Einfügen mit AddNew ist möglich.

    Vielen Dank.

    Dienstag, 8. November 2016 14:31