Περιεχόμενα

# Υπηρεσία SFDatabases.Database

Η υπηρεσία Database (Βάση δεδομένων) παρέχει πρόσβαση σε βάσεις δεδομένων είτε ενσωματωμένες, είτε περιγράφονται στα έγγραφα Base. Αυτή η υπηρεσία παρέχει μεθόδους για:

- Λήψη πρόσβασης σε δεδομένα σε πίνακες βάσης δεδομένων.

- Εκτέλεση ερωτημάτων SELECT και εκτέλεση συγκεντρωτικών συναρτήσεων.

- Εκτέλεση δηλώσεων ενεργειών SQL όπως INSERT, UPDATE, DELETE κ.λπ.

Κάθε παρουσία της υπηρεσίας Database (Βάση δεδομένων) αντιπροσωπεύει μια ενιαία βάση δεδομένων και παρέχει πρόσβαση στους πίνακες, στα ερωτήματα και στα δεδομένα της.

Αυτή η υπηρεσία δεν παρέχει πρόσβαση σε φόρμες ή αναφορές στο έγγραφο Base που περιέχει τη βάση δεδομένων. Για πρόσβαση σε φόρμες σε ένα έγγραφο Base, ανατρέξτε στη μέθοδο FormDocuments της υπηρεσίας Base.

Όλες οι ανταλλαγές μεταξύ αυτής της υπηρεσίας και της βάσης δεδομένων γίνονται μόνο με χρήση SQL.

Οι δηλώσεις SQL μπορούν να εκτελούνται σε άμεση ή έμμεση κατάσταση. Σε άμεση κατάσταση η δήλωση μεταφέρεται στη μηχανή βάσης δεδομένων χωρίς κανένα έλεγχο σύνταξης ή επιθεώρησης.

Οι παρεχόμενες διεπαφές περιλαμβάνουν απλούς πίνακες και καταλόγους ερωτημάτων, καθώς και πρόσβαση σε δεδομένα βάσης δεδομένων.

Για να κάνετε τις προτάσεις SQL πιο ευανάγνωστες, μπορείτε να χρησιμοποιήσετε αγκύλες "[ ]" για να περικλείσετε ονόματα πινάκων, ερωτημάτων και πεδίων αντί να χρησιμοποιήσετε άλλους χαρακτήρες περίκλεισης που μπορεί να είναι αποκλειστικοί σε ορισμένα Συστήματα Διαχείρισης Σχεσιακών Βάσεων Δεδομένων (RDBMS). Αλλά προσέξτε ότι οι χαρακτήρες που εσωκλείονται είναι υποχρεωτικοί σε αυτό το περιβάλλον.

## Transaction handling

By default the database handles transactions in auto-commit mode, meaning that a commit is done after every SQL statement.

Use the SetTransactionMode method to change the default behavior, which allows for manual commits and rollbacks.

The methods Commit and Rollback are used to delimit transactions.

In LibreOffice, there are five types of transaction isolation modes, as defined in the com.sun.star.sdbc.TransactionIsolation constant group:

Constant | Value | Interpretation
--- | --- | ---
NONE | 0 | Transaction handling is disabled and the database is set to the default auto-commit mode.
READ_UNCOMMITTED | 1 | Dirty reads, non-repeatable reads and phantom reads can occur. If a row is changed by a transaction, another transaction will be able to read these changes even if they have not been committed.
READ_COMMITTED | 2 | Dirty reads are prevented, however non-repeatable reads and phantom reads can occur. This level prevents that rows with uncommitted changes are read.
REPEATABLE_READ | 4 | Dirty reads and non-repeatable reads are prevented. However, phantom reads can occur. Besides preventing uncommitted data from being read, it also prevents that two read operations in the same transaction return different results.
SERIALIZABLE | 8 | Dirty reads, non-repeatable reads and phantom reads are prevented. In addition to the constraints of the previous level, it also ensures that the set of records that match a WHERE clause remains unchanged inside the same transaction.

Read the Wikipedia page on Isolation in Database Systems to learn more about transaction integrity.

## Κλήση υπηρεσίας

Πριν τη χρήση της υπηρεσίας Database (Βάση δεδομένων) πρέπει να φορτωθεί ή να εισαχθεί η βιβλιοθήκη ScriptForge:

