.titleBar { margin-bottom: 5px!important; }

mySQL DELETE-Befehl will nicht

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von Marc1975, 18 Okt. 2006.

  1. Marc1975

    Marc1975 Neuer User

    Registriert seit:
    13 Okt. 2006
    Beiträge:
    17
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich kämpfe hier die ganzen letzten Tage mit SQL-Befehlen, die nicht wirklich funktionieren. Meist war es ein Problem mit dem Escapen von irgendwelchen Zeichen, aber dieses Mal finde ich nicht die Lösung..

    Code:
    [macro-mqueue]
    exten => s,1,MYSQL(Connect connid XXXX XXXX XXXX XXXX)
    exten => s,n,MYSQL(Query resultid ${connid} SELECT id\,message FROM mqueue WHERE user=${USER})
    exten => s,n,MYSQL(Fetch fetchid ${resultid} MESSID MESSAGE)
    exten => s,n,Background(/tmp/${MESSAGE})
    exten => s,n,MYSQL(Clear {$resultid})
    exten => s,n,MYSQL(Query resultid ${connid} DELETE FROM mqueue WHERE id=${MESSID})
    exten => s,n,MYSQL(Clear {$resultid})
    exten => s,n,MYSQL(Disconnect ${connid})
    
    Der erste SQL-Befehl funktioniert, der zweite nicht. Habe ich irgendetwas übersehen? Ich bekomme im CLI eine Warnung:

    Code:
    -- Executing MYSQL("SIP/33-087615c0", "Query resultid 1113 DELETE FROM mqueue WHERE id=19") in new stack
    Oct 18 16:05:26 WARNING[9860]: app_addon_sql_mysql.c:275 aMYSQL_query: aMYSQL_query: mysql_store_result() failed on query DELETE FROM mqueue WHERE id=19
    
     
  2. sagichnicht04

    sagichnicht04 Gesperrt

    Registriert seit:
    6 Juli 2006
    Beiträge:
    96
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Einen ordentlichen SQL-Server verwenden. MySQL ist Schrott.

    Als nächstes solltest du SQL richtig lernen, ist wirklich nicht schwer.
     
  3. Marc1975

    Marc1975 Neuer User

    Registriert seit:
    13 Okt. 2006
    Beiträge:
    17
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #3 Marc1975, 18 Okt. 2006
    Zuletzt bearbeitet: 18 Okt. 2006
    Vielen Dank, hilft mir nun sehr weiter. Wenn mySQL Schrott ist, warum bietet mir Asterisk die Möglichkeit, mySQL zu nutzen?
     
  4. Thomas007

    Thomas007 Aktives Mitglied

    Registriert seit:
    18 Sep. 2005
    Beiträge:
    1,455
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das ist Unsinn.
     
  5. gandalf94305

    gandalf94305 Guest

    Das ist eine unqualifizierte, unsubstantiierte Aussage, die nicht den Tatsachen entspricht. MySQL ist sicher eine kommerziell einsetzbare Datenbank. Nicht umsonst ist SAP-DB darin aufgegangen...

    Bezüglich der ursprünglichen Frage: ich würde immer Single-Quotes um Argumente machen... Außerdem: müssen da nicht Spaces gequotet werden?

    Siehe: http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+MYSQL

    --gandalf.
     
  6. Marc1975

    Marc1975 Neuer User

    Registriert seit:
    13 Okt. 2006
    Beiträge:
    17
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich habe es mittlerweile herausgefunden. An dem SQL-Befehl ist nichts falsch, es funktioniert auch ohne das Quoten (zumindest bei Leerzeichen).

    Zwischen den beiden Abfragen disconnecten und wieder verbinden hat geklappt.

    Ich bin mir aber immer noch unsicher, wann der Clear-Befehl benötigt wird. Anscheinend immer dann, wenn man Zeilen fetcht. Bei INSERT, UPDATE und DELETE bekomme ich eine Warnung, wenn ich den Clear-Befehl benutze.
     
  7. clan

    clan Mitglied

    Registriert seit:
    21 Apr. 2005
    Beiträge:
    266
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    'Schrott' ist sicherlich etwas übertrieben, das MySQL gewisse Macken hat ist aber auch kein Geheimnis. Und SAP-DB ist mitnichten in MySQL aufgegangen, sondern von MySQL gekauft worden und wird als eigenständiges Produkt (MaxDB) verkauft.

    Und jeder, der MySQL kommerziell einsetzt sollte sich zumindest mal die Lizenzbedingungen durchlesen. Es hat schon Gründe, daß MySQL, im Gegensatz zu Postgresql, von Asterisk nur über die Addons unterstützt wird.
     
  8. Thomas007

    Thomas007 Aktives Mitglied

    Registriert seit:
    18 Sep. 2005
    Beiträge:
    1,455
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    mySQL funktioniert mit Asterisk ausgezeichnet.

    Die Lizenzbestimmungen sollte man sich immer durchlesen, nicht nur wenn man Software kommerziell verwendet.

    Auch der gewerbliche Anwender kann mySQL unter der GPL verwenden.

    Auch hier gibt es keine Probleme.