Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Access 2013, Office 2013
In diesem Beispiel wird die Mode-Eigenschaft verwendet, um eine exklusive Verbindung zu öffnen, und mit der Level-Eigenschaft wird eine Transaktion geöffnet, die isoliert von anderen Transaktionen ausgeführt wird.
// BeginIsolationLevelJ
import com.ms.wfc.data.*;
import java.io.*;
public class IsolationLevelX
{
// The main entry point for the application.
public static void main (String[] args)
{
IsolationLevelX();
System.exit(0);
}
// IsolationLevelX Function
static void IsolationLevelX()
{
// Define ADO Objects
Connection cnn1 = null;
Recordset rstTitles = null;
// Assign connection string to variable
String strCnn = "Provider='sqloledb';Data Source='MySqlServer';"+
"Initial Catalog='Pubs';Integrated Security='SSPI';";
// Declarations
BufferedReader in =
new BufferedReader ( new InputStreamReader(System.in));
String line = null;
try
{
// Open connection and Titles table
cnn1 = new Connection();
cnn1.setMode(AdoEnums.ConnectMode.SHAREEXCLUSIVE);
cnn1.setIsolationLevel(AdoEnums.IsolationLevel.ISOLATED);
cnn1.open(strCnn);
rstTitles = new Recordset();
rstTitles.setCursorType(AdoEnums.CursorType.DYNAMIC);
rstTitles.setLockType(AdoEnums.LockType.PESSIMISTIC);
rstTitles.open("Titles", cnn1, AdoEnums.CursorType.DYNAMIC,
AdoEnums.LockType.PESSIMISTIC);
cnn1.beginTrans();
// Display the connection mode
if (cnn1.getMode() == AdoEnums.ConnectMode.SHAREEXCLUSIVE)
System.out.println("\n\tConnection mode is exclusive");
else
System.out.println("\n\tConnection mode is not exclusive");
System.out.println("\nPress <Enter> to continue..");
in.readLine();
// Display the Isolation level
if ( cnn1.getIsolationLevel() == AdoEnums.IsolationLevel.ISOLATED)
System.out.println("\tTransaction is Isolated\n");
else
System.out.println("\tTransaction is not Isolated\n");
System.out.println("\nPress <Enter> to continue..");
in.readLine();
// Change the type of psychology titles
while(!rstTitles.getEOF())
{
if(rstTitles.getField("Type").getString().trim().
equals(new String("psychology")))
{
rstTitles.getField("Type").setString("self_help");
rstTitles.update();
}
rstTitles.moveNext();
}
// Print current data in recordset
rstTitles.requery();
while(!rstTitles.getEOF())
{
System.out.println(rstTitles.getField("Title").getString() +
" - " + rstTitles.getField("Type").getString() );
rstTitles.moveNext();
}
System.out.println("\nPress <Enter> to continue..");
in.readLine();
// Restore original data
cnn1.rollbackTrans();
}
catch(AdoException ae)
{
// Notify the user of any errors that result from ADO
// As passing a connection, check for null pointer first
if(cnn1 !=null)
{
PrintProviderError(cnn1);
}
else
{
System.out.println("Exception:" + ae.getLocalizedMessage());
}
}
// System Read requires this catch
catch(java.io.IOException je)
{
PrintIOError(je);
}
finally
{
// Cleanup objects before exit.
if (rstTitles != null)
if (rstTitles.getState() == 1)
rstTitles.close();
if (cnn1 != null)
if (cnn1.getState() == 1)
cnn1.close();
}
}
// PrintProviderError Function
static void PrintProviderError( Connection Cnn1 )
{
// Print Provider errors from Connection object.
// ErrItem is an item object in the Connections Errors collection.
com.ms.wfc.data.Error ErrItem = null;
long nCount = 0;
int i = 0;
nCount = Cnn1.getErrors().getCount();
// If there are any errors in the collection, print them.
if( nCount > 0);
{
// Collection ranges from 0 to nCount - 1
for (i = 0; i< nCount; i++)
{
ErrItem = Cnn1.getErrors().getItem(i);
System.out.println("\t Error number: " + ErrItem.getNumber()
+ "\t" + ErrItem.getDescription() );
}
}
}
// PrintIOError Function
static void PrintIOError( java.io.IOException je)
{
System.out.println("Error \n");
System.out.println("\tSource = " + je.getClass() + "\n");
System.out.println("\tDescription = " + je.getMessage() + "\n");
}
}
// EndIsolationLevelJ