Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » ODBC API - neu erstellte Datensätze auslesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.04.2005, 17:04 Uhr
~Günta
Gast


Ich benutze die Windows ODBC API um auf eine MsSQL Datenbank zuzugreifen.

Mein problem ist das ich nachdem ich einen Datensatz habe einfügen lassen nicht die Werte aller Spalten dieses neuen Datensatzes kenne da die Tabelle auch Spalten mit "Identity"(Automatisches Inkrementieren) hat.

Was ich brauche ist eine Möglichkeit um über das Handle des "SQL Statement" an den neu erstellten Datensatz ranzukommen.

Ich habe es schon mit SQLFetch versucht doch das funktioniert anscheinend nicht mit einem Insert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.04.2005, 19:12 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


mach einfach z.b sowas:

dein Insert:

INSERT INTO blablubb (name,date,bla) VALUES("bla",$datum,"blubb");

deine Frage nach id:

SELECT id FROM blablubb WHERE name = "bla" AND date = $datum, "blubb");
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.04.2005, 10:37 Uhr
~Günta
Gast



Zitat von FloSoft:
mach einfach z.b sowas:

dein Insert:

INSERT INTO blablubb (name,date,bla) VALUES("bla",$datum,"blubb");

deine Frage nach id:

SELECT id FROM blablubb WHERE name = "bla" AND date = $datum, "blubb");


Also ich denke so kann das nicht funktionieren denn bei diesem Ansatz wird gar kein Bezug zur Anweisung die das Insert enthielt genommen. Deshalb würde ich auch Datensätze bekommen die nicht mit diesem Insert eingefügt wurden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.04.2005, 11:48 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


natürlich wird bezug genommen, schliesslich hängst du die genau exakten daten als bedingung an das select an, (ok wenn man zufällig genau die gleichen daten schonmal drin hat könnte man höchstens noch ein ORDER BY id DESC LIMIT 1 anhängen, dann sollte man wirklich den letzten Eintrag erhalten.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
29.04.2005, 11:03 Uhr
~Günta
Gast



Zitat von FloSoft:
natürlich wird bezug genommen, schliesslich hängst du die genau exakten daten als bedingung an das select an, (ok wenn man zufällig genau die gleichen daten schonmal drin hat könnte man höchstens noch ein ORDER BY id DESC LIMIT 1 anhängen, dann sollte man wirklich den letzten Eintrag erhalten.


Jo das würde halt nur funktionieren wenn man nur einen Datensatz der diese Werte enthält in der Tabelle hätte.

Auf die Sache mit dem Sortieren und Ergebnisse auf 1 beschränken bin ich noch nicht gekommen. Das wäre eine Lösung allerdings würde es die Performanz der Anwendung verschlechtern da ich Die Tabelle sperren müsste um zu verhindern das zwischen dem Insert und dem Select noch ein anderes Insert kommt.

Mal sehen ob das mit dem Tabellen sperren funktioniert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
29.04.2005, 11:28 Uhr
~Günta
Gast


Vieleicht hab ich mich da Missverständlich ausgedrückt was mein Problem ist, deshalb um es nochmal klarzustellen :

- Ich brauche nicht den zuletzt erstellten Datensatz.
- Ich brauche den Datensatz der von dem Prozess als letztes erstellt wurde.

Das ist also nicht so einfach wie es vieleicht auf den ersten Blick scheint.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
29.04.2005, 12:26 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


wenn du sicherstellst das zwischen insert und select kein datensatz mehr eingefügt wird ist der letzte dein insert

Ansonsten evtl über ne unterabfrage die den aktuellen increment-wert abruft, frag mich aber nur nicht wie
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: