SQLAPI++ SAstring umwandlung.



  • Hi, hab mir neulich SQLAPI++ runtergeladen, da ich mit soci leider nicht auf eine DB2 Datenbank zugreifen kann 😞

    Gibt nur ein Prob, hab das Beispiel auf meiner Oracle Datenbank ausprobiert und funktioniert soweit eigentlich ganz gut, nur krieg ich das nicht hin mit der Datenausgabe nachm Select. Ich muss ja den SAstring in einen Const String umwandlung laut der Demo, aber hier streikt der VC Compiler, dass eine Convertierung von SAstring in Const char* ja nicht möglich sei, irgend jemand eine Idee?

    #include <SQLAPI.h> // main SQLAPI++ header
    #include <iostream>

    int main(int argc, char* argv[])
    {
    SAConnection con; // create connection object
    SACommand cmd(
    &con,
    "Select * from HR.COUNTRIES"); // command object
    try
    {
    // connect to database
    // in this example it is Oracle,
    // but can also be Sybase, Informix, DB2
    // SQLServer, InterBase, SQLBase and ODBC
    con.Connect(
    "XE", // database name
    "system", // user name
    "loewe", // password
    SA_Oracle_Client);

    std::cout << "hello" << std::endl;
    cmd.Execute();
    while(cmd.FetchNext())
    {
    std::cout << "Row fetched: fid = " << static_cast<const char*>(cmd.Field("COUNTRY_ID").asString()) << endl;

    }
    // Disconnect is optional
    // autodisconnect will ocur in destructor if needed
    con.Disconnect();

    printf("We are disconnected!\n");
    }
    catch(SAException &x)
    {
    // SAConnection::Rollback()
    // can also throw an exception
    // (if a network error for example),
    // we will be ready
    try
    {
    // on error rollback changes
    con.Rollback();
    }
    catch(SAException &)
    {
    }
    // print error message
    printf("%s\n", "servus");
    }

    return 0;
    }



  • Edit: hab vergessen hier bei endl std:: davorzuschreiben, hier im Forum, ist im Code aber richtig drin.



  • push



  • Hallo

    SAstring ist offenbar eine Library-eigene Stringklasse und läßt sich deshalb auch nicht einfach per static_cast in einen C-String umwandeln. Zunächst einmal kannst du probieren den cast ganz weg zu lassen, eventuell hat die Stringklasse ja einen überladenen <<-Operator. Wenn nicht schau in die Doku zu SAstring, da gibt es sicher eine Methode für die Umwandlung in einen C-String, meistens heißt die c_str().

    Und bitte beachten : sfds

    bis bald
    akari


Anmelden zum Antworten