Mit SQL4automation hat man aus der CoDeSys Steuerungen direkten zugriff auf Datenbanken. Mit der SQL Sprache kann man aus der Steuerung neue Datensätze anlegen, Datensätze verändern, Daten abfragen und löschen. Ausserdem können Prozeduren in der Datenbank aufgerufen werden. Es gibt bereits getestete Bibliotheken für CoDeSys V2 und V3, die sehr einfach ins Projekt eingebunden werden können. Die Performance mit den CoDeSys Steuerungen ist wirklich sehr gut! (4000 Variablen ~16‘500 Byte in 650ms).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
Ich bin zur Zeit in Indien mit einem Kunden der ein grosses Projekt hat.
Ich möchte wissen ob es ein Library gibt um mich an eine SQL DB anzuschliessen.
Untenstehend was ich machen will:
Nur lesen... kein schreiben auf MSSQL
Anschliessen an MSSQL, connection immer offen lassen da cyclisch gelesen wird (kein Close)
Entdecken wenn Anschluss nicht möglich oder verloren... dann neu anschliessen.
Select * from Table... (alle meine Infos sind bereits in einer View)
4.1. Wissen wieviele Zeilen ich erhalten habe
4.2. alles in ein Array schaufeln
Alle Minuten das Array aktualisieren.
CloseConnection erst beim runterfahren.
Note: Die MSSQL DB liegt auf einem anderen PC.
Note2: Ich werde MSSQL2000 verwenden... nicht 2005.
Note3: Am liebsten JET oder ADO... besser als ODBC.
Note4: Ich habe MDAC 2.8 auf dem PC.
Zweite Frage:
wie gross darf mein Array sein? Kann ich ein Array 2000x4 definieren?
Wenn es klappt schicke ich Dir dann ein Bentchmark.
Im Voraus besten Dank.
Fabi
Originally created by: plivelic@metaind.de
Hallo,
jetzt gibt es!
Schaue: "http://www.metaind.de/metaind/de/software-shop"
Ein beispiel mit der Funktion SQL_GET:
PROGRAM SAMPLE_SQL_GET
VAR
END_VAR
( Program start )
IF bStart_Sample_1 THEN
bStart_Sample_1 := FALSE;
Str_SQL := 'select ITEM_ID, DATUM, DESCRIPTION, TARGET from TARGETS where ITEM_ID=123450';
( Str_SQL := 'select * from TARGETS'; )
iSQL_get_err := SQL_GET (Str_SQL, ADR(iRows), ADR(sRes));
IF iSQL_get_err <> 0 THEN
END_IF
IF iRows = 0 THEN ( No row maches this where condition )
END_IF
PROTO_TIME (gfpProto, 'SQL_GET() war erfolgreich');
( Extract particular column values )
rc1 := VAR_DWORD (sRes, 1, ADR(dwID)); ( iVar_no is sequence number of this column in select command )
rc2 := VAR_STR (sRes, 2, ADR(sDate));
rc3 := VAR_STR (sRes, 3, ADR(sText));
rc4 := VAR_INT (sRes, 4, ADR(iTarget));
IF rc4 = 1 THEN ( This value is not defined in data base )
END_IF
END_IF
( Program end )
Es handelt sich hier um eine echte gelinkte Library ohne Zwischenkommunikation wie etwa TCP/IP or UDP.
Gruß
Boris
http://www.sql4automation.com)
Mit SQL4automation hat man aus der CoDeSys Steuerungen direkten zugriff auf Datenbanken. Mit der SQL Sprache kann man aus der Steuerung neue Datensätze anlegen, Datensätze verändern, Daten abfragen und löschen. Ausserdem können Prozeduren in der Datenbank aufgerufen werden. Es gibt bereits getestete Bibliotheken für CoDeSys V2 und V3, die sehr einfach ins Projekt eingebunden werden können. Die Performance mit den CoDeSys Steuerungen ist wirklich sehr gut! (4000 Variablen ~16‘500 Byte in 650ms).