6.26 infraDBUpdate – Updaten eines Datensatzes
lRc = Object.infraDBUpdate()
IPS: infraDBUpdate( lRc)
|
Argumente
|
Keine
|
|
Rückgabewerte
|
lRc == 0 Kein Fehler
lRc <> 0 infra-Kernsystemfehler
|
|
Beschreibung
|
Diese Funktion ändert einen Datensatz in einer Tabelle.
Der Update erfolgt in folgenden Schritten
Die Sperre des Datensatzes hebt infraDBUpdate auf.
|
|
Funktionsart
|
infraDBFunktion
Basic-Skript
Java-Skript
IPSFunktion
|
|
Beispiel Basic-Skript
|
Dim lRc
Dim strValue
Dim strKey
MsgBox strMsg
lRc = oIDB.infraDBSelect( 6, 1, "0110012", 0 )
if( lRc = 32 ) Then
MsgBox "Tabelle Teile (6) ist leer "
Exit Sub
End IF
while( Trim( oIDB.infraDBQRF(3) ) <= "0110032" )
strValue = oIDB.infraDBQRF(3)
MsgBox " Update von: " & strValue
strKey = oIDB.infraDBQRF(3)
lRc = oIDB.infraDBSelect( 6, 1, strKey, 1 ) 'sperre Satz
If( lRc = 0 ) Then
oIDB.infraDBSRF 98, strText
lRc = oIDB.infraDBUpdate()
If( lRc ) Then
MsgBox oIDB.infraDBGetSystemMessage( lRc )
End If
Else
MsgBox( oIDB.infraDBGetSystemMessage( lRc ) )
End If
lRc = oIDB.infraDBFetchNext
if( lRc ) Then
break
End If
Wend
|
|
Beispiel Java-Skript
|
try{
var strTitle= "Beispiel Benutzung infraDBcom";
var strUpdTxt= "Angepasst durch Javascript";
var strMsg = "Diese Funktion schreibt \"" + strUpdTxt +
"\" ins Benutzerfeld 8 der Tabelle Teile (6, 98).";
var strMsg_2= "Diese Funktion schrieb \"" + strUpdTxt +
"\"\nins Benutzerfeld 8 der Tabelle Teile (6, 98):\n";
var WSHShell = WScript.CreateObject("WScript.Shell");
var intDoIt;
intDoIt = WSHShell.Popup(strMsg,0, strTitle, 1 + 64 );
if (intDoIt == 2 ) return;
var i = new Number( 0 );
var lRc = oIDB.infraDBSelect( 6, 1, "0110012", 0 );
while( (lRc == 0 || lRc == 10 ) && i++ < 10 ){
var strValue = oIDB.infraDBQRF(3);
lRc = oIDB.infraDBSelect(6,1,oIDB.infraDBQRF(3),1); //sperre Satz
if( lRc == 0 ){
oIDB.infraDBSRF( 98, strUpdTxt );
lRc = oIDB.infraDBUpdate();
if( lRc )
WScript.Echo( oIDB.infraDBGetSystemMessage( lRc ) + oIDB.infraDBQRF(3) );
else
strMsg_2 += "\nUpdate Teil: "+oIDB.infraDBQRF(3);
}
else
WScript.Echo( oIDB.infraDBGetSystemMessage( lRc ) );
lRc = oIDB.infraDBFetchNext();
if( lRc ) break;
}
WScript.Echo( strMsg_2 );
}//try
catch( e ){
WScript.Echo( "Fehler bei der Ausführung infraDBUpdate im Objekt " + oIDB.GetObjectName() + "\n" + e );
}
|
|
Beispiel IPS
|
String( strKey, strErr );
Long( lRc );
Double( di );
AssignDouble( di, 34.32 );
infraDBSelect( 6, 1, "", 0, lRc );
if( lRc == 0 )
Jump( LoopUpdateTest );
if( lRc == 10 )
Jump( LoopUpdateTest );
Jump( DoneUpdateTest );
LoopUpdateTest:
IncDouble( di, 2.3 );
infraDBQRF(3, strKey );
infraDBSelect( 6, 1, strKey, 1, lRc ); //sperre Satz
if( lRc == 0 )
{
infraDBSRFmtD( 31, di, "N9.3", "" );
infraDBUpdate( lRc );
if( lRc != 0 )
{
infraDBGetSystemMessage( lRc, strErr );
IpsGui_AppendProt( strErr, 0 );
}
}
infraDBFetchNext( lRc );
if( lRc == 0 )
Jump(LoopUpdateTest);
}
DoneUpdateTest:
|
