Ir para conteúdo
Fórum Script Brasil
  • 0

Erro Asp


Guest Preto

Pergunta

Bom dia pessoal,

Estou dando manutenção em um sistema em ASP e esta dando o seguinte erro:

Microsoft VBScript runtime error '800a0009'

Subscript out of range: '[number:1]'

/XXX/xxxxxx/funcoes.asp, line 220

e não estou conseguindo resolver o problema pois nunca tinha pegado um erro sessa forma.

Segue o codigo:

<!--#include file="feb_adm_adovbs.inc" -->

<!--#include file="../../../../../dba/feb_connect.asp" -->

<%

dim DB 'Utilizada p/ objeto DataBase

dim RS 'Utilizada p/ objeto RecordSet

dim adoComd 'Utilizada p/ objeto Procedure

dim sSQL 'Utilizada p/ objeto sql

'------------------------------------------------------------------------------

public sub OpenDataBase

set DB = Server.CreateObject("ADODB.Connection")

DB.Open Session("FEB_ConnectionString")

end sub

'------------------------------------------------------------------------------

public sub OpenRecordSet(wSql, wCursorT, wCursorL, wPaginar)

Set RS = Server.CreateObject("ADODB.Recordset")

RS.ActiveConnection = DB

if cInt("0" & wPaginar ) > 0 then

RS.CursorType = 3

RS.CursorLocation = 3

RS.CacheSize = cInt("0" & wPaginar )

RS.PageSize = cInt("0" & wPaginar )

else

RS.CacheSize = 100

RS.CursorType = wCursorT

RS.CursorLocation = wCursorL

end if

' response.write RS.wSql

' response.end

RS.Open wSql

end sub

'------------------------------------------------------------------------------

public sub CloseDataBase

DB.Close

Set DB = nothing

end sub

'------------------------------------------------------------------------------

public sub CloseRecordSet

'response.write RS.State

'response.end

if RS.State = adStateOpen then

RS.Close

Set RS = nothing

end if

end sub

'------------------------------------------------------------------------------

'------------------------------------------------------------------------------

public sub ChamaProc( sPRO )

Set adoComd = Server.CreateObject("ADODB.Command")

adoComd.ActiveConnection = DB

adoComd.CommandText = sPRO

adoComd.CommandType = adCmdText

adoComd.prepared = true

end sub

'---------------------------------------------------------------------------------------------

'Nome...........: ExecutaProc

'Descricao......: Executa uma procedure SQL, cujo comando já esteja criado. Se houver erro,

' redireciona para uma página de erro.

' O parâmetro de saída da procedure SQL deve ter o nome out_RETORNO

'Parametros.....: adoComd - Comando a ser executado.

' sPaginaErro - Página de erro.

'---------------------------------------------------------------------------------------------

public function ExecutaProc(adoComd,sPaginaErro)

dim iResultado

on error resume next

err.clear

adoComd.Execute

if err.number <> 0 then

Response.Redirect(sPaginaErro & "?param1=" & server.URLEncode(sMsgErroDB()))

end if

iResultado = cint(adoComd.Parameters("out_RETORNO"))

if iResultado = 0 then

Response.Redirect(sPaginaErro & "?param1=" & server.URLEncode( sMsgErroDB() & " - Erro ao executar a operação na base de dados."))

end if

on error goto 0

end function

public function ExecutaSQL(sSQL,sPaginaErro)

dim iresultado

on error resume next

err.clear

DB.Execute sSQL

if err.number <> 0 then

'response.write err.number & "-" & err.description & "aqui"

Response.Redirect(sPaginaErro & "?param1=" & server.URLEncode(sMsgErroDB()))

end if

on error goto 0

end function

'Extrai o conteúdo de uma mensagem de erro definida em stored procedures do database.

'Utiliza a variável adoComd (adodb.connection)

public function sMsgErroDB()

dim msgErro

dim sMensagem

for vcount = 0 to DB.errors.count-1

sMensagem = sMensagem & "<p>" & DB.errors.item(vcount).number & " - " & DB.errors.item(vcount).description & "</p>"

next

