ເນື້ອໃນ

# ບໍລິການ SFDatabases.Dataset

ບໍລິການ Dataset ຖືກໃຊ້ເພື່ອສະແດງຂໍ້ມູນຕາຕະລາງທີ່ສ້າງຂຶ້ນໂດຍຖານຂໍ້ມູນ. ດ້ວຍບໍລິການນີ້ ມັນເປັນໄປໄດ້ທີ່ຈະ:

- ນຳທາງຜ່ານ ແລະ ເຂົ້າເຖິງຂໍ້ມູນໃນຊຸດຂໍ້ມູນ (dataset).

- ອັບເດດ, ແຊກ ແລະ ລຶບຂໍ້ມູນໃນຊຸດຂໍ້ມູນ.

ການອັບເດດ ແລະ ການແຊກຂໍ້ມູນໂດຍໃຊ້ບໍລິການ Dataset ແມ່ນຊ້າກວ່າການໃຊ້ຄຳສັ່ງ SQL. ເມື່ອມີການອັບເດດ ຫຼື ແຊກຂໍ້ມູນຈຳນວນຫຼາຍ, ຂໍແນະນຳໃຫ້ໃຊ້ຄຳສັ່ງ SQL ແທນການໃຊ້ວິທີການໃນບໍລິການນີ້.

## ການເອີ້ນໃຊ້ບໍລິການ

ກ່ອນທີ່ຈະໃຊ້ບໍລິການ Dataset, ຫ້ອງສະໝຸດ ScriptForge ຕ້ອງຖືກໂຫຼດ ຫຼື ນຳເຂົ້າກ່ອນ:

• ມາໂຄຣ Basic ຕ້ອງມີການໂຫຼດຄັງສຳນວນ ScriptForge ໂດຍໃຊ້ຄຳສັ່ງດັ່ງນີ້:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• ສະຄຣິບ Python ຕ້ອງມີການນຳເຂົ້າຈາກໂມດູນ scriptforge:
from scriptforge import CreateScriptService

ບໍລິການ Dataset ຖືກເອີ້ນໃຊ້ໂດຍວິທີການ CreateDataset, ເຊິ່ງສາມາດເອີ້ນໃຊ້ໄດ້ຈາກອິນສະແຕນຂອງບໍລິການ Database ຫຼື ຈາກອິນສະແຕນ Dataset ອື່ນ.

##### ໃນ Basic

ຕົວຢ່າງຕໍ່ໄປນີ້ສ້າງ Dataset ຈາກຕາຕະລາງ "Customers" ທີ່ເກັບໄວ້ໃນໄຟລ໌ຖານຂໍ້ມູນ.

        oDatabase = CreateScriptService("Database", "C:\MyDatabase.odb")
        oDataset = oDatabase.CreateDataset("Customers")
        With oDataset
            Do While .MoveNext()
                oValues = .Values()
                ' ...
            Loop
            .CloseDataset()
        End With

ເມື່ອສ້າງ Dataset ແລ້ວ, ຕຳແໜ່ງຂໍ້ມູນປັດຈຸບັນຈະຢູ່ກ່ອນຂໍ້ມູນແຖວທຳອິດ.

ຕົວຢ່າງຂ້າງລຸ່ມນີ້ສ້າງອິນສະແຕນ Dataset ໂດຍການກັ່ນຕອງຈາກຊຸດຂໍ້ມູນເດີມ.

        oNewDataset = oDataset.CreateDataset(Filter := "[City]='New York'")

##### ໃນ Python

        database = CreateScriptService("Database", r"C:\MyDatabase.odb")
        dataset = database.CreateDataset("Customers")
        while dataset.MoveNext():
            values = dataset.Values
            # ...
        dataset.CloseDataset()

        new_dataset = dataset.CreateDataset(filter = "[City]='New York'")

## ຄຸນສົມບັດ

