Caros amigos, boa tarde!
Preciso de uma ajuda para prosseguir com um projeto. Basicamente, preciso trabalhar com arrays no banco de dados, fazer escritas e consultas. Podem me ajudar nesse sentido?
Escrita de Arrays no Banco de Dados
- ViniciusMoraes
- Administrador
- Posts: 36
- Joined: Sat Oct 22, 2016 1:48 am
- Contact:
Re: Escrita de Arrays no Banco de Dados
Prezado, boa tarde!
Elaboramos o seguinte exemplo para responder esta sua dúvida:
Caso você precisar de mais informações para complementar esta aplicação, por favor, entre em contato com o nosso time de vendas e solicite algumas horas de engenharia.
E-mail de Vendas - HI Tecnologia: vendas@hitecnologia.com.br
Elaboramos o seguinte exemplo para responder esta sua dúvida:
Code: Select all
-----------------------------------------------------------------------------------------
-- Função para conversão de uma tabela LUA em uma string com a representação da tabela
-- Exemplo: {1,2,3,4,5} --> '{1,2,3,4,5}'
-----------------------------------------------------------------------------------------
local function table_to_string(tbl)
local idx = 0
local result = "{"
for k, v in pairs(tbl) do
if idx > 0 then
result = result .. ','
end
result = result .. v
idx = idx + 1
end
return result.."}"
end
-----------------------------------------------------------------------------------------
-- Obtém tag local do Kernel(retentivo) do tipo vetor de inteiros
-----------------------------------------------------------------------------------------
local tag_vetor_inteiros = Tags.Get("Kernel.Tags.Local.TagLocalGroup_001.vetor_inteiros")
-----------------------------------------------------------------------------------------
-- String com a representação de uma tabela LUA
-----------------------------------------------------------------------------------------
local string_vetor = '{6,7,8,9,10}'
-----------------------------------------------------------------------------------------
-- Abre conexão com o Database
-----------------------------------------------------------------------------------------
local conSQLite = Database.Get("Globals.DataBases.DataBase_SQLite")
-----------------------------------------------------------------------------------------
-- Executa comando para criar a tabela do banco
-----------------------------------------------------------------------------------------
--[[
local affected_rows, error = conSQLite:Execute('CREATE TABLE teste_vetor(valor_vetor TEXT NOT NULL)')
if error ~= nil then
print(error)
return
end
-----------------------------------------------------------------------------------------
-- Monta comando de inserção da tabela LUA no banco de dados
-----------------------------------------------------------------------------------------
local sql_insert_tag_vetor = string.format("INSERT INTO teste_vetor(valor_vetor) VALUES ('%s')", table_to_string(tag_vetor_inteiros.Value))
local sql_insert_string_vetor = string.format("INSERT INTO teste_vetor(valor_vetor) VALUES ('%s')", string_vetor)
-----------------------------------------------------------------------------------------
-- Executa comando para inserir um registro na tabela
-----------------------------------------------------------------------------------------
local affected_rows, error = conSQLite:Execute(sql_insert_tag_vetor)
if error ~= nil then
print(error)
return
end
local affected_rows, error = conSQLite:Execute(sql_insert_string_vetor)
if error ~= nil then
print(error)
return
end
]]--
-----------------------------------------------------------------------------------------
-- Executa comando para consultar registros na tabela
-----------------------------------------------------------------------------------------
local cursor, error = conSQLite:Execute('SELECT * FROM teste_vetor')
if error ~= nil then
print(error)
return
end
-----------------------------------------------------------------------------------------
-- recupera dicionario {nome_coluna=valor}
-----------------------------------------------------------------------------------------
local row = cursor:Fetch()
if row == nil then
print(error)
return
end
-----------------------------------------------------------------------------------------
-- Percorre os resultados da consulta
-----------------------------------------------------------------------------------------
while row do
-- Obtém o valor retornado pela consulta para a coluna valor_vetor
valor_coluna = row['valor_vetor']
print('valor retornado do banco de dados(string) = ' .. valor_coluna)
-- Transforma o valor obtido da coluna em uma tabela LUA
pcall(load("vetor = " .. valor_coluna))
-- Exibe o valor de cada posição da tabela LUA
for i = 1, #vetor do
print('Posição ' .. i .. ' - Valor ' .. vetor[i])
end
-- recupera o próximo registro
row = cursor:Fetch()
end
Caso você precisar de mais informações para complementar esta aplicação, por favor, entre em contato com o nosso time de vendas e solicite algumas horas de engenharia.
E-mail de Vendas - HI Tecnologia: vendas@hitecnologia.com.br
Vinícius de Moraes
Vendas | Suporte Técnico Comercial
E-mail de contato: suporte@hitecnologia.com.br
Telefone: (19)2139-1700 - (Opção 2 - Suporte Técnico).
Vendas | Suporte Técnico Comercial
E-mail de contato: suporte@hitecnologia.com.br
Telefone: (19)2139-1700 - (Opção 2 - Suporte Técnico).