Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xanburzum

[Resolvido] informações sobre os argumentos de stored procedure

Recommended Posts

DefProc retorna informações sobre os argumentos de uma

stored procedure. Ele retorna uma referência a um objeto Scripting.Dictionary cujas

chaves e coleções de itens serão preenchidos sobre os dados recolhidos a partir do

stored procedure.

 

 

DefProc tem dois argumentos: connstring e procname.

 

 

Argumentos

==============

connstring

OLEDB Connection String para o MS Access.

 

procname

nome da stored procedure /como string para pesquisa de informação argumento.

 

 

Valores de Retorno

==============

DefProc retorna um objeto Scripting.Dictionary.

Haverá pelo menos um par chave / item no dicionário em tempo de execução

Se existe o stored procedure no banco de dados de destino. Cada item fundamental /

segue este formato:

 

chave - representa o argumento nome da variável menos o carácter @.

Em TSQL, variáveis locais devem ser precedidos com o @

caráter. Estes serão removidos do valor da chave.

 

NÚMERO - representa o tipo de dados da variável de argumento especificado

na chave. Retorna um tempo. A tabela a seguir identifica o que

cada tipo de dados significa constante:

 

constante significado

-------------------------------------------------- --------------------------------------------------------

20 Oito inteiro assinado byte (DBTYPE_I8).128 binary value (DBTYPE_BYTES).

 

11 boolean value (DBTYPE_BOOL).

 

8 string terminada em caráter (Unicode)

(DBTYPE_BSTR).

 

136 valor de quatro capítulo byte que identifica as linhas

em um conjunto de linhas filho (DBTYPE_HCHAPTER).

 

129 string value (DBTYPE_STR).

 

6 valor da moeda (DBTYPE_CY). Moeda é um

número de ponto fixo, com quatro dígitos para o

direita do ponto decimal.

 

7 valor de data (DBTYPE_DATE).

 

133 valor de data (yyyymmdd) (DBTYPE_DBDATE).

 

134 valor do tempo (hhmmss) (DBTYPE_DBTIME).

 

135 data / hora (mais uma aaaammddhhmmss

fração em bilionésimos) (DBTYPE_DBTIMESTAMP).

 

14 valor numérico exato com uma precisão fixa

e escala (DBTYPE_DECIMAL).

 

5 precisão dupla valor de ponto flutuante (DBTYPE_R8).

 

0 Nenhum valor (DBTYPE_EMPTY).

 

10 32-bit código de erro (DBTYPE_ERROR).

 

64 64-bit valor representa o número de

Intervalos-100 nanossegundos desde 1 de Janeiro

1601 (DBTYPE_FILETIME).

 

72 identificador exclusivo global (GUID) (DBTYPE_GUID).

 

9 ponteiro para uma interface IDispatch em COM

objeto (DBTYPE_IDISPATCH).

 

3 quatro bytes inteiro (DBTYPE_I4).

 

13 ponteiro para uma interface IUnknown em um COM

objeto(DBTYPE_IUNKNOWN).

 

205 valor binário longo (objeto Parameter somente)

 

201 valor de string longa (parâmetro único objeto ).

 

203 null longo prazo encerrado valor seqüência de caracteres Unicode

(Parâmetro único objeto).

 

131 Indica um valor numérico exato com um fixo

precisão e escala (DBTYPE_NUMERIC).

 

138 Indica uma automação PROPVARIANT

(DBTYPE_PROP_VARIANT).

 

4 precisão simples valor de ponto flu

(DBTYPE_R4).

 

2 dois bytes inteiro (DBTYPE_I2).

 

16 um número inteiro assinado byte (DBTYPE_I1).

 

21 oito inteiros unsigned byte (DBTYPE_UI8).

 

19 inteiro de quatro unsigned byte (DBTYPE_UI4).

 

18 inteiro de dois bytes não assinados (DBTYPE_UI2).

 

17 um inteiro sem assinatura byte (DBTYPE_UI1).

 

132 variável definida pelo usuário (DBTYPE_UDT).

 

204 valor binário (objeto Parameter somente).

200 string value (Parameter object only).

 

12 Automação Variant (DBTYPE_VARIANT).

 

139 valor numérico (objeto Parameter somente).

 

202 NULL-Terminated seqüência de caracteres Unicode

(Parâmetro único objeto).

 

130 NULL-Terminated seqüência de caracteres Unicode

(DBTYPE_WSTR).

 

sintaxe:

 

Set object = GetProcedureDef(connstring, procname)

 

usando:

 

<%
dim defs, def

set defs = DefProc("data source=c:\mydata.mdb;" & _
                           "provider=microsoft.jet.oledb.4.0;", _
                           "sp_addUsrAddr")
for each def in defs.keys
	response.write def & "<BR>"
	response.write defs.item(def) & "<BR><BR>"
next
set defs = nothing
%>

 

code:

 

Function DefProc(ByVal connstring, ByVal procname)
	Dim cnn, cmd, prm, cat, d

	set d = createobject("Scripting.Dictionary")
	set cnn = createobject("ADODB.Connection")

	' Abra a Conexão
	cnn.Open connstring

	' Abra o catálogo
	set cat = createobject("ADOX.Catalog")
	cat.ActiveConnection = cnn

	' Obter o objeto de comando
	Set cmd = cat.Procedures(procname).Command

	' Recuperar informações de parâmetro
	cmd.Parameters.Refresh
	For Each prm In cmd.Parameters
		d.Add prm.Name, prm.Type
	Next

	set cmd = nothing
	set cat = nothing
	set cnn = nothing

	Set DefProc = d
End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.