ຊື່ | ອ່ານຢ່າງດຽວ | ປະເພດ | ຄຳອະທິບາຍ
--- | --- | --- | ---
BOF | ບໍ່ | Boolean | ສົ່ງຄືນຄ່າ True ຫາກຕຳແໜ່ງຂໍ້ມູນປັດຈຸບັນຢູ່ກ່ອນຂໍ້ມູນແຖວທຳອິດໃນຊຸດຂໍ້ມູນ, ຖ້າບໍ່ດັ່ງນັ້ນຈະສົ່ງຄືນຄ່າ False. ຕັ້ງຄຸນສົມບັດນີ້ເປັນ True ເພື່ອຍ້າຍເຄີເຊີໄປຫາຈຸດເລີ່ມຕົ້ນຂອງຊຸດຂໍ້ມູນ. ການຕັ້ງຄຸນສົມບັດນີ້ເປັນ False ຈະຖືກລະເວັ້ນ.
DefaultValues | ແມ່ນ | ບໍລິການ Dictionary | ສົ່ງຄືນ Dictionary ພ້ອມກັບຄ່າເລີ່ມຕົ້ນທີ່ໃຊ້ສຳລັບແຕ່ລະຟິວໃນຊຸດຂໍ້ມູນ. ຟິວ ຫຼື ຖັນໃນຊຸດຂໍ້ມູນຈະເປັນຄີ (keys) ໃນດິກຊັນນາຣີ. ປະເພດຟິວຂອງຖານຂໍ້ມູນຈະຖືກແປງເປັນປະເພດຂໍ້ມູນ Basic/Python ທີ່ກົງກັນ. ເມື່ອປະເພດຟິວບໍ່ໄດ້ຖືກກຳນົດ, ຄ່າເລີ່ມຕົ້ນຈະເປັນ Null ຫາກຟິວນັ້ນສາມາດຫວ່າງໄດ້ ຫຼື Empty.
EOF | ບໍ່ | Boolean | ສົ່ງຄືນຄ່າ True ຫາກຕຳແໜ່ງຂໍ້ມູນປັດຈຸບັນຢູ່ຫຼັງຂໍ້ມູນແຖວສຸດທ້າຍໃນຊຸດຂໍ້ມູນ, ຖ້າບໍ່ດັ່ງນັ້ນຈະສົ່ງຄືນຄ່າ False. ຕັ້ງຄຸນສົມບັດນີ້ເປັນ True ເພື່ອຍ້າຍເຄີເຊີໄປຫາຈຸດສິ້ນສຸດຂອງຊຸດຂໍ້ມູນ. ການຕັ້ງຄຸນສົມບັດນີ້ເປັນ False ຈະຖືກລະເວັ້ນ.
Fields | ແມ່ນ | Array | ສົ່ງຄືນ Array ທີ່ປະກອບດ້ວຍຊື່ຂອງທຸກຟິວໃນຊຸດຂໍ້ມູນ.
Filter | ແມ່ນ | String | ສົ່ງຄືນການກັ່ນຕອງທີ່ຖືກປັບໃຊ້ເພີ່ມເຕີມຈາກຂໍ້ຄວາມ WHERE ໃນຄຳສັ່ງ SQL ເບື້ອງຕົ້ນ. ຄຸນສົມບັດນີ້ຈະສະແດງໃນຮູບແບບຂໍ້ຄວາມ WHERE ໂດຍບໍ່ມີຄຳສຳຄັນ "WHERE".
OrderBy | ແມ່ນ | String | ສົ່ງຄືນຂໍ້ຄວາມການຈັດລຽງທີ່ຈະມາແທນທີ່ຂໍ້ຄວາມ ORDER BY ທີ່ມີຢູ່ໃນຄຳສັ່ງ SQL ເບື້ອງຕົ້ນ. ຄຸນສົມບັດນີ້ຈະສະແດງໃນຮູບແບບຂໍ້ຄວາມ ORDER BY ໂດຍບໍ່ມີຄຳສຳຄັນ "ORDER BY".
ParentDatabase | ແມ່ນ | ບໍລິການ Database | ສົ່ງຄືນອິນສະແຕນ Database ທີ່ກົງກັບຖານຂໍ້ມູນແມ່ຂອງຊຸດຂໍ້ມູນປັດຈຸບັນ.
RowCount | ແມ່ນ | Long | ສົ່ງຄືນຈຳນວນແຖວຂໍ້ມູນທີ່ແນ່ນອນໃນຊຸດຂໍ້ມູນ. ໝາຍເຫດ: ການປະເມີນຄຸນສົມບັດນີ້ໝາຍເຖິງການໄລ່ເບິ່ງທັງໝົດຊຸດຂໍ້ມູນ, ເຊິ່ງອາດຈະໃຊ້ເວລາຫຼາຍຂຶ້ນກັບຂະໜາດຂອງຊຸດຂໍ້ມູນ.
RowNumber | ແມ່ນ | Long | ສົ່ງຄືນລຳດັບຂອງຂໍ້ມູນປັດຈຸບັນໂດຍເລີ່ມຈາກ 1. ສົ່ງຄືນ 0 ຫາກບໍ່ຮູ້ຄຸນສົມບັດນີ້.
Source | ແມ່ນ | String | ສົ່ງຄືນຕົ້ນທາງຂອງຊຸດຂໍ້ມູນ. ມັນສາມາດເປັນໄດ້ທັງຊື່ຕາຕະລາງ, ຊື່ຄຳສັ່ງສອບຖາມ ຫຼື ຄຳສັ່ງ SQL.
SourceType | ແມ່ນ | String | ສົ່ງຄືນແຫຼ່ງທີ່ມາຂອງຊຸດຂໍ້ມູນ. ມັນສາມາດເປັນຄ່າສະຕຣິງໃດໜຶ່ງດັ່ງນີ້: TABLE, QUERY ຫຼື SQL.
UpdatableFields | ແມ່ນ | Array | ສົ່ງຄືນ Array ທີ່ບັນຈຸຊື່ຂອງຟິວໃນຊຸດຂໍ້ມູນທີ່ສາມາດອັບເດດໄດ້.
Values | ແມ່ນ | Array | ສົ່ງຄືນ Dictionary ທີ່ບັນຈຸຄູ່ຂອງ (ຊື່ຟິວ: ຄ່າ) ຂອງຂໍ້ມູນປັດຈຸບັນໃນຊຸດຂໍ້ມູນ.
XRowSet | ແມ່ນ | ອັອບເຈັກ UNO | ສົ່ງຄືນອັອບເຈັກ UNO com.sun.star.sdb.RowSet ທີ່ສະແດງເຖິງຊຸດຂໍ້ມູນ.

