OBS/Makros und Scripting/Anwendungsbereiche/Zugriff auf externe Datenquellen
Zur Navigation springen
Zur Suche springen
Allgemein
In den Makros steht Ihnen die Klasse TxDB für den Zugriff auf externe Datenquellen zur Verfügung.
...
var oMSSQLDB:TxDB;
...
//Klasse instanziieren
oMSSQLDB:= TxDB.Create(DB_MSSQL);
//Passwort
oMSSQLDB.UserPassword := 'Passwort';
//Benutzer
oMSSQLDB.UserName := 'Benutzer';
//ODBC DSN-Name
oMSSQLDB.DataSource := 'mssql';
//Connect zur Datenbank OBS_MSSQL_DB
DB_ConnectToDatabase(oMSSQLDB, 'OBS_MSSQL_DB');
//Wieder freigeben der Instanz
MyFreeAndNil(oMSSQLDB);
end;
wichtige Konstanten
CONST_NO_SYSDB (False)
Viele interne Funktionen (z.B. DB_WriteSQLWhere) prüfen ob eine Tabelle exisitert, bevor diese manipuliert werden darf. Mit dieser Konstante kann dies verhindert werden.
Häufige Funktionen
Die oben beschriebene Verbindung muss immer aufgebaut werden.
Nutzung im Query
function StartProc():Boolean;
var oQuery: TxQuery;
begin
if DB_SOpen(oMSSQLDB,'SELECT * FROM Obs_Adressen',oQuery) then begin
Meldung(oQuery.a2c('adrnr'));
end;
DB_Close(oQuery);
end;
Daten lesen
function StartProc():Boolean;
begin
DB_ReadSQLValue(oMSSQLDB, 'Obs_Adressen', 'Zahlbed', 'adrnr = 900003');
end;
Daten verändern
function StartProc():Boolean;
begin
DB_WriteSQLWhere(oMSSQLDB, 'Obs_Adressen', ['Zahlbed'], ['dies ist ein Test'], 'adrnr = 900003', CONST_NO_SYSDB);
end;
Daten löschen
function StartProc():Boolean;
begin
DB_DeleteRecordWhere(oMSSQLDB, 'Obs_Adressen', 'adrnr = 000000');
end;
Daten einfügen
function StartProc():Boolean;
var xData: TqSQL;
begin
//Leeren Datensatz nutzen
xData := qSQlInit(oMSSQLDB, 'Obs_Adressen', CONST_DIFFERENCE, CONST_NO_SYSDB);
//Alternativ mit qSQLRead einen vorhanden Datensat einlesen
//Dieser muss zuvor in oQuery eingelesen werden (Siehe: Nutzung im Query)
xData := qSQLRead(oMSSQLDB, 'Obs_Adressen', oQuery, CONST_NO_SYSDB);
xData.qSet('adrnr', '000000');
xData.lNoSysUID := True;
xData.SaveData(NEW_RECORD);
qSqlFree(xData);
end;