SqlObject() Beispiele
Das folgende Beispiel zeigt eine einfache SQL-Abfrage von 2 Spalten auf die Tabelle "MyTable". Die Angabe "DEX_Workflow" ist die Angabe der Datenbankverbindung aus der "dbConn.json" und nicht der Datenbank-Name!
var sql = new SqlObject(SqlObject("MyTable", "DEX_Workflow");
sql.addVarcharColumn(sql.addVarcharColumn("ColumnA AS MyTest"); /* Spaltennamen können umbenannt werden */
sql.addDateColumn(sql.addDateColumn("ColumnB");
sql.sql.SQLWhere = "ColumnA LIKE '%Test%'";
sql.sql.SelectDistinct = true;
true;
sql.sql.ExpectHits = false;
false;
sql.selectData();
util.log(sql.SQLsql.selectData();
util.log(sql.SQL); /* Schreibt den SELECT-Befehl in das Documents-Log */
if(if( sql.Resultsql.Result====false ){
return sql.Error;
sql.Error;
}
/* Iteration über die Ergebnisse */
for(for(var i=0; i=0;<sql.Result.length; i<sql.Result.length; i+i++){
var strValuestrValue = sql.Resultsql.Result[i][i]["MyTest"];
var dateValue = sql.Resultsql.Result[i][i]["ColumnB"];
}
Mit dem SELECT können auch Abfragen via JOIN über mehrere Tabellen ausgeführt werden.
var
sql =
new SqlObject(SqlObject("Invoice_Posting_Head",
"DEX_Workflow");
sql.addVarcharColumn(sql.addVarcharColumn("head.FileID AS FileID");
sql.addVarcharColumn(sql.addVarcharColumn("head.InvoiceNumber AS InvoiceNumber");
sql.addIntColumn(sql.addIntColumn("pos.ID AS ID");
sql.addDecimalColumn(sql.addDecimalColumn("pos.Net AS Net");
sql.sql.SQLTable = sql.getFullTable(sql.getFullTable("Invoice_Posting_Pos") + " AS pos LEFT JOIN "
+ sql.getFullTable(sql.getFullTable("Invoice_Posting_Head") + " AS head ON "
+ "(head.FileID=pos.FileID)";
sql.sql.SQLWhere = "(head.PostingStatus=" + sql.parseValueForSql(sql.parseValueForSql("varchar", "workflow") + ") AND "
+ "(head.FileID=" + sql.parseValueForSql(sql.parseValueForSql("varchar", context.file.getid(context.file.getid()) + ")";
sql.sql.ExpectHits = true;
true;
sql.selectData(sql.selectData("justtable");
/* Durch 'justtable' wird der Tabellen-Name nicht automatisch zusammengesetzt, sondern es wird das Property SQLTable verwendet */
if(
sql.Resultif( sql.Result====false ){
util.log(sql.Log)util.log(sql.Log); /* Schreibt das Log zum SQl-Objekt in das Documents-Log */
return sql.Error;
sql.Error;
}
/* Iteration über die Ergebnisse */
for(for(var x=0; x=0;<sql.Result.length; x<sql.Result.length; x+x++){
var entry= sql.Result[x];
var invNo = entry.InvoiceNumber;
var lineID =entry= entry.IDsql.Result[x];
var lineNet invNo = entry.Net;
entry.InvoiceNumber;
var lineID = entry.ID;
var lineNet = entry.Net;
}
}
var sql = new SqlObject(SqlObject("Invoice_Posting_Head", "DEX_Workflow");
sql.addVarcharColumn(sql.addVarcharColumn("InvoiceNumber", docFile.InvoiceNumber)docFile.InvoiceNumber);
sql.sql.SQLWhere = "(FileID=" + sql.parseValueForSql(sql.parseValueForSql("varchar", context.file.getid(context.file.getid()) + ")";
sql.updateValues(sql.updateValues();
if( if( sql.Resultsql.Result====false ){
context.context.errrorMessage = sql.Error;
sql.Error;
return -1;
}
}
Das folgende Beispiel löscht DB-Einträge:
var sql = new SqlObject("Invoice_Posting_Head", "DEX_Workflow");
var sql = new SqlObject("Invoice_Posting_Head", "DEX_Workflow");
sql.executeStatement(sql.executeStatement("DELETE FROM " + sql.sql.FullTable + " WHERE (UpdateTimestamp<'01.01.2020')");
if(
sql.Resultif( sql.Result====false ){
context.context.errrorMessage = sql.Error;
sql.Error;
return -1;
1;