ລາຍຊື່ວິທີການໃນບໍລິການ Dataset
CloseDataset CreateDataset Delete ExportValueToFile GetRows | GetValue Insert MoveFirst MoveLast | MoveNext MovePrevious Reload Update

## CloseDataset

ປິດຊຸດຂໍ້ມູນປັດຈຸບັນ. ວິທີນີ້ຈະສົ່ງຄືນຄ່າ True ເມື່ອສຳເລັດ.

ແນະນຳໃຫ້ປິດຊຸດຂໍ້ມູນຫຼັງຈາກການນຳໃຊ້ ເພື່ອຄືນຊັບພະຍາກອນໃຫ້ລະບົບ.

### ໄວຍາກອນ:

svc.CloseDataset(): bool

### ຕົວຢ່າງ:

##### ໃນ Basic

          oDataset = oDatabase.CreateDataset("MyTable")
          ' ...
          oDataset.CloseDataset()

##### ໃນ Python

          dataset = database.CreateDataset("MyTable")
          # ...
          dataset.CloseDataset()

## CreateDataset

ສົ່ງຄືນອິນສະແຕນຊ໌ບໍລິການ Dataset ຈາກຊຸດຂໍ້ມູນທີ່ມີຢູ່ ໂດຍການນຳໃຊ້ຕົວຕອງທີ່ລະບຸ ແລະ ຄຳສັ່ງ ORDER BY.

### ໄວຍາກອນ:

svc.CreateDataset(opt filter: str, opt orderby: str): svc

### ພາຣາມິເຕີ:

filter: ລະບຸເງື່ອນໄຂທີ່ລະບຽບຂໍ້ມູນຕ້ອງກົງກັນ ເພື່ອໃຫ້ລວມຢູ່ໃນຊຸດຂໍ້ມູນທີ່ສົ່ງຄືນ. ອາຄິວເມັ້ນນີ້ແມ່ນສະແດງອອກເປັນຄຳສັ່ງ SQL WHERE ໂດຍບໍ່ຕ້ອງມີຄຳຫຼັກ "WHERE". ຖ້າບໍ່ໄດ້ລະບຸອາຄິວເມັ້ນນີ້, ຕົວຕອງທີ່ໃຊ້ໃນຊຸດຂໍ້ມູນປັດຈຸບັນຈະຖືກນຳໃຊ້, ຖ້າບໍ່ດັ່ງນັ້ນ ຕົວຕອງປັດຈຸບັນຈະຖືກແທນທີ່ດ້ວຍອາຄິວເມັ້ນນີ້.

