Ir para conteúdo

POWERED BY:

Arquivado

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

jiuselito

Problemas com begintrans

Recommended Posts

E ai galera tb beleza....Eu sou bem novo por aqui, naverdade é primeira vez que posto alguma coisa.Tenho um problema em uma pagina que estou dezenvolvendo.estou usando o begintrans para fazer um insert em uma tabela de um banco access, mas o que eu tenho como retorno é um erro que não entendi:Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver]Attribute cannot be set now /001/conect.asp, line 14 minha lógica é a seguinte--> Em uma pagina de conexão tenho:conexão:strConn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("InfoGer.mdb") Set Conex =Server.CreateObject("ADODB.Connection")Conex.Open strConne tenho a função para realisar a gravação:function gravadados(sql) conex.BeginTrans conex.Execute (sql) If conex.erros.count = 0 Then conex.CommitTrans gravadados ="dados trasmitidos" response.wirte gravadados Else conex.Rollback gravadados ="erro" response.wirte gravadados End IfEnd functionPasso os parametros da seguinte forma: if REQUEST("H4") = "" then destino = "NULL" else destino = REQUEST("H4") end if SQL = "" SQL = "INSERT INTO MOVIMENTACAOEMP (CDPROD, MESREF, DATAMOV, MATRICULA, ORIGEM, DESTINO, MOTIVO) " SQL = SQL & " VALUES ( '"& 1 &"' , '" & RS("DSMES") & "', '"& mid(now,1,10) &"'," SQL = SQL & " '" & REQUEST("H5") & "', '" & REQUEST("H2") & "', '" & destino & "'" SQL = SQL & " , '" & REQUEST("H3") & "');" ' response.write sql RESPONSE.WRITE "<font color='#FF0000'><B>" call gravadados(sql)não sei mais o que fazer para dar certo já tentei tudo o que sabia e pesquisei bastante mas não consegui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é a linha 14 ?

<{POST_SNAPBACK}>

function gravadados(sql)

conex.BeginTrans <"?????É aqui que o erro acontece...??????">

conex.Execute (sql)

If conex.erros.count = 0 Then

conex.CommitTrans

gravadados ="dados trasmitidos"

response.wirte gravadados

Else

conex.Rollback

gravadados ="erro"

response.wirte gravadados

End If

End function

Compartilhar este post


Link para o post
Compartilhar em outros sites

velho.. nunca fiz transação com access... e a maioria q faço e em procedure no sql.. mas ai vai...das vezes q usei a transação no obj do asp(igual você está usando) tinha um parametro qdo conectava com o bd q tinha se ser especificado... não é certeza, mas lembro q tinha... posso te confirmar depois....qto ao código... a linha if conex.erros.count --- erros.count???? vai dar erro tb...lembre-se... este tratamento só vai te retornar erro se não conseguir gravar na base por algum motivo da base... se você mandar um erro de sql ele vai te dar um erro 500 normal como se você não estivesse tratando nada, beleza.... ou seja.. no caso informado acima, não tem necessidade.uma 1 sql rodando sem dependências, você pode tratar isso com o on error sem problemas...uma boa fonte de consulta dos parametros.. você encontra akihttp://www.bluehill.com/ntguide/Chapter15.htmloutra coisa q fala nessa pag.. q não testei na verdade é...

Please note that not all providers provide transactions. Microsoft Access does not provide us with transactions, but Microsoft SQL Server 7.0 does provide us with transactions.

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.