SFDatabases.Database zerbitzua

Database zerbitzuak Base dokumentuetan kapsulatutako edo deskribatutako datu-baseak atzitzea ahalbidetzen du. Zerbitzu honek honakoak egiteko metodoak ditu:

Database zerbitzuaren instantzia bakoitzak datu-base bakar bat ordezkatzen du eta bere taula, kontsulta eta datuak erabiltzeko aukera irekitzen du.

This service does not provide access to forms or reports in the Base document that contains the database. To access forms in a Base document, refer to the method FormDocuments of the Base service.

note

Zerbitzu horren eta datu-basearen arteko truke guztiak SQL bidez soilik gauzatzen dira.


SQL instrukzioak modu zuzenean edo zeharkakoan egin daitezke. Modu zuzenean, instrukzioa sintaxiaren egiaztatzerik edo berrikuspenik gabe transferituko zaio datu-basearen motorrari.

Emandako interfazeek taula sinpleak eta kontsulten zerrendak eskaintzen dituzte, bai eta datu-baseko datuak atzitzeko modua ere.

tip

SQL instrukzioak irakurgarriagoak izan daitezen, erabili kortxeteak "[ ]" taulen, kontsulten eta eremuen izenak inguratzeko, beste inguratze-karaktere batzuk RDBMS jakin batzuetan esklusiboak izan baitaitezke. Hala ere, kontuan hartu inguratze-karaktereak derrigorrezkoak direla testuinguru honetan.


Zerbitzuari deitzea

Sintaxia:

Database zerbitzuaren instantzia bat sortzeko, erabili CreateScriptService metodoa:

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

note

Goian deskribatutako sintaxian, "SFDatabases.Database" zein "Database" erabili daitezke CreateScriptService metodoaren lehen argumentu gisa.


Parametroak:

filename: Base fitxategiaren izena. SF_FileSystem.FileNaming notazioa erabilita adierazi behar da.

registrationname: Erregistratutako datu-base baten izena. filename ematen bada, argumentu hori ez da erabili behar.

Era berean, registrationname zehaten bada, filename parametroa ez da definitu behar.

readonly: Datu-basea irakurtzeko moduan soilik irekiko den zehazten du (Balio lehenetsia = True (egia)).

user, password: Datu-basearen zerbitzariarekin konektatzeko parametro gehigarriak.

Adibidea:

Basic lengoaian

      GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
      Dim myDatabase as Object
      Set myDatabase = CreateScriptService("Database", "/home/user/Documents/myDB.odb")
      ' Exekutatu kontsultak, SQL instrukzioak...
      myDatabase.CloseDatabase()
    
Python lengoaian

      from scriptforge import CreateScriptService
      myDatabase = CreateScriptService("Database", "/home/user/Documents/myDB.odb")
      # Exekutatu kontsultak, SQL instrukzioak...
      myDatabase.CloseDatabase()
    

Datu-baseak atzitzea UI zerbitzua erabilita

Posible da Base dokumentu bati lotutako datu-basea ScriptForge.UI zerbitzuaren bidez atzitzea, beheko adibideetan ikusten den moduan:

Basic lengoaian

      Dim myDoc As Object, myDatabase As Object, ui As Object
      Set ui = CreateScriptService("UI")
      Set myDoc = ui.OpenBaseDocument("/home/user/Documents/myDB.odb")
      ' Erabiltzailea eta pasahitza behean ematen dira, beharrezkoak badira
      Set myDatabase = myDoc.GetDatabase()
      ' Exekutatu kontsultak, SQL instrukzioak...
      myDatabase.CloseDatabase()
      myDoc.CloseDocument()
    
Python lengoaian

      ui = CreateScriptService("UI")
      doc = ui.OpenBaseDocument("/home/user/Documents/myDB.odb")
      # Erabiltzailea eta pasahitza behean ematen dira, beharrezkoak badira
      myDatabase = doc.GetDatabase()
      # Exekutatu kontsultak, SQL instrukzioak...
      myDatabase.CloseDatabase()
      doc.CloseDocument()
    
tip

Goiko adibidean erabilitako GetDatabase metodoa ScriptForgen Base zerbitzukoa da.


Propietateak

Izena

Irakurtzeko soilik

Mota

Deskribapena

Queries

Bai

Kateen matrizea

Biltegiratutako kontsulten zerrenda

Tables

Bai

Kateen matrizea

Biltegiratutako taulen zerrenda.

XConnection

Bai

XConnection

Datu-basearen uneko konexioa ordezkatzen duen UNO objektua.

XMetaData

Bai

XDatabaseMetaData

Datu-basearen sistema-atributuak deskribatzen dituzten metadatuak ordezkatzen dituen UNO objektua.


Database zerbitzuko metodoen zerrenda

CloseDatabase
DAvg
DCount

DMin
DMax
DSum