orderby: ລະບຸການຈັດລຽງຂອງຊຸດຂໍ້ມູນເປັນຄຳສັ່ງ SQL ORDER BY ໂດຍບໍ່ຕ້ອງມີຄຳຫຼັກ "ORDER BY". ຖ້າບໍ່ໄດ້ລະບຸອາຄິວເມັ້ນນີ້, ລຳດັບການຈັດລຽງທີ່ໃຊ້ໃນຊຸດຂໍ້ມູນປັດຈຸບັນຈະຖືກນຳໃຊ້, ຖ້າບໍ່ດັ່ງນັ້ນ ລຳດັບການຈັດລຽງປັດຈຸບັນຈະຖືກແທນທີ່ດ້ວຍອາຄິວເມັ້ນນີ້.

### ຕົວຢ່າງ:

##### ໃນ Basic

          ' ໃຊ້ຂໍ້ຄວາມວ່າງ (empty string) ເພື່ອລຶບຕົວຕອງປັດຈຸບັນອອກ
          oNewDataset = oDataset.CreateDataset(Filter := "")
          ' ຕົວຢ່າງຂອງຕົວຕອງທົ່ວໄປ
          oNewDataset = oDataset.CreateDataset(Filter := "[Name] = 'John'")
          oNewDataset = oDataset.CreateDataset(Filter := "[Name] LIKE 'A'")
          ' ສາມາດເພີ່ມເງື່ອນໄຂເພີ່ມເຕີມເຂົ້າໃນຕົວຕອງປັດຈຸບັນໄດ້
          oNewDataset = oDataset.CreateDataset(Filter := "(" & oDataset.Filter & ") AND [Name] LIKE 'A'")

##### ໃນ Python

          new_dataset = dataset.CreateDataset(filter = "")
          new_dataset = dataset.CreateDataset(filter = "[Name] = 'John'")
          new_dataset = dataset.CreateDataset(filter = "[Name] LIKE 'A'")
          new_dataset = dataset.CreateDataset(filter = f"({dataset.Filter}) AND [Name] LIKE 'A'")

## Delete

ລຶບລະບຽບຂໍ້ມູນປັດຈຸບັນອອກຈາກຊຸດຂໍ້ມູນ. ວິທີນີ້ຈະສົ່ງຄືນຄ່າ True ເມື່ອສຳເລັດ.

ຫຼັງຈາກການປະຕິບັດງານນີ້, ເຄີເຊີ (cursor) ຈະຖືກຍ້າຍໄປທີ່ລະບຽບຂໍ້ມູນຖັດຈາກອັນທີ່ຖືກລຶບ. ຖ້າລະບຽບຂໍ້ມູນທີ່ຖືກລຶບນັ້ນແມ່ນອັນສຸດທ້າຍໃນຊຸດຂໍ້ມູນ, ເຄີເຊີຈະຖືກຍ້າຍໄປໄວ້ຫຼັງຈາກນັ້ນ ແລະ ຄຸນສົມບັດ EOF ຈະສົ່ງຄືນຄ່າ True.

### ໄວຍາກອນ:

svc.Delete(): bool

### ຕົວຢ່າງ:

##### ໃນ Basic

          oDataset.Delete()

##### ໃນ Python

          dataset.Delete()

## ExportValueToFile

ສົ່ງອອກຄ່າຂອງຟີວ (field) ຖານສອງຂອງລະບຽບຂໍ້ມູນປັດຈຸບັນໄປຍັງໄຟລ໌ທີ່ລະບຸ.

ຖ້າຟີວທີ່ລະບຸບໍ່ແມ່ນຖານສອງ ຫຼື ບໍ່ມີຂໍ້ມູນ, ໄຟລ໌ຜົນລັບຈະບໍ່ຖືກສ້າງຂຶ້ນ.

### ໄວຍາກອນ:

svc.ExportValueToFile(fieldname: str, filename: str, overwrite: bool): bool

### ພາຣາມິເຕີ:

fieldname: ຊື່ຂອງຟີວຖານສອງທີ່ຈະສົ່ງອອກ, ເປັນຂໍ້ຄວາມທີ່ແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່.

filename: ເສັ້ນທາງເຕັມຂອງໄຟລ໌ທີ່ຈະສ້າງຂຶ້ນ ໂດຍໃຊ້ຮູບແບບທີ່ກຳນົດໄວ້ໃນຄຸນສົມບັດ FileSystem.FileNaming.