sMsgErroDB = sMensagem

DB.errors.clear

end function

public function emArray(aArray,alvo)

dim i

dim elemento

i = 0

for each elemento in aArray

if elemento = alvo then

emArray = i

exit function

end if

i = i + 1

next

emArray = -1

end function

'Inclusão da planta Taubaté

public function NomePlanta(pCode)

select case pCode

case "FI05A"

NomePlanta = pCode & " - SBC Cars"

case "FI05E"

NomePlanta = pCode & " - SBC Trucks"

case "FI05D"

NomePlanta = pCode & " - Taubaté"

case "BCMLA"

NomePlanta = pCode & " - Camaçari"

case "FI05C"

NomePlanta = pCode & " - SBC Body"

case "FI05E"

NomePlanta = pCode & " - SBC Trucks"

case "FI05N"

NomePlanta = pCode & " - SBC CKD"

case "FI2VA"

NomePlanta = pCode & " - CKD Camaçari"

case else

NomePlanta = ""

end select

end function

'------------------------------------------------------------------------------

public function FormatNum(pValor, pRegiao, pNumDecimais)

'**************************************************************************************************'

'* Descrição....: Formata número com separador de milhar e decimal de acordo com a Região *'

'* Utiliza para substituir a FormataNumero() *'

'* Parâmetros...: pValor - Valor a ser formatado *'

'* pRegiao - Regional Settings a ser utilizado para formatação *'

'* pNumDecimais - Número de casas decimais que serão retornadas *'

'* Autor/Data...: André Luiz - 20/06/2002 *'

'* Atualizações.: *'

'**************************************************************************************************'

dim v_Decimal, v_Separador, v_Split, v_Loop, v_Format

if left(pValor,1) = "." or left(pValor,1) = "," then pValor = "0" & pValor

select case pRegiao

case "BR" 'Formata número no padrão brasileiro (portugues)

v_Decimal = ","

v_Separador = ""

case "US" 'Formata número no padrão americano

v_Decimal = "."

v_Separador = ""

end select

if len(trim(" " & pValor)) = 0 then

v_Format = "0"

if CInt(pNumDecimais) > 0 then

v_Format = v_Format & v_Decimal & String(CInt(pNumDecimais), "0")

end if

FormatNum = v_Format

exit function

end if

'Prepara número para formatação (verifica se há ponto decimal e retira os separadores)

pValor = Replace(trim(pValor), ",", ".")

if instr(pValor, ".") <= 0 then 'Não Existe ponto decimal'

pValor = pValor & "." & String(CInt(pNumDecimais), "0")

end if

pValor = Replace(pValor, ",", "")

'Formata número'

v_Split = Split(pValor, ".")

if len(trim(" " & v_Split(1))) > CInt(pNumDecimais) then 'Número precisa ser arrendondado

pValor = Replace(Round((CLng(v_Split(0) & v_Split(1)) / CLng("1" & String(len(trim(" " & v_Split(1))), "0"))), CInt(pNumDecimais)), ",", ".")

v_Split = ""

v_Split = Split(pValor, ".")

end if

for v_Loop = Len(v_Split(0)) to 1 Step -3

if v_Loop <= 3 then

v_Format = Left(v_Split(0), v_Loop) & v_Format

else

v_Format = v_Separador & Mid(v_Split(0), v_Loop - 2, 3) & v_Format

end If

next

if CInt(pNumDecimais) > 0 then 'Coloca o ponto decimal (de acordo com a Região)

if len(trim(" " & v_Split(1))) = CInt("0" & pNumDecimais) then

v_Format = v_Format & v_Decimal & v_Split(1)

else

v_Format = v_Format & v_Decimal & v_Split(1) & String(CInt(pNumDecimais) - len(trim(" " & v_Split(1))), "0")

end if

end if

FormatNum = v_Format

end function

'------------------------------------------------------------------------------

%>

Agradeço a todos.

Preto ( DENNYS)

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

amigo, é raro qualquer um lhe indicar um possível erro, sem ver o devido codigo.

poste o trecho do codigo que esta ocasionando o erro

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...