Benutzer mit den meisten Antworten
CRecordset::open für AddNew

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
- Bearbeitet Guido Franzke Dienstag, 8. November 2016 12:03
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
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