Доступ к результирующему набору без преобразования его в Json или XML ballerina.io

#ballerina

#балерина

Вопрос:

Я пытаюсь получить доступ к простому результирующему набору, не преобразуя его в json или XML.

Моя база данных преобразует результирующий набор в правильный формат.

Пример:

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

            }

 

Когда я пытаюсь запустить foreach поверх ResultSet, я получаю пустое поле.

версии: ballerina — версия jBallerina 1.2.8 Языковая спецификация 2020R1 Инструмент обновления 0.8.8

Приветствую тебя, Мартин

Ответ №1:

Результатом является поток записей, в котором вы можете получить доступ к каждой записи и их полям.

Вы можете создать поток результатов и выполнить итерацию по нему в виде следующего примера кода при доступе к каждому полю

 stream<record{}, error> resultStream =
    mysqlClient->query("Select * from Customers");

error? e = resultStream.forEach(function(record {} result) {
    io:println("Customer full details: ", result);
    io:println("Customer first name: ", result["FirstName"]);
    io:println("Customer last name: ", result["LastName"]);
});
 

Вы можете сослаться на другие примеры JDBC в Ballerina с помощью Examples