TCSetParam
Insere ou atualiza um parâmetro na TOP_PARAM.
Sintaxe
TCSetParam( < cParam >, < cValue > )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cParam | caractere | Indica o nome do parâmetro que será criado ou atualizado. | X | |
cValue | caractere | Indica o valor do parâmetro indicado em cParam. | X |
Retorno
Nome | Tipo | Descrição |
---|---|---|
nRet | numérico | Retorna 0 (zero) se a operação foi completada com sucesso ou diferente em caso de erro. |
Observações
- TCSetParam utiliza a o identificador de conexão entre o DBAccess e o SGBD (igual ao valor retornado pela função TCGetDBSID) para diferenciar os parâmetros inseridos por cada conexão.
- Caso exista mais de uma conexão no mesmo programa para o mesmo ambiente de DBAccess e cada conexão insira o mesmo parâmetro com o mesmo valor, cada conexão terá uma entrada na tabela TOP_PARAM.
- A função utiliza necessariamente a RDD TOPCONN. Caso não haja conexão com o DBAccess, será exibida uma mensagem de advertência no log de console do AppServer "Warning - TCSetParam - statement ignored - No connection." e a função irá retornar -2.
- Caso cValue esteja vazio, a função irá retornar erro e será exibido no log de console do DBAccess a mensagem "SetParam [PPP] does not accept NULL parameter value.", onde PPP é o nome passado em cParam.
- Em builds do AppServer superiores a 7.00.131227A, se cParam estiver vazio, a função irá retornar erro.
- Se o ambiente do DBAccess que será acessado não suportar conexãoes ISAM (chave IsamConnection no arquivo ini do DBAccess), a função retornará erro e será exibido no log de console do DBAccess a mensagem "SetParam only supported when IsamConnection is ENABLED.".
- Se o ambiente do DBAccess que será acessado está como somente leitura (chave ReadOnly no arquivo ini do DBAccess), a função retornará erro e será exibido no log de console do DBAccess a mensagem "SetParam not supported on READONLY Connection.".
- Em caso de erro, consulte a função TCSQLError para saber o motivo.
- A função funciona para os SGBDs: MS SQL Server, Oracle, Informix, DB2, OpenEdge. Para os demais, a função retornará 0, mas não efetuará operação alguma.
- O SGBD PostgreSQL é suportado a partir da build 20161016 com data de geração superior a 03/01/2017.
Exemplos
O teste abaixo considera que a tabela TOP_PARAM está vazia.
user function test1() Local nHandle1 := TCLink( "MSSQL/DSN1", "127.0.0.1", 7890 ) Local cAlias := "alias" Local cQuery := "" // Cria o parâmetro "PARAM1" com o valor "VALUE1" conout( TCSetParam( "PARAM1", "VALUE1" ) ) // Vai exibir: 0 // Atualiza o parâmetro "PARAM1" com o valor "VALUE2" conout( TCSetParam( "Param1", "VALUE2" ) ) // Vai exibir: 0 // Verifica quantos registros existem do parâmetro "PARAM1" cQuery := "SELECT COUNT( PARAM_VALUE ) AS CNT FROM TOP_PARAM WHERE PARAM_NAME='PARAM1'" DBUseArea( .T., cRDD, TCGenQry( , , cQuery ), (cAlias), .F., .T. ) conout( (cAlias)->CNT ) // Vai exibir: 1 DBCloseArea() // Pega o valor do parâmetro "PARAM1" cQuery := "SELECT PARAM_VALUE FROM TOP_PARAM WHERE PARAM_NAME='PARAM1'" DBUseArea( .T., cRDD, TCGenQry( , , cQuery ), (cAlias), .F., .T. ) conout( (cAlias)->PARAM_VALUE ) // Vai exibir: Value2 DBCloseArea() TCUnlink( nHandle1 ) return
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas