访问结果集而不将其转换为 Json 或 XML ballerina.io

问题描述

我正在尝试访问纯结果集,而不将其转换为 json 或 XML。

我的数据库将结果集转换为正确的格式。

示例:

var resultSet = testDB->select("SELECT * FROM test,());
           
            if (resultSet is table<record {}>)
            { 

            }

当我尝试在 resultSet 上运行 foreach 时,我得到一个空字段。

版本:芭蕾舞女演员 --version jBallerina 1.2.8 语言规范 2020R1 更新工具 0.8.8

问候,马丁

解决方法

结果是记录流,您可以在其中访问每条记录及其字段。

您可以创建一个结果流并在访问每个字段时按照以下示例代码对其进行迭代

import tkinter as tk
from tkinter import ttk


class example(tk.Tk):

    def __init__(self,*args,**kwargs):
        tk.Tk.__init__(self,**kwargs)
        self.shared_data = {
            "variable": tk.StringVar()
        }
        container = tk.Frame(self)
        container.pack(side="top",fill="both",expand=True)
        container.grid_rowconfigure(0,weight=1)
        container.grid_columnconfigure(0,weight=1)
        self.frames = {}
        for F in (page1,page2):
            frame = F(container,self)
            self.frames[F] = frame
            frame.grid(row=0,column=0,sticky="nsew")
        self.show_frame(page1)

    def get_page(self,page_class):
        return self.frames[page_class]

    def show_frame(self,cont):
        frame = self.frames[cont]
        frame.tkraise()


class page1(tk.Frame):
    def __init__(self,parent,controller):
        tk.Frame.__init__(self,parent)
        self.controller = controller
        label = ttk.Label(self,text="first page")
        label.grid(row=0,column=4,padx=10,pady=10)
        button1 = ttk.Button(self,text="turn page",command=lambda: self.pageturn())
        button1.grid(row=3,column=1,pady=10)

    def pageturn(self):                                     
        self.controller.shared_data["variable"] = 'string i wanna pass'
        print("variable set here: ",self.controller.shared_data["variable"])
        self.controller.show_frame(page2)


class page2(tk.Frame):

    def __init__(self,parent)
        self.controller = controller

        label = ttk.Label(self,text=self.controller.shared_data["variable"])
        label.grid(row=0,pady=10)
        label = ttk.Label(self,text=self.controller.shared_data["variable"].get())
        label.grid(row=1,pady=10)
        button3 = ttk.Button(self,text=self.controller.shared_data["variable"],command=lambda: print(self.controller.shared_data["variable"]))
        button3.grid(row=8,column=10,pady=10)
        button2 = ttk.Button(self,text="if fuction sees variable",command=lambda: self.ifok())
        button2.grid(row=9,pady=10)

    def ifok(self):
        if self.controller.shared_data["variable"] == 'string i wanna pass':
            print("ok")


app = example()
app.mainloop()

您可以在JDBC examples中参考更多Ballerina By Examples