Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 2 von 2

Thema: Schreiben eines Array in MySQL

  1. #1
    Registriert seit
    16.12.2010
    Beiträge
    44
    Danke
    1
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,

    ich habe eine WAGO 750-881 und möchte mit dieser ein Array mit 1000 DINT Werten in eine MySQL schreiben.

    Bisher hatte ich den INSERT-Befehl mit jeder Einzelnen Variablen übergeben, bei ca. 12 Variablen ist das auch noch gut machbar, aber bei 1000 wird das zu viel.

    Wie kann ich der Datenbank das Array übergeben, und wie muss die Tabelle aussehen?


    Grüße

    Florian
    Zitieren Zitieren Schreiben eines Array in MySQL  

  2. #2
    Registriert seit
    30.01.2015
    Ort
    Hansastraße 27, 32423 Minden
    Beiträge
    125
    Danke
    6
    Erhielt 34 Danke für 25 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Fl0Bru,

    wie sieht denn deine Datenbankstruktur aus? Was genau möchtest du erreichen?
    Hier mal ein Beispiel, wie sowas aussehen könnte. Selbstverständlich führen hier viele Wege zum Ziel.

    Code:
    PROGRAM PLC_PRG
    VAR
        (* Local *)
        iSequenceState: INT;
        iLineNo: INT;
        xStartExecute: BOOL;
        xExecute: BOOL;
        oMySQL: MySql_Context;
        asSqlCommand: ARRAY[0..gcMySql_iSqlUpperBound] OF STRING(gcMySql_iSqlLength);
    
        adiLineValue: ARRAY[1..c_iLines] OF DINT;
    
        (* Instances *)
        instMySql_Execute: MySql_Execute;
    END_VAR
    
    VAR CONSTANT
        c_iLines: INT:= 1000;
    END_VAR
    
    
    (* ************************************************************ *)
    (* Execute *)
    
    (* Init; Dein Array of DInt *)
    adiLineValue[1]:= 666;
    adiLineValue[2]:= 666;
    adiLineValue[3]:= 666;
    
    (* Sequence *)
    IF xStartExecute THEN
        CASE iSequenceState OF
    
            10:
                xExecute:= TRUE;
                iSequenceState:= 20;
    
            20:
                IF NOT xExecute THEN
                    IF iLineNo >= c_iLines THEN
                        iLineNo:= 1;
                        xStartExecute:= FALSE;
                    ELSE
                        iLineNo:= iLineNo + 1;
                    END_IF;
    
                    iSequenceState:= 0;
                END_IF;
    
        ELSE
            (* Parameter apply *)
            asSqlCommand[0]:= 'INSERT INTO Deine_Tabelle (';
            asSqlCommand[1]:= 'Deine_Spalte';
            asSqlCommand[2]:= ') VALUES (';
            asSqlCommand[3]:= DINT_TO_STRING(adiLineValue[iLineNo]);
            asSqlCommand[4]:= ') ';
    
            iSequenceState:= 10;
        END_CASE;
    ELSE
        iLineNo:= 1;
        iSequenceState:= 0;
    END_IF;
    
    
    (* Call *)
    instMySql_Execute(
        asSqlCommand:= asSqlCommand,
        oMySql:= oMySQL,
        xStart:= xExecute,
        diError=> ,
        sStatus=> );
    Geändert von .:WAGO::015844:. (23.12.2015 um 10:33 Uhr)
    Ihr/Euer

    WAGO Support Team
    WAGO Kontakttechnik GmbH & Co. KG
    http://www.wago.com
    mailto:support@wago.com
    phone: +49 (0) 571 887 - 555

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 03.11.2014, 07:28
  2. Antworten: 1
    Letzter Beitrag: 26.03.2014, 11:57
  3. Step 7 Daten von SPS in MySQL schreiben
    Von Aleksandar im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 20.11.2013, 17:35
  4. Antworten: 5
    Letzter Beitrag: 20.09.2012, 20:20
  5. PS3 auslesen und Werte in MySql-DB schreiben
    Von Anonymous im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 22.01.2006, 15:08

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •