Árvore de páginas

Esta função faz execução de query no driver SQLite.

Sintaxe

 

bRet := DBSqlExec( cAlias, cQuery, cDriver )

Parâmetros

NomeTipoDescriçãoObrigatórioReferênciaObservações
cAliasCaracter

O Alias que vai apontar para a área de dados resultante da execução da query.

X Se a query for de inserção, remoção ou atualização, cAlias é ignorado. Portanto, neste caso, poderia ser passado como uma string vazia ("").
cQueryCaracter

A query que será executada no banco.

 

X A query deve estar dentro dos padrões de sintaxe aceitos pelo SQLite.
cDriverCaracter

O RDD que tem as tabelas envolvidas na query.

 

X No momento, apenas o driver SQLite utiliza essa função. Portanto, deve-se utilizar: SQLITE_SYS, SQLITE_TMP ou SQLITE_MEM.

Retorno

NomeTipoDescriçãoObservações
bRetLógico

Se a query foi executada com sucesso, o retorno é Verdadeiro. Caso contrário. o retorno é Falso.

 

Observações

Esta função, atualmente, responde somente aos seguintes drivers: SQLITE_SYS, SQLITE_TMP e SQLITE_MEM.

Esta função está disponível a partir do Protheus 12.

Exemplos

Exemplo 

// Este exemplo mostra o uso de query no driver SQLite.

// -------------------------------------------------------------------------------------------------

User Function Exemplo()

Local _aStruct

// conecta no ambiente Protheus (Empresa e Filial hipotéticos)
PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01' MODULO 'FAT'

// Seleciona a tabela SA1
DBSelectArea("SA1")

// Pega a estrutura da tabela SA1
_aStruct := DBStruct()

// Cria uma tabela no SQLITE, com a mesma estrutura do SA1
DBCreate( 'mySA1', _aStruct, 'SQLITE_SYS' )

// Coloca a tabela mySA1 em uso
DBUseArea( .T., 'SQLITE_SYS', 'mySA1', 'DEST', .F., .F. )

// Faz a cópia da tabela SA1 para mySA1
if DBTblCopy('SA1', 'DEST')
   Alert("Tabela copiada com sucesso.")
else
   Alert("Tabela não foi copiada.")
endif


// ############################################################
// Faz a query na tabela mySA1 (SQLite)
// ############################################################
if DBSqlExec('TRAB', 'SELECT A1_NOME FROM mySA1', 'SQLITE_SYS')
   while ! TRAB->(EOF())
      conout(TRAB->A1_NOME)
      TRAB->(DbSkip())
   end
else
   Alert("A query não foi realizada.")
endif

return

Veja também

  • Sem rótulos