overwrite: ຕັ້ງອາຄິວເມັ້ນນີ້ເປັນ True ເພື່ອອະນຸຍາດໃຫ້ຂຽນທັບໄຟລ໌ປາຍທາງ (ຄ່າເລີ່ມຕົ້ນ = False).

### ຕົວຢ່າງ:

ໃນຕົວຢ່າງລຸ່ມນີ້, ຊຸດຂໍ້ມູນມີຟີວທີ່ຊື່ວ່າ "Picture" ເຊິ່ງຈະຖືກສົ່ງອອກເປັນໄຟລ໌ຮູບພາບ.

##### ໃນ Basic

          oDataset.ExportValueToFile("Picture", "C:\my_image.png", True)

##### ໃນ Python

          dataset.ExportValueToFile("Picture", r"C:\my_image.png", True)

## GetRows

ສົ່ງຄືນເນື້ອໃນຂອງຊຸດຂໍ້ມູນໃນຮູບແບບອາເຣ 2 ມິຕິ, ເເລີ່ມຈາກລະບຽບຂໍ້ມູນທຳອິດຖັດຈາກລະບຽບຂໍ້ມູນປັດຈຸບັນ.

ຫຼັງຈາກການປະຕິບັດ, ເຄີເຊີຈະຖືກຍ້າຍໄປທີ່ແຖວທີ່ອ່ານຫຼ້າສຸດ ຫຼື ຫຼັງລະບຽບຂໍ້ມູນສຸດທ້າຍໃນຊຸດຂໍ້ມູນ, ໃນກໍລະນີນັ້ນ ຄຸນສົມບັດ EOF ຈະສົ່ງຄືນຄ່າ True.

ວິທີນີ້ສາມາດໃຊ້ເພື່ອອ່ານຂໍ້ມູນຈາກຊຸດຂໍ້ມູນເປັນຊຸດໆ, ເຊິ່ງຂະໜາດແມ່ນກຳນົດໂດຍອາຄິວເມັ້ນ maxrows.

ອາເຣທີ່ສົ່ງຄືນຈະມີສອງມິຕິສະເໝີ, ເຖິງແມ່ນວ່າຊຸດຂໍ້ມູນຈະມີພຽງຄໍລຳດຽວ ແລະ ລະບຽບຂໍ້ມູນດຽວກໍຕາມ.

### ໄວຍາກອນ:

svc.GetRows(header: bool, maxrows: int): any

### ພາຣາມິເຕີ:

header: ຕັ້ງອາຄິວເມັ້ນນີ້ເປັນ True ເພື່ອໃຫ້ລາຍການທຳອິດໃນ Array ເປັນຫົວຄໍລຳ (ຄ່າເລີ່ມຕົ້ນ = False).

maxrows: ກຳນົດຈຳນວນລະບຽບຂໍ້ມູນສູງສຸດທີ່ຈະສົ່ງຄືນ. ຖ້າຈຳນວນລະບຽບຂໍ້ມູນທີ່ມີຢູ່ໜ້ອຍກວ່າ maxrows, ຂະໜາດຂອງອາເຣທີ່ສົ່ງຄືນຈະເທົ່າກັບຈຳນວນລະບຽບຂໍ້ມູນທີ່ເຫຼືອໃນຊຸດຂໍ້ມູນ. ປະອາຄິວເມັ້ນນີ້ໄວ້ວ່າງ ຫຼື ຕັ້ງເປັນສູນ ເພື່ອສົ່ງຄືນທຸກແຖວໃນຊຸດຂໍ້ມູນ (ຄ່າເລີ່ມຕົ້ນ = 0)

### ຕົວຢ່າງ:

ຕົວຢ່າງຕໍ່ໄປນີ້ອ່ານຊຸດຂໍ້ມູນເທື່ອລະ 100 ແຖວ ຈົນກວ່າຈະອ່ານຊຸດຂໍ້ມູນທັງໝົດສຳເລັດ.

##### ໃນ Basic

          Dim arrChunk As Variant, lMaxRows As Long
          lMaxRows = 100
          Do
              arrChunk = oDataset.GetRows(MaxRows := lMaxRows)
              If UBound(arrChunk, 1) >= 0 Then
                  ' ...
              End If
          Loop Until UBound(arrChunk, 1) < lMaxRows - 1