• Οι μακροεντολές Basic απαιτούν τη φόρτωση της βιβλιοθήκης ScriptForge χρησιμοποιώντας την ακόλουθη πρόταση:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Τα σενάρια Python απαιτούν εισαγωγή από την ενότητα scriptforge:
από το scriptforge import CreateScriptService

### Σύνταξη:

Για να δημιουργήσετε μια παρουσία της υπηρεσίας Database (Βάση δεδομένων), μπορείτε να χρησιμοποιήσετε τη μέθοδο CreateScriptService:

CreateScriptService("SFDatabases.Database", [filename: str], [registrationname], [readonly], [user, [password]]): svc

Στη σύνταξη που περιγράφεται παραπάνω, μπορείτε να χρησιμοποιήσετε είτε το "SFDatabases.Database", είτε απλά το "Database" ως το πρώτο όρισμα της μεθόδου CreateScriptService.

### Παράμετροι:

filename: (όνομα αρχείου) Το όνομα του αρχείου Base. Πρέπει να εκφράζεται με τη σημειογραφία SF_FileSystem.FileNaming.

registrationname: (όνομα καταχώρησης) Το όνομα μιας καταχωρημένης βάσης δεδομένων. Εάν παρέχεται το filename, αυτό το όρισμα δεν θα πρέπει να χρησιμοποιηθεί.

Αντίθετα, εάν έχει καθοριστεί ένα registrationname (όνομα εγγραφής), η παράμετρος filename δεν θα πρέπει να οριστεί.

readonly (μόνο για ανάγνωση): Καθορίζει εάν η βάση δεδομένων θα ανοίξει ως μόνο για ανάγνωση (Προεπιλογή = True).

user, password (χρήστης, κωδικός πρόσβασης): Πρόσθετες παράμετροι σύνδεσης στον διακομιστή της βάσης δεδομένων.

### Παράδειγμα:

##### Σε Basic

          GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
          Dim myDatabase as Object
          Set myDatabase = CreateScriptService("Database", "/home/user/Documents/myDB.odb")
          ' Εκτέλεση ερωτημάτων, δηλώσεων SQL, ...
          myDatabase.CloseDatabase()

##### Σε Python

          from scriptforge import CreateScriptService
          myDatabase = CreateScriptService("Database", "/home/user/Documents/myDB.odb")
          # Εκτέλεση ερωτημάτων, δηλώσεων SQL, ...
          myDatabase.CloseDatabase()

## Πρόσβαση σε βάσεις δεδομένων με την υπηρεσία διεπαφής χρήστη (UI)

Είναι επίσης δυνατή η πρόσβαση στη βάση δεδομένων που σχετίζεται με ένα έγγραφο Base χρησιμοποιώντας την υπηρεσία ScriptForge.UI, όπως φαίνεται στα παρακάτω παραδείγματα:

##### Σε Basic

          Dim myDoc As Object, myDatabase As Object, ui As Object
          Set ui = CreateScriptService("UI")
          Set myDoc = ui.OpenBaseDocument("/home/user/Documents/myDB.odb")
          ' Ο χρήστης και ο κωδικός πρόσβασης παρέχονται παρακάτω, εάν χρειάζεται
          Set myDatabase = myDoc.GetDatabase()
          ' Εκτέλεση ερωτημάτων, δηλώσεων SQL, ...
          myDatabase.CloseDatabase()
          myDoc.CloseDocument()

##### Σε Python

          ui = CreateScriptService("UI")
          doc = ui.OpenBaseDocument("/home/user/Documents/myDB.odb")
          # Ο χρήστης και ο κωδικός πρόσβασης παρέχονται παρακάτω, εάν χρειάζεται
          myDatabase = doc.GetDatabase()
          # Εκτέλεση ερωτημάτων, δηλώσεων SQL, ...
          myDatabase.CloseDatabase()
          doc.CloseDocument()

Η μέθοδος GetDatabase που χρησιμοποιείται στο παραπάνω παράδειγμα αποτελεί μέρος της υπηρεσίας ScriptForge της Base .

## Ιδιότητες

Όνομα | Μόνο για ανάγνωση | Τύπος | Περιγραφή
--- | --- | --- | ---
Queries | Ναι | Πίνακας συμβολοσειρών | Ο κατάλογος των αποθηκευμένων ερωτημάτων.
Tables | Ναι | Πίνακας συμβολοσειρών | Ο κατάλογος των αποθηκευμένων πινάκων.
XConnection | Ναι | XConnection | Το αντικείμενο UNO που αντιπροσωπεύει την τρέχουσα σύνδεση της βάσης δεδομένων.
XMetaData | Ναι | XDatabaseMetaData | Το αντικείμενο UNO που αντιπροσωπεύει τα μεταδεδομένα που περιγράφουν τα χαρακτηριστικά του συστήματος της βάσης δεδομένων.

