c# query sql-datenbank dynamisch

  • C

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von jvbsl.

    c# query sql-datenbank dynamisch

    Hallo Freunde,
    ich bin am verzeifeln -.-

    Ich möchte eine dynamische query mit c erstellen um auf eine sql-Datenbank zuzugreifen.

    SQLWCHAR* query;
    query = (SQLWCHAR*)L"SELECT * FROM RecipeHeader WHERE RecNam='xxx'"; (so funktioniert das)

    Für die xxx möchte ich einen variablen String einsetzen.. Ich hab schon sämtliche Varianten durchgetestet und Stunden im Internet gesucht..
    Ist das so schwierig? Hatte auf sowas gehofft wie:
    query = (SQLWCHAR*)L"SELECT * FROM RecipeHeader WHERE RecNam='%s'",Stringvariable;

    Waere fuer Lösungen und Anregungen sehr dankbar!!! :P :P

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    1. [Forum] Wie füge ich Quellcode korrekt im Forum ein?
    2. Was sind Injections? - Kleine Erklärung
    3. C# oder C? Das SQLWCHAR* query; lässt auf C schließen.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    ist es wirklich C?
    Verwende sprintf_n und string format(wichtig ist die n, du kannst die länge nämlich leicht vorhersagen und kannst damit pufferüberläufe verhindern, welche gerne als Sicherheitslücken missbraucht werden...
    Ist es C++
    verwende std::wstring, formatier es damit und wandel es am ende in einen c-string...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Es müsste C sein..
    Woran erkenne ich den ob es C oder C++ ist? -.-
    Bei Elementtyp steht C/C++ Compiler...

    Es wird wohl C++ sein..
    Zumindestens kann ich mit std::wstring arbeiten..

    Ich habe nun einen wstring angelegt:
    std::wstring st = L"SELECT * FROM RecipeHeader WHERE RecNam = 'hhh'";

    Als nächstes müsste ich ja iwi sowas machen:
    query = (SQLWCHAR*)L st; also irgendwie in SQLCHAR* wandeln.. da stehe ich auf dem Schlauch..


    Was ich nun brauche ist..
    1) Den wstring bei query einpflegen
    2) Den wstring manipulieren können mit einem Platzhalter oderso -.-

    Hast du da ev ein Beispiel für mich jvbsl?
    wenn du einen wstring hast, dann kannst du .c_str verwenden um einen const WCHAR* ptr zu erhalten, davon kannst du einfach casten. Im falle von C++ sollte man static_cast verenden

    C-Quellcode

    1. std::wstring st = L"asdf";
    2. st = st + "hhh" + std::to_string(12); // beispiel für das kombinieren von strings
    3. auto query = static_cast<SQLWCHAR*>(st.c_str());


    wenn es um performance geht, dann solltest du jedoch wstringstream verwenden
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    naja gut du hast wohl query schon vorher deklariert, weshalb du einfach die vorhandene Variable überschreibst, auto ist für automatische Typdeduktion da.
    wenn du den static_cast niht brauchst, dann heißt das,dass der typ sowieso schon passt, aber schaden sollte es nicht und auch mit dem cast funktionieren...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---