Announcement

Collapse
No announcement yet.

"Invalid attempt to access a field before calling Read ()" bei delete-Anweisung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • "Invalid attempt to access a field before calling Read ()" bei delete-Anweisung

    Hallo,
    ich möchte eine einzelne Zeile aus der Datenbank mithilfe einer einfachen mysql Stored Procedure löschen, aber bekomme jedes mal die Fehlermeldung im Topic.

    Eigentlich sollte mein Quellcode richtig sein. Zumindest nach dem, was ich bisher so an Beispielen gesehen habe. Außerdem macht die Fehlermeldung kaum Sinn. Wofür brauch ich denn bitte einen DataReader beim Löschen einer Zeile in der Datenbank?

    Hier der Quellcode auf Clienseite:
    Code:
        Private Sub deleteLinkRelation(ByVal source As String, ByVal target As String, ByVal link_type As String)
            Try
                Dim link_id = getLinkID(link_type)
                dt.Clear()
                con = New MySqlConnection(myCon.getConStr)
                cmd = New MySqlCommand
                cmd.Connection = con
                cmd.CommandText = "otrs.deleteLinkRelation"
                cmd.Parameters.AddWithValue("source", source)
                cmd.Parameters.AddWithValue("target", target)
                cmd.Parameters.AddWithValue("link_id", link_id)
                cmd.Connection = con
                con.Open()
                cmd.ExecuteNonQuery()
                con.Close()
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
        End Sub
    Und die Stored Procedure:
    Code:
    -- --------------------------------------------------------------------------------
    -- Routine DDL
    -- Note: comments before and after the routine body will not be stored by the server
    -- --------------------------------------------------------------------------------
    DELIMITER $$
    
    CREATE DEFINER=`otrs`@`%` PROCEDURE `deleteLinkRelation`(IN source varchar(30), IN target varchar(30), In link_id varchar(10))
    BEGIN
        SET SQL_SAFE_UPDATES = 0;
        DELETE 
        FROM 
            otrs.link_relation
        WHERE
            source_key = source
        AND
            target_key = target
        AND 
            type_id = link_id;
    END
    Wenn ich die SQL-Abfrage direkt im DBMS ausführe läuft alles. Zumindest wenn ich SQL_SAFE_UPDATES auf 0 setze. Deshalb ist das auch in der Stored Procedure selber drin. Bringen tut es mir aber überhaupt nichts. Die Fehlermeldung kommt noch immer.

    Wäre nett, wenn mir wer nen Tipp geben könnte. Habe absolut keine Ahnung was ich falsch mache.

    Danke
Working...
X