Κατάλογος μεθόδων στην υπηρεσία βάσης δεδομένων
CloseDatabase Commit CreateDataset DAvg DCount DMin | DMax DSum DLookup GetRows OpenFormDocument OpenQuery | OpenSql OpenTable Rollback RunSql SetTransactionMode

## CloseDatabase

Κλείνει την τρέχουσα σύνδεση της βάσης δεδομένων.

### Σύνταξη:

db.CloseDatabase()

### Παράδειγμα:

        myDatabase.CloseDatabase() ' Basic

        myDatabase.CloseDatabase() # Python

## Commit

Commits all updates done since the previous Commit or Rollback call.

This method is ignored if commits are done automatically after each SQL statement, i.e. the database is set to the default auto-commit mode.

### Σύνταξη:

db.Commit()

### Παράδειγμα:

##### Σε Basic

          ' Set the REPEATABLE_READ transaction level
          myDB.SetTransactionMode(4)
          myDB.RunSql("UPDATE ...")
          myDB.Commit()
          myDB.RunSql("DELETE ...")
          ' Test some condition before committing
          If bSomeCondition Then
              myDB.Commit()
          Else
              myDB.Rollback()
          End If
          ' Restore auto-commit mode
          myDB.SetTransactionMode()

##### Σε Python

          myDB.SetTransactionMode(4)
          myDB.RunSql("UPDATE ...")
          myDB.Commit()
          myDB.RunSql("DELETE ...")
          if some_condition:
              myDB.Commit()
          else:
              myDB.Rollback()
          myDB.SetTransactionMode()

## CreateDataset

Creates a Dataset service instance based on a table, query or SQL SELECT statement.

### Σύνταξη:

db.CreateDataset(sqlcommand: str, opt directsql: bool, opt filter: str, opt orderby: str): svc

### Παράμετροι:

sqlcommand: A table name, a query name or a valid SQL SELECT statement. Identifiers may be enclosed with square brackets. This argument is case-sensitive.

directsql: Set this argument to True to send the statement directly to the database engine without preprocessing by LibreOffice (Default = False).

filter: Specifies the condition that records must match to be included in the returned dataset. This argument is expressed as a SQL WHERE statement without the "WHERE" keyword.

orderby: Specifies the ordering of the dataset as a SQL ORDER BY statement without the "ORDER BY" keyword.

### Παράδειγμα:

The following examples in Basic and Python return a dataset with the records of a table named "Customers".

##### Σε Basic

          oDataset = myDatabase.CreateDataset("Customers", Filter := "[Name] LIKE 'A'")

##### Σε Python

          dataset = myDatabase.CreateDataset("Customers", Filter = "[Name] LIKE 'A'")

## DAvg, DCount, DMin, DMax, DSum

Υπολογίζει τη δεδομένη αθροιστική συνάρτηση σε ένα πεδίο ή παράσταση που ανήκει σε έναν πίνακα.

Προαιρετικά, μια πρόταση SQL WHERE μπορεί να καθοριστεί ως φίλτρο που θα εφαρμοστεί πριν από τη συγκεντρωτική συνάρτηση.

### Σύνταξη:

db.DAvg(expression: str, tablename: str, [criteria: str]): any

db.DCount(expression: str, tablename: str, [criteria: str]): any

db.DMin(expression: str, tablename: str, [criteria: str]): any

db.DMax(expression: str, tablename: str, [criteria: str]): any

db.DSum(expression: str, tablename: str, [criteria: str]): any

### Παράμετροι:

expression (έκφραση): Μια έκφραση SQL στην οποία τα ονόματα των πεδίων περιβάλλονται με αγκύλες.

tablename : Όνομα πίνακα (χωρίς αγκύλες).

criteria (κριτήρια): Μια πρόταση WHERE χωρίς τη λέξη-κλειδί "WHERE", στην οποία τα ονόματα πεδίων περιβάλλονται με αγκύλες.

### Παράδειγμα:

Το παρακάτω παράδειγμα υποθέτει ότι το αρχείο Employees.odb έχει έναν πίνακα με το όνομα EmployeeData.

