Konvertierung von SQL Datentypen in C++ Datentypen



  • Hallo,

    ich bin komplett neu in diesem Forum und ich hoffe, dass man hier konstrutkive Vorschläge erhält, aber davon bin ich eigentlich überzeugt.

    Ok nun zu meinem Problem, ich experimentiere gerade mit Scimore Embedded DB herum. Ich habe bereits Datenbankanwendungen mit PHP geschrieben, bin aber mit den C++ Interfaces komplett neu.

    Jedenfalls sind einige Datentypen der Datenbank 8 Byte lang, so zum Beispiel auch der Datentyp, in dem die IDs gespeichert werden, anhand deren man einen Eintrag in der Datenbank einwandfrei identifizieren kann. Wenn ich diese ID nun auslesen möchte, welchen C++ Datentyp nutze ich denn dann am besten? Sowohl long und integer sind mit 4 Byte zu kurz und beim Versuch die ID in einen der beiden C++ Datentypen einzulesen, gibt es verständlicherweise einen Programmcrash, weil ja diese nur 4 Byte lang sind, aber der SQL-Datentyp eben 8 Byte groß ist.

    Kennt jemand eine Möglichkeit dieses Problem zu lösen?

    Vielen Dank im Voraus

    jackis



  • Wie wärs mit double ?



  • vielen Dank für die schnelle Antwort, funktioniert zwar, aber der Wert, den ich dann im Debugger auslese ergibt überhaupt keinen Sinn. Leider gibt die Dokumentation von Scimore nicht so viel her in Bezug auf diese und viele andere Fragen, ist halt leider sehr knapp gehalten. Es steht halt auch nichts über die Organisation der Datentypen intern. Zwar sind einige Programmbeispiele aufgelistet, aber gerade meine Frage wird halt dort an keiner Stelle beantwortet, weil sich die Beispiele auf andere Sachverhalte beziehen



  • Schau' mal in die Doku Deines C++-Compilers. Normalerweise eignet sich 'long long' dazu. Er sollte durch die meisten Compiler als 64b-Integer implementiert werden. Wenn Du diese ID nur als Identifikation brauchst und damit nicht rechnen musst, kannst Du es genauso in einen string ablegen (std::string).



  • Zumindest bei MySQL hatte ich alles in String.



  • Vielen Dank für den Tipp mit dem long long, funktioniert auf jeden Fall! Bei weiteren Fragen wende ich mich wieder an euch, da man hier wirklich kompetente Antworten erhält! 🙂

    schönen Abend noch


Anmelden zum Antworten