##### ໃນ Python

          max_rows = 100
          chunk = dataset.GetRows(maxrows = max_rows)
          while len(chunk) > 0:
              # ...
              chunk = dataset.GetRows(maxrows = max_rows)

## GetValue

ສົ່ງຄືນຄ່າຂອງຟີວທີ່ລະບຸຈາກລະບຽບຂໍ້ມູນປັດຈຸບັນຂອງຊຸດຂໍ້ມູນ.

ຖ້າຟີວທີ່ລະບຸເປັນຖານສອງ, ມັນຈະສົ່ງຄືນຄວາມຍາວຂອງມັນ.

### ໄວຍາກອນ:

svc.GetValue(fieldname: str): any

### ພາຣາມິເຕີ:

fieldname: ຊື່ຂອງຟີວທີ່ຈະສົ່ງຄືນ, ເປັນຂໍ້ຄວາມທີ່ແຍກຕົວອັກສອນນ້ອຍ-ໃຫຍ່.

### ຕົວຢ່າງ:

##### ໃນ Basic

          currId = oDataset.GetValue(FieldName := "ID")

##### ໃນ Python

          curr_id = dataset.GetValue(fieldname = "ID")

## Insert

ແຊກລະບຽບຂໍ້ມູນໃໝ່ໃສ່ທ້າຍຊຸດຂໍ້ມູນ ແລະ ຕັ້ງຄ່າເລີ່ມຕົ້ນໃຫ້ຟີວຕ່າງໆດ້ວຍຄ່າທີ່ລະບຸ.

ຖ້າຄີຫຼັກ (primary key) ຂອງຊຸດຂໍ້ມູນເປັນຄ່າອັດຕະໂນມັດ, ວິທີນີ້ຈະສົ່ງຄືນຄ່າຄີຫຼັກຂອງລະບຽບຂໍ້ມູນໃໝ່. ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນຈະສົ່ງຄືນ 0 (ເມື່ອສຳເລັດ) ຫຼື -1 (ເມື່ອບໍ່ສຳເລັດ).

ຟີວທີ່ສາມາດອັບເດດໄດ້ໂດຍບໍ່ມີການລະບຸຄ່າ ຈະຖືກຕັ້ງເປັນຄ່າເລີ່ມຕົ້ນຂອງພວກມັນ.

ຖ້າຟີວທີ່ລະບຸເປັນຖານສອງ, ມັນຈະສົ່ງຄືນຄວາມຍາວຂອງມັນ.

### ໄວຍາກອນ:

svc.Insert(pvargs: any): int

### ພາຣາມິເຕີ:

pvargs: Dictionary ທີ່ບັນຈຸຄູ່ຂອງຊື່ຟີວ ແລະ ຄ່າຂອງພວກມັນ. ຫຼື ສາມາດລະບຸອາຄິວເມັ້ນເປັນຈຳນວນຄູ່ ໂດຍສະຫຼັບກັນລະຫວ່າງຊື່ຟີວ (ເປັນ String) ແລະ ຄ່າຂອງພວກມັນ.

### ຕົວຢ່າງ:

##### ໃນ Basic

ສົມມຸດວ່າມີຕາຕະລາງຊື່ "Customers" ທີ່ມີ 4 ຟີວ: "ID" (BigInt, ຄ່າອັດຕະໂນມັດ ແລະ ຄີຫຼັກ), "Name" (VarChar), "Age" (Integer), "City" (VarChar).

ຕົວຢ່າງລຸ່ມນີ້ແຊກລະບຽບຂໍ້ມູນໃໝ່ໃສ່ຊຸດຂໍ້ມູນນີ້ໂດຍໃຊ້ Dictionary.

          oDataset = oDatabase.CreateDataset("Customers")
          oNewData = CreateScriptService("Dictionary")
          oNewData.Add("Name", "John")
          oNewData.Add("Age", 50)
          oNewData.Add("City", "Chicago")
          lNewID = oDataset.Insert(oNewData)

ຜົນລັບດຽວກັນສາມາດເຮັດໄດ້ໂດຍການສົ່ງຄູ່ຂອງຟີວ ແລະ ຄ່າທັງໝົດເປັນອາຄິວເມັ້ນ:

          oDataset.Insert("Name", "John", "Age", 50, "City", "Chicago")

