Geisterkarle
Level-2
- Beiträge
- 126
- Reaktionspunkte
- 9
-> Hier kostenlos registrieren
Hallo zusammen,
ich muss für ein neues Projekt mit TwinCat 3 in eine Datenbank schreiben/lesen.
Hab ein altes Projekt, wo ich sowas schon gemacht habe, aber das mit TwinCat 2 und auch der entsprechenden TF6420 in Version 2. Also "alles neu".
Und im aktuellen Zustand befinde ich mich für Tc3 noch in Gefühl "Verschlimmbessert" und könnte ranten... aber mal so ne Frage, weil ich aktuell noch komplett "Offline" bin und nichts am System testen kann:
Wenn ich den Datenbank-FB "FB_PLCDBCmdEvt" mit einem komplett fertigem, korrekten SQL-Befehl befülle (pExpression) und die ganzen Parameterdaten (pData, cbData, pParameter, cbParameter) auf eine "leere" Lokalvariable "POINTER OF BYTE" schauen lasse. Macht der Baustein das mit? Denn diese ganzen Parameterdaten verkomplizieren (für mich) die Sache nur!
Also ungefähr:
Geht das also "so einfach"? Oder muss ich, wenn ich den "Blödsinn" nicht will, auf den FB_SQL-Bereich mit Connect, CreateCMD, ... umsteigen? Der "PLC-Expert Mode" klingt aktuell noch vernünftiger! Weil der scheint einem tatsächlich ordentlich Arbeit abzunehmen!
Weiss da wer was? Oder bessere Ideen?
Danke schonmal!
grüßle
ich muss für ein neues Projekt mit TwinCat 3 in eine Datenbank schreiben/lesen.
Hab ein altes Projekt, wo ich sowas schon gemacht habe, aber das mit TwinCat 2 und auch der entsprechenden TF6420 in Version 2. Also "alles neu".
Und im aktuellen Zustand befinde ich mich für Tc3 noch in Gefühl "Verschlimmbessert" und könnte ranten... aber mal so ne Frage, weil ich aktuell noch komplett "Offline" bin und nichts am System testen kann:
Wenn ich den Datenbank-FB "FB_PLCDBCmdEvt" mit einem komplett fertigem, korrekten SQL-Befehl befülle (pExpression) und die ganzen Parameterdaten (pData, cbData, pParameter, cbParameter) auf eine "leere" Lokalvariable "POINTER OF BYTE" schauen lasse. Macht der Baustein das mit? Denn diese ganzen Parameterdaten verkomplizieren (für mich) die Sache nur!
Also ungefähr:
Code:
VAR
DBAufruf: [COLOR=#3E3E3E]FB_PLCDBCmdEvt;[/COLOR]
SQLBefehl: String(1000);
DUMpData: POINTER TO BYTE;
DUMpParameter: POINTER TO BYTE;
END_VAR
SQLBefehl := "UPDATE irgendwas aber korrekt";
DBAufruf.Execute(hDBID:= Datenbank.DB_NR,
pExpression:= SQLBefehl,
cbExpression:= SIZEOF(SQLBefehl),
pData:= DUMpData ,
cbData:= SIZEOF(DUMpData),
pParameter:= DUMpParameter,
cbParameter:= SIZEOF(DUMpParameter)
);
Weiss da wer was? Oder bessere Ideen?
Danke schonmal!
grüßle