SQLBindParameter SQL_DECIMAL IS NULL



  • Hallo zusammen,

    ich benutze zum ersten mal die SQLBindParameter Funktion und habe ein kleines Problem, wenn ich anschließénd die SQLExecute aufrufe:-(

    Ich habe folgende Bindings:

    ret = SQLBindParameter(sqlstatementhandle, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 50, 0, &plzlist[i]->a, A_strlen(plzlist[i]->land), NULL);
    ret = SQLBindParameter(sqlstatementhandle, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 50, 0, &plzlist[i]->b,  A_strlen(plzlist[i]->plz),  NULL);
    ret = SQLBindParameter(sqlstatementhandle, 3, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_DECIMAL, 19, 6, &plzlist[i]->c, 0, NULL);
    ret = SQLBindParameter(sqlstatementhandle, 4, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_DECIMAL, 19, 6, &plzlist[i]->d, 0, NULL);
    ret = SQLExecute(sqlstatementhandle);
    

    Die eigentlichen Bindings funktionieren soweit nur wenn ich die SQLExecute aufrufe, dann bekomme ich folgenden Fehler:

    [Microsoft][SQL Server Native Client 11.0]Ungültiger Zeichenwert für Konvertierungsangabe

    Ich gehe jetzt mal schwer davon aus, dass es an den SQL_DECIMAL Bindings(c, d) liegt, da in dem char Array manchmal nichts drin steht. Das ist auch erstmal so gewolle weil ich eigentich dachte er würde das Feld auf "NULL" setzen aber scheinbar gibt es ein Problem. Wie kann ich das lösen?


  • Mod

    So geht das nicht. Du must SQL_NULL_DATA verwenden. (Siehe Beschreibung StrLen_or_IndPtr).

    Lesen:
    http://msdn.microsoft.com/en-us/library/ms710963(v=vs.85).aspx



  • Danke;-)


Log in to reply