##### ໃນ Python

          dataset = database.CreateDataset("Customers")
          new_data = {"Name": "John", "Age": 30, "City": "Chicago"}
          new_id = dataset.Insert(new_data)

ການເອີ້ນໃຊ້ຕໍ່ໄປນີ້ແມ່ນຮອງຮັບໃນ Python:

          dataset.Insert("Name", "John", "Age", 50, "City", "Chicago")
          dataset.Insert(Name = "John", Age = 50, City = "Chicago")

## MoveFirst / MoveLast

ຍ້າຍເຄີເຊີຂອງຊຸດຂໍ້ມູນໄປທີ່ລະບຽບຂໍ້ມູນທຳອິດ (ດ້ວຍ MoveFirst) ຫຼື ໄປທີ່ລະບຽບຂໍ້ມູນສຸດທ້າຍ (ດ້ວຍ MoveLast).

ວິທີການນີ້ສົ່ງຄືນ True ເມື່ອສຳເລັດ.

ລະບຽບຂໍ້ມູນທີ່ຖືກລຶບຈະຖືກລະເລີຍໂດຍວິທີນີ້.

### ໄວຍາກອນ:

svc.MoveFirst(): bool

svc.MoveLast(): bool

### ຕົວຢ່າງ:

##### ໃນ Basic

          oDataset.MoveFirst()

##### ໃນ Python

          dataset.MoveFirst()

## MoveNext / MovePrevious

ຍ້າຍເຄີເຊີຂອງຊຸດຂໍ້ມູນໄປຂ້າງໜ້າ (ດ້ວຍ MoveNext) ຫຼື ຖອຍຫຼັງ (ດ້ວຍ MovePrevious) ຕາມຈຳນວນລະບຽບຂໍ້ມູນທີ່ກຳນົດ.

ວິທີນີ້ຈະສົ່ງຄືນຄ່າ True ເມື່ອສຳເລັດ.

ລະບຽບຂໍ້ມູນທີ່ຖືກລຶບຈະຖືກລະເລີຍໂດຍວິທີນີ້.

### ໄວຍາກອນ:

svc.MoveNext(offset: int = 1): bool

svc.MovePrevious(offset: int = 1): bool

### ພາຣາມິເຕີ:

offset: ຈຳນວນລະບຽບຂໍ້ມູນທີ່ເຄີເຊີຈະຍ້າຍໄປຂ້າງໜ້າ ຫຼື ຖອຍຫຼັງ. ອາຄິວເມັ້ນນີ້ສາມາດເປັນຄ່າລົບໄດ້ (ຄ່າເລີ່ມຕົ້ນ = 1).

### ຕົວຢ່າງ:

##### ໃນ Basic

          oDataset.MoveNext()
          oDataset.MoveNext(5)

##### ໃນ Python

          dataset.MoveNext()
          dataset.MoveNext(5)

## Reload

ໂຫຼດຊຸດຂໍ້ມູນຄືນໃໝ່ຈາກຖານຂໍ້ມູນ. ສາມາດກຳນົດຄຸນສົມບັດ Filter ແລະ OrderBy ໄດ້ເມື່ອເອີ້ນໃຊ້ວິທີນີ້.

ວິທີນີ້ຈະສົ່ງຄືນຄ່າ True ເມື່ອສຳເລັດ.

ການໂຫຼດຊຸດຂໍ້ມູນຄືນໃໝ່ມີປະໂຫຍດເມື່ອມີການແຊກ ຫຼື ລຶບລະບຽບຂໍ້ມູນອອກຈາກຖານຂໍ້ມູນ. ໝາຍເຫດວ່າ ວິທີ CreateDataset ແລະ Reload ເຮັດວຽກຄ້າຍຄືກັນ, ແຕ່ Reload ຈະນຳໃຊ້ອິນສະແຕນຊ໌ຄລາສ Dataset ເດີມຄືນໃໝ່.

### ໄວຍາກອນ:

svc.Reload(opt filter: str, opt orderby: str): bool

### ພາຣາມິເຕີ:

