·
Engenharia da Computação ·
Linguagens de Programação
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
Texto de pré-visualização
SQLite e C ECM404 SQLITE 2 Permite utilizar os comandos em SQL e acessar bancos de dados sem a necessidade de um servidor serverless Os dados ficam armazenados em arquivos de texto Permite maior facilidade na distribuição de aplicações SQLITE INTEGRAÇÃO COM C 3 Criação uma conexão com o banco include sqlite3h int main sqlite3 db NULL int conexao printfCriando conexao com o banco conexao sqlite3openpokemonCenterdb db if conexao SQLITEOK printfErro ao conectar ao banco exit1 printfSucesso na conexao sqlite3closedb return 0 SQLITE INTEGRAÇÃO COM C 4 sqlite3 db cria um ponteiro para uma estrutura de dados manipular o banco sqlite3open arquivodb db abre o arquivo atribuindo seu endereço à estrutura db Retorna a constante inteira SQLITEOK ou outro valor referente ao erro que ocorreu sqlite3close db fecha a conexão com o banco SQLITE INTEGRAÇÃO COM C 5 As pesquisas realizadas no banco são realizadas utilizando estruturas de pesquisas statements Essas estruturas são implementadas como ponteiros do tipo sqlite3stmt Statements são ponteiros para estruturas que precisam ser preparadas como se um código estivesse sendo compilado para se tornar um programa Depois de preparado devese executar a instrução da string SQL As estruturas podem ser reutilizadas no código SQLITE INTEGRAÇÃO COM C 6 Criação de um statement include sqlite3h int main sqlite3 db NULL sqlite3stmt stmt NULL int conexao i printfCriando conexao com o banco conexao sqlite3openpokemonCenterdb db if conexao SQLITEOK printfErro ao conectar ao banco exit1 printfSucesso na conexao SQLITE INTEGRAÇÃO COM C 7 Prepara a consulta ao banco prepara a consulta ao banco sqlite3preparedb SELECT FROM vendas 1 stmt NULL Escreve o cabeçalho com o nome das colunas escreve o cabeçalho com o nome das colunas for i 0 i sqlite3columncountstmt i printfs sqlite3columnnamestmt i printf termina a exibição do cabeçalho SQLITE INTEGRAÇÃO COM C 8 Escreve os demais dados da tabela para cada linha da tabela resultado while sqlite3stepstmt SQLITEROW OU while sqlite3stepstmt SQLITEDONE para cada coluna for i 0 i sqlite3columncountstmt i printfs sqlite3columntextstmt i printf termina a exibição de uma linha sqlite3finalizestmt sqlite3closedb return 0 SQLITE INTEGRAÇÃO COM C 9 sqlite3stmt stmt cria um ponteiro para uma estrutura de dados realizar as operações no banco sqlite3prepare db STRINGSQL 1 stmt NULL compila mas não executa a string SQL que irá manipular os registros no banco de dados db e retornar o ponteiro com o resultado das operações em stmt Os parâmetros 1 e NULL não alterados pois representam o tamanho máximo da string em bytes e o endereço da posição final da string respectivamente SQLITE INTEGRAÇÃO COM C 10 sqlite3step stmt Define o valor do ponteiro da estrutura stmt para uma linha da tabela resultante Além disso retorna SQLITEROW quando o ponteiro apontar uma linha da tabela ou SQLITEDONE quando não houverem mais dados Deve ser utilizado para se obter cada uma das linhas da tabela resultante Pode ser utilizado como um procedimento critério de uma estrutura condicional ou de repetição Para facilitar a composição da string SQL utilizaremos a função sprintf INSERIR OU ALTERAR VALORES 11 Inserir novos valores sprintfsql INSERT INTO vendas idVenda cod quant VALUES i i i idVenda codigo quantVendida sqlite3preparedb sql 1 stmt NULL sqlite3stepstmt Alterando valores sprintfsql UPDATE estoque SET quantquanti WHERE codi quantVendida codigo sqlite3preparedb sql 1 stmt NULL sqlite3stepstmt ACESSANDO RETORNO 12 Quando uma query retornar somente um valor em uma linha sprintfsql SELECT SUMquantpreco FROM tabela WHERE idVenda i idVenda sqlite3preparedb sql 1 stmt NULL if sqlite3stepstmt SQLITEROW acessa a coluna 0 da linha recebida else se necessário ACESSANDO RETORNO 13 Quando uma query retornar uma tabela sprintfsql SELECT FROM estoque WHERE quant i quant sqlite3preparedb sql 1 stmt NULL para cada linha while sqlite3stepstmt SQLITEDONE para cada coluna for i0 isqlite3columncountstmt i acessa a coluna i da linha de stmt ACESSANDO RETORNO 14 sqlite3columncountstmt Conta a quantidade de colunas da tabela resultado sqlite3columnnamestmti Retorna a string com o nome da coluna i do registro atual Os índices começam em 0 Os dados de cada coluna podem ser obtidos como sqlite3columntextstmti Retorna o valor em formato de texto da coluna i do registro atual sqlite3columnintstmti Retorna o valor em formato de número inteiro da coluna i do registro atual sqlite3columndoublestmti Retorna o valor em formato de número real da coluna i do registro atual
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
Texto de pré-visualização
SQLite e C ECM404 SQLITE 2 Permite utilizar os comandos em SQL e acessar bancos de dados sem a necessidade de um servidor serverless Os dados ficam armazenados em arquivos de texto Permite maior facilidade na distribuição de aplicações SQLITE INTEGRAÇÃO COM C 3 Criação uma conexão com o banco include sqlite3h int main sqlite3 db NULL int conexao printfCriando conexao com o banco conexao sqlite3openpokemonCenterdb db if conexao SQLITEOK printfErro ao conectar ao banco exit1 printfSucesso na conexao sqlite3closedb return 0 SQLITE INTEGRAÇÃO COM C 4 sqlite3 db cria um ponteiro para uma estrutura de dados manipular o banco sqlite3open arquivodb db abre o arquivo atribuindo seu endereço à estrutura db Retorna a constante inteira SQLITEOK ou outro valor referente ao erro que ocorreu sqlite3close db fecha a conexão com o banco SQLITE INTEGRAÇÃO COM C 5 As pesquisas realizadas no banco são realizadas utilizando estruturas de pesquisas statements Essas estruturas são implementadas como ponteiros do tipo sqlite3stmt Statements são ponteiros para estruturas que precisam ser preparadas como se um código estivesse sendo compilado para se tornar um programa Depois de preparado devese executar a instrução da string SQL As estruturas podem ser reutilizadas no código SQLITE INTEGRAÇÃO COM C 6 Criação de um statement include sqlite3h int main sqlite3 db NULL sqlite3stmt stmt NULL int conexao i printfCriando conexao com o banco conexao sqlite3openpokemonCenterdb db if conexao SQLITEOK printfErro ao conectar ao banco exit1 printfSucesso na conexao SQLITE INTEGRAÇÃO COM C 7 Prepara a consulta ao banco prepara a consulta ao banco sqlite3preparedb SELECT FROM vendas 1 stmt NULL Escreve o cabeçalho com o nome das colunas escreve o cabeçalho com o nome das colunas for i 0 i sqlite3columncountstmt i printfs sqlite3columnnamestmt i printf termina a exibição do cabeçalho SQLITE INTEGRAÇÃO COM C 8 Escreve os demais dados da tabela para cada linha da tabela resultado while sqlite3stepstmt SQLITEROW OU while sqlite3stepstmt SQLITEDONE para cada coluna for i 0 i sqlite3columncountstmt i printfs sqlite3columntextstmt i printf termina a exibição de uma linha sqlite3finalizestmt sqlite3closedb return 0 SQLITE INTEGRAÇÃO COM C 9 sqlite3stmt stmt cria um ponteiro para uma estrutura de dados realizar as operações no banco sqlite3prepare db STRINGSQL 1 stmt NULL compila mas não executa a string SQL que irá manipular os registros no banco de dados db e retornar o ponteiro com o resultado das operações em stmt Os parâmetros 1 e NULL não alterados pois representam o tamanho máximo da string em bytes e o endereço da posição final da string respectivamente SQLITE INTEGRAÇÃO COM C 10 sqlite3step stmt Define o valor do ponteiro da estrutura stmt para uma linha da tabela resultante Além disso retorna SQLITEROW quando o ponteiro apontar uma linha da tabela ou SQLITEDONE quando não houverem mais dados Deve ser utilizado para se obter cada uma das linhas da tabela resultante Pode ser utilizado como um procedimento critério de uma estrutura condicional ou de repetição Para facilitar a composição da string SQL utilizaremos a função sprintf INSERIR OU ALTERAR VALORES 11 Inserir novos valores sprintfsql INSERT INTO vendas idVenda cod quant VALUES i i i idVenda codigo quantVendida sqlite3preparedb sql 1 stmt NULL sqlite3stepstmt Alterando valores sprintfsql UPDATE estoque SET quantquanti WHERE codi quantVendida codigo sqlite3preparedb sql 1 stmt NULL sqlite3stepstmt ACESSANDO RETORNO 12 Quando uma query retornar somente um valor em uma linha sprintfsql SELECT SUMquantpreco FROM tabela WHERE idVenda i idVenda sqlite3preparedb sql 1 stmt NULL if sqlite3stepstmt SQLITEROW acessa a coluna 0 da linha recebida else se necessário ACESSANDO RETORNO 13 Quando uma query retornar uma tabela sprintfsql SELECT FROM estoque WHERE quant i quant sqlite3preparedb sql 1 stmt NULL para cada linha while sqlite3stepstmt SQLITEDONE para cada coluna for i0 isqlite3columncountstmt i acessa a coluna i da linha de stmt ACESSANDO RETORNO 14 sqlite3columncountstmt Conta a quantidade de colunas da tabela resultado sqlite3columnnamestmti Retorna a string com o nome da coluna i do registro atual Os índices começam em 0 Os dados de cada coluna podem ser obtidos como sqlite3columntextstmti Retorna o valor em formato de texto da coluna i do registro atual sqlite3columnintstmti Retorna o valor em formato de número inteiro da coluna i do registro atual sqlite3columndoublestmti Retorna o valor em formato de número real da coluna i do registro atual