##### Σε Basic

          GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
          Dim myDB as Variant
          Set myDB = CreateScriptService("Database", "/home/user/Databases/Employees.odb")
          ' Μετρά τον αριθμό των εργαζομένων στον πίνακα
          MsgBox myDB.DCount("[ID]", "EmployeeData")
          ' Επιστρέφει το άθροισμα όλων των μισθών του πίνακα
          MsgBox myDB.DSum("[Salary]", "EmployeeData")
          ' Παρακάτω είναι μερικά παραδείγματα του τρόπου φιλτραρίσματος των πινάκων
          MsgBox myDB.DCount("[ID]", "EmployeeData", "[Position] = 'Manager'")
          MsgBox myDB.DCount("[ID]", "EmployeeData", "[Position] = 'Sales' AND [City] = 'Chicago'")
          MsgBox myDB.DCount("[ID]", "EmployeeData", "[FirstName] LIKE 'Paul%'")

##### Σε Python

          myDB = CreateScriptService("Database", "/home/user/Databases/Employees.odb")
          bas = CreateScriptService("Basic")
          bas.MsgBox(myDB.DCount("[ID]", "EmployeeData"))
          bas.MsgBox(myDB.DSum("[Salary]", "EmployeeData"))
          bas.MsgBox(myDB.DCount("[ID]", "EmployeeData", "[Position] = 'Manager'"))
          bas.MsgBox(myDB.DCount("[ID]", "EmployeeData", "[Position] = 'Sales' AND [City] = 'Chicago'"))
          bas.MsgBox(myDB.DCount("[ID]", "EmployeeData", "[FirstName] LIKE 'Paul%'"))

## DLookup

Υπολογίζει μια έκφραση SQL σε μια μεμονωμένη εγγραφή που επιστρέφεται από μια πρόταση WHERE που ορίζεται από την παράμετρο Criteria.

Εάν το ερώτημα επιστρέφει πολλές εγγραφές, λαμβάνεται υπόψη μόνο η πρώτη. Χρησιμοποιήστε την παράμετρο OrderClause για να προσδιορίσετε πώς ταξινομούνται τα αποτελέσματα των ερωτημάτων.

### Σύνταξη:

db.DLookup(expression: str, tablename: str, [criteria:str], [orderclause: str]): any

### Παράμετροι:

expression (έκφραση): Μια έκφραση SQL στην οποία τα ονόματα των πεδίων περιβάλλονται με αγκύλες.

tablename : Όνομα πίνακα (χωρίς αγκύλες).

criteria (κριτήρια): Μια πρόταση WHERE χωρίς τη λέξη-κλειδί "WHERE", στην οποία τα ονόματα πεδίων περιβάλλονται με αγκύλες.

orderclause : Μια πρόταση ORDER BY χωρίς τις λέξεις-κλειδιά "ORDER BY". Τα ονόματα των πεδίων πρέπει να περιβάλλονται με αγκύλες.

### Παράδειγμα:

##### Σε Basic

          MsgBox myDB.DLookup("[FirstName]", "EmployeeData", Criteria := "[LastName] LIKE 'Smith'", OrderClause := "[FirstName] DESC")
          MsgBox myDB.DLookup("[Salary]", "EmployeeData", Criteria := "[ID] = '3'")
          MsgBox myDB.DLookup("[Quantity] * [Value]", "Sales", Criteria := "[SaleID] = '5014'")

##### Σε Python

          bas = CreateScriptService("Basic")
          bas.MsgBox(myDB.DLookup("[FirstName]", "EmployeeData", criteria = "[LastName] LIKE 'Smith'", orderclause = "[FirstName] DESC"))
          bas.MsgBox(myDB.DLookup("[Salary]", "EmployeeData", criteria = "[ID] = '3'"))
          bas.MsgBox(myDB.DLookup("[Quantity] * [Value]", "Sales", criteria = "[SaleID] = '5014'"))

## GetRows

Αποθηκεύει τα περιεχόμενα ενός πίνακα ή τα αποτελέσματα ενός ερωτήματος SELECT, ή μιας πρότασης SQL σε έναν δισδιάστατο πίνακα. Το πρώτο ευρετήριο στον πίνακα αντιστοιχεί στις σειρές και το δεύτερο ευρετήριο αναφέρεται στις στήλες.