filter: ລະບຸເງື່ອນໄຂທີ່ລະບຽບຂໍ້ມູນຕ້ອງກົງກັນ ເພື່ອໃຫ້ລວມຢູ່ໃນຊຸດຂໍ້ມູນທີ່ສົ່ງຄືນ. ອາຄິວເມັ້ນນີ້ແມ່ນສະແດງອອກເປັນຄຳສັ່ງ SQL WHERE ໂດຍບໍ່ຕ້ອງມີຄຳຫຼັກ "WHERE". ຖ້າບໍ່ໄດ້ລະບຸອາຄິວເມັ້ນນີ້, ຕົວຕອງທີ່ໃຊ້ໃນຊຸດຂໍ້ມູນປັດຈຸບັນຈະຖືກນຳໃຊ້, ຖ້າບໍ່ດັ່ງນັ້ນ ຕົວຕອງປັດຈຸບັນຈະຖືກແທນທີ່ດ້ວຍອາຄິວເມັ້ນນີ້.

orderby: ລະບຸການຈັດລຽງຂອງຊຸດຂໍ້ມູນເປັນຄຳສັ່ງ SQL ORDER BY ໂດຍບໍ່ຕ້ອງມີຄຳຫຼັກ "ORDER BY". ຖ້າບໍ່ໄດ້ລະບຸອາຄິວເມັ້ນນີ້, ລຳດັບການຈັດລຽງທີ່ໃຊ້ໃນຊຸດຂໍ້ມູນປັດຈຸບັນຈະຖືກນຳໃຊ້, ຖ້າບໍ່ດັ່ງນັ້ນ ລຳດັບການຈັດລຽງປັດຈຸບັນຈະຖືກແທນທີ່ດ້ວຍອາຄິວເມັ້ນນີ້.

### ຕົວຢ່າງ:

##### ໃນ Basic

          oDataset.Reload()
          oDataset.Reload(Filter := "[Name] = 'John'", OrderBy := "Age")

##### ໃນ Python

          dataset.Reload()
          dataset.Reload(Filter = "[Name] = 'John'", OrderBy = "Age")

## Update

ອັບເດດຄ່າຂອງຟີວທີ່ລະບຸໃນລະບຽບຂໍ້ມູນປັດຈຸບັນ.

ວິທີນີ້ຈະສົ່ງຄືນຄ່າ True ເມື່ອສຳເລັດ.

### ໄວຍາກອນ:

svc.Update(pvargs: any): bool

### ພາຣາມິເຕີ:

pvargs: Dictionary ທີ່ບັນຈຸຄູ່ຂອງຊື່ຟີວ ແລະ ຄ່າຂອງພວກມັນ. ຫຼື ສາມາດລະບຸອາຄິວເມັ້ນເປັນຈຳນວນຄູ່ ໂດຍສະຫຼັບກັນລະຫວ່າງຊື່ຟີວ (ເປັນ String) ແລະ ຄ່າຂອງພວກມັນ.

### ຕົວຢ່າງ:

##### ໃນ Basic

ຕົວຢ່າງລຸ່ມນີ້ອັບເດດລະບຽບຂໍ້ມູນປັດຈຸບັນໂດຍໃຊ້ Dictionary.

          oNewValues = CreateScriptService("Dictionary")
          oNewValues.Add("Age", 51)
          oNewValues.Add("City", "New York")
          oDataset.Update(oNewValues)

ຜົນລັບດຽວກັນສາມາດເຮັດໄດ້ໂດຍການສົ່ງຄູ່ຂອງຟີວ ແລະ ຄ່າທັງໝົດເປັນອາຄິວເມັ້ນ:

          oDataset.Update("Age", 51, "City", "New York")

##### ໃນ Python

          new_values = {"Age": 51, "City": "New York"}
          dataset.Update(new_values)

          dataset.Update("Age", 51, "City", "New York")
          dataset.Update(Age = 51, City = "New York")

ຣູທີນ ຫຼື ຕົວລະບຸ Basic ຂອງ ScriptForge ທັງໝົດທີ່ຂຶ້ນຕົ້ນດ້ວຍເຄື່ອງໝາຍຂີດກ້ອງ "_" ແມ່ນສະຫງວນໄວ້ສຳລັບໃຊ້ພາຍໃນ. ພວກມັນບໍ່ໄດ້ມີໄວ້ໃຫ້ໃຊ້ໃນມາໂຄຣ Basic ຫຼື ສະຄຣິບ Python.

ຫົວຂໍ້ທີ່ກ່ຽວຂ້ອງ

ບໍລິການ SFDatabases.Database

ກະລຸນາສະໜັບສະໜູນພວກເຮົາ!