Chamando procedure SQL
Enviado: 04 Set 2021 18:51
Tava aqui pensando.... como integrar melhor as stored procedures com o Harbour?
Depois pensei.... porque não uma função intermediária?
Mas vai ter muito criar conexão ou algo parecido.
Não valida o nome da procedure? mas... também não valida o texto do comando SQL, então dá no mesmo
Pode até servir para casos com e sem retorno.
Apesar de parecer quase a mesma coisa, fica melhor para o fonte.
A função de executar procedure faria a conversão dos parâmetros, conforme o tipo.
Fonte mais limpo.
Vou amadurecer essa idéia.
Dá até pra validar o nome das procedures, pra ver se existem mesmo
Um campo array STATIC, assim numa checagem seguinte basta olhar se está no array.
Código: Selecionar todos
:ExecuteCmd( "call ze_jptabcategoriaLicencaExclui(" + NumberSQL( nIdCategoria ) + "," + NumberSQL( nIdLicenca ) + ")" )
Código: Selecionar todos
ze_TabCategoriaLicencaExclui( nIdCategoria, nIdLicenca )
...
FUNCTION ze_TabCategoriaLicencaExclui( nIdCategoria, nIdLicenca )
:ExecuteCmd( "call ze_jptabcategoriaLicencaExclui(" + NumberSQL( nIdCategoria ) + "," + NumberSQL( nIdLicenca ) + ")" )
RETURN Nil
Código: Selecionar todos
FUNCTION ExecuteSQLProcedure( ... )
LOCAL cnSQL := ADOClass():New( AppConexao() )
LOCAL cSQL, aList
aList := hb_AParams()
// monta a chamada de SQL e execute
...
Pode até servir para casos com e sem retorno.
Apesar de parecer quase a mesma coisa, fica melhor para o fonte.
Código: Selecionar todos
:ExecuteCmd( "call ze_jptabcategoriaLicencaExclui(" + NumberSQL( nIdCategoria ) + "," + NumberSQL( nIdLicenca ) + ")" )
Código: Selecionar todos
ExecuteSQLProcedure( "ze_jptabcategoriaLicencaExclui", nIdCategoria, nIdLicenca )
Fonte mais limpo.
Vou amadurecer essa idéia.
Dá até pra validar o nome das procedures, pra ver se existem mesmo
Um campo array STATIC, assim numa checagem seguinte basta olhar se está no array.