Μπορεί να καθοριστεί ένα ανώτερο όριο για τον αριθμό των σειρών που επιστρέφονται. Προαιρετικά, τα ονόματα στηλών μπορούν να εισαχθούν στην πρώτη σειρά του πίνακα.

Ο πίνακας που επιστρέφεται θα είναι κενός, εάν δεν επιστραφούν σειρές και δεν απαιτούνται οι κεφαλίδες στηλών.

### Σύνταξη:

db.GetRows(sqlcommand: str, directsql: bool = False, header: bool = False, maxrows: int = 0): any

### Παράμετροι:

sqlcommand: Ένα όνομα πίνακα ή ερωτήματος (χωρίς αγκύλες), ή μια πρόταση SQL SELECT.

directsql: Όταν είναι True, η εντολή SQL αποστέλλεται στη μηχανή βάσης δεδομένων χωρίς προανάλυση. Η προεπιλογή είναι False. Αυτό το όρισμα αγνοείται για πίνακες. Για τα ερωτήματα, η επιλογή που εφαρμόστηκε είναι αυτή που ορίστηκε όταν ορίστηκε το ερώτημα.

header (κεφαλίδα): Όταν είναι True, η πρώτη σειρά του πίνακα που επιστρέφεται περιέχει τις κεφαλίδες των στηλών.

maxrows: Ο μέγιστος αριθμός σειρών προς επιστροφή. Η προεπιλογή είναι μηδέν, που σημαίνει ότι δεν υπάρχει όριο στον αριθμό των σειρών που επιστρέφονται.

### Παράδειγμα:

Ακολουθούν μερικά παραδείγματα για το πώς μπορεί να χρησιμοποιηθεί η μέθοδος GetRows:

##### Σε Basic

          Dim queryResults as Variant
          ' Επιστρέφει όλες τις σειρές στον πίνακα με κεφαλίδες στηλών
          queryResults = myDB.GetRows("EmployeeData", Header := True)
          ' Επιστρέφει τις πρώτες 50 εγγραφές εργαζομένων που ταξινομήθηκαν από το πεδίο 'FirstName' (Όνομα)
          queryResults = myDB.GetRows("SELECT * FROM EmployeeData ORDER BY [FirstName]", MaxRows := 50)

##### Σε Python

          queryResults = myDB.GetRows("EmployeeData", header = True)
          queryResults = myDB.GetRows("SELECT * FROM EmployeeData ORDER BY [FirstName]", maxrows = 50)

## OpenFormDocument

Opens the specified form document in normal mode. This method returns a FormDocument service instance corresponding to the specified form document.

If the form document is already open, the form document window is activated.

If the specified form document does not exist, then Nothing is returned.

### Σύνταξη:

svc.OpenFormDocument(formdocument: str): svc

### Παράμετροι:

formdocument: The name of the FormDocument to be opened, as a case-sensitive string.

### Παράδειγμα:

##### Σε Basic

Most form documents are stored in the root of the Base document and they can be opened simply using their names, as in the example below:

        Dim oFormDoc As Object
        oFormDoc = myDB.OpenFormDocument("myFormDocument")

If form documents are organized in folders, it becomes necessary to include the folder name to specify the form document to be opened, as illustrated in the following example:

        oFormDoc = myDB.OpenFormDocument("myFolder/myFormDocument")

##### Σε Python

        formDoc = myDB.OpenFormDocument("myFormDocument")

        formDoc = myDB.OpenFormDocument("myFolder/myFormDocument")

## OpenQuery

Opens the Data View window of the specified query and returns an instance of the Datasheet service.

If the query could not be opened, then Nothing is returned.

### Σύνταξη:

db.OpenQuery(queryname: str): obj

### Παράμετροι:

queryname: The name of an existing query as a case-sensitive String.

### Παράδειγμα:

##### Σε Basic

          myDatabase.OpenQuery("MyQuery")

##### Σε Python

          myDatabase.OpenQuery("MyQuery")

## OpenSql

Runs a SQL SELECT command, opens a Data View window with the results and returns an instance of the Datasheet service.

### Σύνταξη:

db.OpenSql(sql: str, directsql: bool): obj

### Παράμετροι:

sql: A string containing a valid SQL SELECT statement. Identifiers may be enclosed by square brackets.

directsql: When True, the SQL command is sent to the database engine without pre-analysis (Default = False).

### Παράδειγμα:

##### Σε Basic

          myDatabase.OpenSql("SELECT * FROM [Customers] ORDER BY [CITY]")

##### Σε Python

          myDatabase.OpenSql("SELECT * FROM [Customers] ORDER BY [CITY]")

## OpenTable

Opens the Data View window of the specified table and returns an instance of the Datasheet service.

### Σύνταξη:

db.OpenTable(tablename: str): obj

### Παράμετροι:

tablename: The name of an existing table as a case-sensitive String.

### Παράδειγμα:

##### Σε Basic

          myDatabase.OpenTable("MyTable")

##### Σε Python

          myDatabase.OpenTable("MyTable")

## Rollback

Cancels all changes made to the database since the last Commit or Rollback call.

### Σύνταξη:

db.Rollback()

### Παράδειγμα:

##### Σε Basic

          myDB.SetTransactionMode(1)
          myDB.RunSql("UPDATE ...")
          ' ...
          If bSomeCondition Then
              myDB.Rollback()
          End If

##### Σε Python

          myDB.SetTransactionMode(1)
          myDB.RunSql("UPDATE ...")
          # ...
          if bSomeCondition:
              myDB.Rollback()

## RunSql

Εκτελεί ένα ερώτημα ενέργειας μιας πρότασης SQL, όπως δημιουργία πίνακα, καθώς και εισαγωγή, ενημέρωση και διαγραφή εγγραφών.

Η μέθοδος επιστρέφει True όταν είναι επιτυχής.

Η μέθοδος RunSql απορρίπτεται με μήνυμα σφάλματος σε περίπτωση που η βάση δεδομένων είχε ανοίξει προηγουμένως σε λειτουργία μόνο για ανάγνωση.

### Σύνταξη:

db.RunSql(sqlcommand: str, directsql: bool = False): bool

### Παράμετροι:

sqlcommand: Ένα όνομα ερωτήματος (χωρίς αγκύλες) ή μια πρόταση SQL.

directsql: Όταν είναι True, η εντολή SQL αποστέλλεται στη μηχανή βάσης δεδομένων χωρίς προανάλυση. (Προεπιλογή = False). Για τα ερωτήματα, η επιλογή που εφαρμόστηκε είναι αυτή που ορίστηκε όταν ορίστηκε το ερώτημα.

### Παράδειγμα:

##### Σε Basic

          myDatabase.RunSql("INSERT INTO [EmployeeData] VALUES(25, 'Smith', 'John')", DirectSQL := True)

##### Σε Python

          myDatabase.RunSql("INSERT INTO [EmployeeData] VALUES(25, 'Smith', 'John')", directsql = True)

## SetTransactionMode

Defines the level of isolation in database transactions.

By default databases manage transactions in auto-commit mode, which means that a Commit is automatically performed after every SQL statement.

Use this method to manually determine the isolation level of transactions. When a transaction mode other than NONE is set, the script has to explicitly call the Commit method to apply the changes to the database.

This method returns True when successful.

Changing the transaction mode closes all Dataset instances created from the current database.

### Σύνταξη:

db.SetTransactionMode(transactionmode: int = 0): bool

### Παράμετροι:

transactionmode: Specifies the transaction mode. This argument must be one of the constants defined in com.sun.star.sdbc.TransactionIsolation (Default = NONE)

Read the section Transaction handling above to learn more about the transaction isolation levels used in LibreOffice.

### Παράδειγμα:

##### Σε Basic

          myDB.SetTransactionMode(com.sun.star.sdbc.TransactionIsolation.REPEATABLE_READ)
          oDataset = myDB.CreateDataset("SELECT ...")
          ' ...
          ' Reset the transaction mode to default
          myDB.SetTransactionMode()

##### Σε Python

          from com.sun.star.sdbc import TransactionIsolation
          myDB.SetTransactionMode(TransactionIsolation.REPEATABLE_READ)
          dataset = myDB.CreateDataset("SELECT ...")
          # ...
          myDB.SetTransactionMode()

Όλες οι ρουτίνες ή αναγνωριστικά του ScriptForge στη Basic που έχουν το πρόθεμα χαρακτήρα υπογράμμισης "_" δεσμεύονται για εσωτερική χρήση. Δεν προορίζονται να χρησιμοποιηθούν σε μακροεντολές Basic ή σενάρια Python.

Σχετικά θέματα

SFDatabases.Datasheet service

SFDatabases.Dataset service

Υπηρεσία SFDocuments.Document

ΥπηρεσίαSFDocuments.Form

Υπηρεσία ScriptForge.UI