Histórico da Página
Esta função faz execução de query no driver SQLite.
Sintaxe
Bloco de código |
---|
bRet := DBSqlExec( cAlias, cQuery, cDriver ) |
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência | Observações |
---|---|---|---|---|---|
cAlias | Caracter | 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 (""). | |
cQuery | Caracter | A query que será executada no banco.
| X | A query deve estar dentro dos padrões de sintaxe aceitos pelo SQLite. | |
cDriver | Caracter | 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
Nome | Tipo | Descrição | Observações |
---|---|---|---|
bRet | Ló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 ou e SQLITE_MEM.
Esta função está disponível a partir do Protheus 12.
Exemplos
Exemplo
Toggle Cloak | ||
---|---|---|
|
// 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 DBTableCopyDBTblCopy('SA1', 'DEST')
Alert("Tabela copiada com sucesso.")
else
Alert("Tabela nao 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