C++ / ODBC Frage
-
Hallo zusammen
Mittels CDatabase habe ich eine Verbindung zu einem SQL-Server via ODBC (ohne Datenquelle) aufgebaut.
Problemlos lassen sich Tabellen auf dem Server erstellen oder löschen.
Leider habe ich bisher (weder mit CRecordset noch mit CDatabase) eine Funktion gefunden um gezielt einen Recordset zu verändern.
Mit CRecordset kann ich durch die Felder navigieren. Wie aber könnte ich den Wert eines Feldes auslesen oder verändern?
Für jeden Denkansatz bin ich dankbar.
(Es muss ODBC sein)
(Tante google half nicht)
(Steht nicht in der FAQ)Grüsse el-loco
-
Ich denke in deinem Fall helfen die Funktionen von CRecordset wie
AddNew -> für einen neuen Datensatz an
Delete -> löscht den akt. Datensatz
Update -> Schließt die Aktionen von Addnew und Delete ab("COMMIT")eventuell noch
CancelUpdate -> bricht die aktuelle Aktion ab ("ROLLBACK")
neuer Datensatz geht so:
AddNew aufrufen
Daten in das Recordset schmeißen
Update aufrufenFertig
Gruß Matthias
-
CTecS schrieb:
neuer Datensatz geht so:
AddNew aufrufen
Daten in das Recordset schmeißen
Update aufrufenDanach ist evtl. noch ein Requery praktisch, um die Daten neu zu laden.
Und Edit gibt es auch noch, um Daten zu verändern.
PS: In der FAQ ist doch was: http://www.c-plusplus.net/forum/viewtopic-var-t-is-39099.html
Kategorie Datenbank
-
Vielen Dank für eure Hilfe
Die Funktionen zum Navigieren sind mir bekannt. Ich hatte eher an eine Funktion gedacht um gezielt Daten aus einem bestimmten Kolonne auszulesen so wie es beispielsweise mit CDAORecordset::GetFieldValue möglich ist.
Sonst habe ich das mit ODBC-Consumer Klassen gemacht wo man mit einer Membervariablen auf einzelne Felder zugreifen konnte.
Hauptproblem:
In DAO sind mehr Möglichkeiten gegeben.
Ich arbeite daran eine DAO-Applikation für ODBC umzuschreiben.Eigentlich suche ich eine Funktion oder eine Möglichkeit die mit CDAORecordset::GetFieldValue gleich zu setzen ist oder wie man das sonst bewerkstelligen könnte.
-
http://www.realboard.de/board.php?boardid=44
ich denke meine Tutorials können dir sicher auch weiter helfen.
-
sorry hab mich vertippt. Die Funktion CRecordset::GetFieldValue gibts ja... ich meinte SetFieldValue..
Die Beste Möglichkeit zur Datenmanipulation (Update) sehe ich mit direkten SQL-Befehlen aus dem CDatabase Objekt.
Was meint ihr dazu?
-
Die Tutorials haben mir sehr geholfen, danke.
In dem Fall ist mein Problem gelöst.
Daten auslesen mit CRecordset::GetFieldValue()
Daten eintragen mit SQL-Befehl aus CDatabase::ExecuteSQL()Tabellen verändern (Felder einfügen, löschen, umbenennen) mit SQL-Befehl aus CDatabase::ExecuteSQL()
Besten Dank für eure Hilfe.