SQL setzt NULL-Werte

  • VB6

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Lost-Ha[n]f-PHP.

    SQL setzt NULL-Werte

    Hallo schreibe mit einem Programm in eine Access Datenbank.
    Wenn ein Textfeld jetzt = "" ist, dann schreibt der in diesem Feld nicht "" sondern DBNULL (also NOTHING). Wenn ich das jetzt in einem eld ausgeben will, dann bekomme ich folgenden Fehler:

    No accessible overloaded 'ListViewSubItemCollection.Add' can be called without a narrowing conversion.
    at Microsoft.VisualBasic.CompilerServices.VBBinder.set_InternalThrow(Exception Value)
    at Microsoft.VisualBasic.CompilerServices.VBBinder.BindToMethod(BindingFlags bindingAttr, MethodBase[] match, Object[]& args, ParameterModifier[] modifiers, CultureInfo culture, String[] names, Object& ObjState)
    at Microsoft.VisualBasic.CompilerServices.VBBinder.InvokeMember(String name, BindingFlags invokeAttr, Type objType, IReflect objIReflect, Object target, Object[] args, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParameters)
    at Microsoft.VisualBasic.CompilerServices.LateBinding.InternalLateCall(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack, Boolean IgnoreReturn)
    at Microsoft.VisualBasic.CompilerServices.LateBinding.LateCall(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack)
    at DOC.frmLoadData.GetAdressen() in C:\sandbox\Visual Basic\DOC\frmLoadData.vb:line 127


    Fehlerbeschreibung Ende.

    Was kann ich da jetzt machen???
    Hi,

    unter VB6 reicht es aus, zu prüfen ob das Feld leer ist.

    if ... <>"" then ...


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de
    Das Problem ist allerdings, dass
    If Not Variable is Nothing then ...
    nicht funktioniert.
    Meine Frage ist jetzt: Wieso schreibt er Nothing in die Dantenbank wenn das Textfeld = "" also nicht nohting ist...??? Das ist bei mir noch nie vorgekommen, habe den Code aber 1:1 aus meinem anderen Programm kopiert...
    Du solltest am besten mal schauen, ob die Versionen (.mdb und VB) gleich sind...

    Und wenn die gleich sind, versuchs nochmal zu kopieren und starte es dann mal zum versuch. Wenns dann geht, musst du irgendwo einen Bug in deinem neuen Code eingebaut haben. - Denk ich mal
    Habe keinen Fehler gefunden. Die Versionen waren bisher immer kompatibel. Habe nichts veraendert.

    Dieser Code fuegt den Datensatz in die DB ein:
    <pre>
    Dim i As Integer
    Dim LastIndex As Integer
    cString = "SELECT MAX(Stammindex) FROM Adressen"
    Command = New OdbcCommand(cString, DBConAlt1)

    Try
    Reader = Command.ExecuteReader
    Do While Reader.Read
    LastIndex = Reader.Item(0)
    Loop
    Catch ex As Exception
    MsgBox(ex.Message & vbCrLf & ex.StackTrace)
    Finally
    Reader.Close()
    End Try
    LastIndex += 1

    cString = "INSERT INTO Adressen (sName,sAnrede,sTitel,sZusatz1,sZusatz2,sStrasse,sPLZ,sOrt, sBemerkung, sSuchbaum, Stammindex)" & _
    " VALUES('" & txtName.Text & "','" & cmbAnrede.Text & "','" & cmbTitel.Text & "','" & txtZusatz1.Text & "','" & txtZusatz2.Text & _
    "','" & txtStrasse.Text & "','" & txtPLZ.Text & "','" & txtOrt.Text & "','" & txtBemerkung.Text & "','" & txtSuchbaum.Text & "', '" & LastIndex & "')"

    Command = New OdbcCommand(cString, DBConAlt1)
    Try
    Command.ExecuteNonQuery()
    Catch ex As Exception
    MsgBox(ex.Message & vbCrLf & ex.StackTrace)
    End Try
    </pre>
    Hi,

    Wieso schreibt er Nothing in die Dantenbank wenn das Textfeld = "" also nicht nohting ist...???


    In der Datenbank steht ja auch nicht "Nothing". In der Datenbank steht "Null". Und das solltest du mit der Anweisung:

    If DeineVariableImRecordsetBeimAuslesen <> "" Then Text1.Text=DeineVariableImRecordsetBeimAuslesen
    beim auslesen abprüfen können.


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „LaMa5“ ()