DLookup
GetRows
RunSql


CloseDatabase

Datu-basearen uneko konexioa ixten du.

Sintaxia:

db.CloseDatabase()

Adibidea:


    myDatabase.CloseDatabase() ' Basic
  

    myDatabase.CloseDatabase() # Python
  

DAvg, DCount, DMin, DMax, DSum

Emandako agregazio-funtzioa kalkulatzen du taula batekoa den eremu edo adierazpen batean.

Aukeran, SQLren WHERE klausula zehaztu daiteke agregazio-funtzioaren aurretik aplikatuko den iragazki gisa.

Sintaxia:

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

Parametroak:

expression: SQL adierazpen bat, non eremu-izenak kortxeteekin inguratuta dauden.

tablename: Taula baten izena (kortxeterik gabe).

criteria: A WHERE clause without the "WHERE" keyword, in which field names are surrounded with square brackets.

Adibidea:

Beheko adibidean, Employees.odb fitxategiak EmployeeData izeneko taula bat duela ulertzen da.

Basic lengoaian

      GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
      Dim myDB as Variant
      Set myDB = CreateScriptService("Database", "/home/user/Databases/Employees.odb")
      ' Taulako enplegatu kopurua zenbatzen du
      MsgBox myDB.DCount("[ID]", "EmployeeData")
      ' Taulako soldata guztien batuketa itzultzen du
      MsgBox myDB.DSum("[Salary]", "EmployeeData")
      ' Behean, taulak nola iragazten diren erakusten dituzten zenbait adibide daude
      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 lengoaian

      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 adierapzen bat kalkulatzen du Criteria parametroak definitutako WHERE klausulak itzulitako erregistro batak batean.

Kontsultak erregistro anitz itzultzen baditu, lehena soilik hartuko da kontuan. Erabili OrderClause parametroa kontsulta-emaitzak nola ordenatuko diren zehazteko.

Sintaxia:

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

Parametroak:

expression: SQL adierazpen bat, non eremu-izenak kortxeteekin inguratuta dauden.

tablename: Taula baten izena (kortxeterik gabe).

criteria: A WHERE clause without the "WHERE" keyword, in which field names are surrounded with square brackets.

orderclause: An ORDER BY clause without the "ORDER BY" keywords. Field names should be surrounded with square brackets.

Adibidea:

Basic lengoaian

      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 lengoaian

      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

Taula baten edukiak edo SELECT kontsulta baten edo SQL instrukzio baten emaitzak bi dimentsiotako matrize batean biltegiratzen ditu. Matrizeko lehen indizea erregistroei dagokie eta bigarren indizea zutabei dagokie.

Goiko muga bat zehaztu daiteke itzulitako errenkaden kopurua mugatzeko. Aukeran, zutabe-izenak txertatu daitezke matrizearen lehen errenkadan.

Itzulitako matrizea hutsik egongo da errenkadarik ez bada itzuli eta zutabe-goiburukoak beharrezkoak ez badira.

Sintaxia:

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

Parametroak:

sqlcommand: A table or query name (without square brackets) or a SELECT SQL statement.

directsql: When True, the SQL command is sent to the database engine without pre-analysis. Default is False. This argument is ignored for tables. For queries, the applied option is the one set when the query was defined.

header: When True, the first row of the returned array contains the column headers.

maxrows: The maximum number of rows to return. The default is zero, meaning there is no limit to the number of returned rows.

Adibidea:

Behean, GetRows metodoa nola erabili daitekeen azaltzen duten zenbait adibide:

Basic lengoaian

      Dim queryResults as Variant
      ' Taulako errenkada guztiak itzultzen ditu, zutabe-goiburukoekin
      queryResults = myDB.GetRows("EmployeeData", Header := True)
      ' Lehen 50 enplegatuen erregistroak itzultzen ditu, 'FirstName' eremuaren arabera ordenatuta
      queryResults = myDB.GetRows("SELECT * FROM EmployeeData ORDER BY [FirstName]", MaxRows := 50)
    
Python lengoaian

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

RunSql

SQL instrukzio baten ekintza-kontsulta bat exekutatzen du, adibidez taula bat sortzea edo erregistroak txertatzea, eguneratzea edo ezabatzea.

Metodoak True itzultzen du arrakasta duenean.

tip

RunSql metodoa errore-mezu batekin baztertzen da datu-basea lehenago soilik irakurtzeko moduan ireki bada.


Sintaxia:

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

Parametroak:

sqlcommand: A query name (without square brackets) or a SQL statement.

directsql: When True, the SQL command is sent to the database engine without pre-analysis. (Default = False). For queries, the applied option is the one set when the query was defined.

Adibidea:

Basic lengoaian

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

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

Azpimarraren karaktere bat, "_", aurrizki gisa duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez dira Basic makroetan edo Python scriptetan erabili behar.