Rogerblower Postado Julho 18, 2003 Denunciar Share Postado Julho 18, 2003 Ola pessoalEstou tendo problemas em rodar certos codigos no meu IIS, tem codigos que rodam legal, mas tem codigos que da esse erro citado abaixoalguém pode me dizer o que é isso?Tipo de erro:Microsoft JET Database Engine (0x80004005)Para a operação é necessária uma query atualizavel.ObrigadoRogerblower Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 diraol Postado Julho 18, 2003 Denunciar Share Postado Julho 18, 2003 Posta o código ai pra gente...eu acho que sei qual pode ser o erro (passei 1 semana fuçando meu fórum pra depois perceber que tinha esquecido de uma "/" <_< )................ mas mesmo assim......posta ai........ :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rogerblower Postado Julho 18, 2003 Autor Denunciar Share Postado Julho 18, 2003 Ola diraolAe vai o codigo, e o erro q da é na linha 80e na linha 80 = adoCon.Execute(strSQL) e quando eu faço assim 'adoCon.Execute(strSQL) abre normal so que não consigo gravar nada no db, se puder dar uma força ae t agradeço muito...Rogerblower.<%'Include this file on every page on your website, EXCEPT the livesupport pages'Checks to see if the user is wanted in a chat room by the admin and updates active users table'You will need to change DB path and name'Set the script timeout in secondsServer.ScriptTimeout = 90'Set Dimension VariablesDim strDataBasePath 'Holds the path to the databaseDim cString 'Holds the entire connection stringDim adoCon 'Holds the ado connectionDim SQL 'Holds SQL statementDim strIPAddress 'Holds the current users IP addressDim rs_Active_Users 'Record sheet for the active users tableDim chatwanted 'Holds 0 if admin doesnt to chat with them, 5 if the admin doesDim usrID 'Holds user IDSet adoCon = Server.CreateObject("ADODB.Connection")'------------------------------------------------------------------------------------'Change this value to the path of the databasestrDataBasePath = "chat/LiveSupport.mdb"'------------------------------------------------------------------------------------dim USER_AGENT, IS_IE, IS_NNUSER_AGENT = Request.ServerVariables("HTTP_USER_AGENT")IS_IE = InStr(USER_AGENT,"MSIE")IS_NN = InStr(USER_AGENT,"Nav")Dim strBrowserif IS_IE then strBrowser = "IE"elseif IS_NN then strBrowser = "NS"else strBrowser = "N/A"end if 'Connection string for the database'If the following line does not work comment it out with a ' at the start of the line and uncomment another stringcString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(strDataBasePath)'Uncomment this connection string if you are using Access Database 2000 or 2002'cString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath(strDataBasePath) 'Uncomment this connection string if you are using a DSN (note: DSN is slower than the above connection strings)'cString = "DSN=NAME_OF_DSN"'Replace the NAME_OF_DSN with the DSN'Give the variables some valuesstrIPAddress = Request.ServerVariables("REMOTE_ADDR") 'Set the variable to hold the value of IP address'Open the connection to the database path specified at top of pageadoCon.Open cString'Open the active users record sheetSet rs_Active_Users = Server.CreateObject("ADODB.Recordset")'Create a new SQL statement to select the data from the row where users IP equals IP in databasestrSQL = "SELECT tblActiveUsers.* From tblActiveUsers WHERE IP='" & strIPAddress & "';"'Set the cursor and lock typesrs_Active_Users.CursorType = 2rs_Active_Users.LockType = 3'Open the record sheets and execute the SQL statementrs_Active_Users.Open strSQL, CString'Check the database to see if the user whos online has a field in the database, if not create oneIf rs_Active_Users.EOF Then 'Insert the users IP address into a new row in databasestrSQL = "INSERT INTO tblActiveUsers (IP, Browser) VALUES ('" & strIPAddress & "','" & strBrowser & "');"'Write dataadoCon.Execute(strSQL) Linha 80 'If there is a record for the current user then update, dont create newElse'Set new SQL statement, set the last active field to the current timestrSQL = "UPDATE tblActiveUsers SET tblActiveUsers.LastActive=Now() WHERE IP='" & strIPAddress & "';"'Write dataadoCon.Execute(strSQL) End If'Delete records older than 10 minuites, they are no longer activestrSQL = "DELETE FROM tblActiveUsers WHERE tblActiveUsers.LastActive < Now() - 0.0070;"'Write dataadoCon.Execute(strSQL)'Requery the record sheet to get data up to daters_Active_Users.Requery'Close n' clean!rs_Active_Users.CloseSet rs_Active_Users = NothingadoCon.close'Open the table tblActiveUsersset rs_Active_Users = server.createobject("ADODB.RecordSet")'Create new SQL stringStrSql="SELECT * FROM tblActiveUsers WHERE IP='" & strIPAddress & "';"'Open record sheet execute SQL stringrs_Active_Users.open StrSql,cString,3,3'Take the values from the database field and put them in the variableschatwanted = rs_Active_Users("ChatRequest")usrID = rs_Active_Users("ID")'Close the record sheet and clean uprs_Active_Users.CloseSet rs_Active_Users = Nothing%><%'If the field chatwanted is set to something other than 0 Then open chat automaticalyIF chatwanted <> 0 THEN%><script language="Javascript">pop1=window.open("chat/default.asp?q=1","pop1","width=400, height=300, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no");</script><%ELSE%><%END IF%><%Dim rsStats'Open new connection to databaseadoCon.Open cString'Create new SQL stringstrsql="SELECT * FROM tblStats"set rsStats=server.CreateObject("ADODB.Recordset")rsStats.open strsql,adocon,3,3 Dim intCurrNumintCurrNum = rsStats.fields("PageViews") rsStats.fields("PageViews")= intCurrNum + 1 rsStats.Update%> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 diraol Postado Julho 18, 2003 Denunciar Share Postado Julho 18, 2003 Roger.....o erro que deu parece ser o mesmo que aconteceu comigo...só que o meu não foi no PWS e sim no servidor.....o que estava acontecendo comigo era que eu errei o caminho para acessar o bd.......assim eu não vou te dar certeza de onde está o erro...vou te passar a linha que eu uso pra acessar o meu bd............ set cn=server.createobject("adodb.connection") cn.open("driver={Microsoft Access Driver (*.mdb)}"&_ ";dbq="&server.mappath("clientes.mdb")&";")e aqui seria a conexão "via oledb" cn=server.createobject("adodb.connection") cn.provider="Microsoft.jet.oledb.4.0" cn.connectionstring=server.mappath("clientes.mdb") cn.openMas assim... isso eu to te passando meio que como um exemplo.... eu to muito mal em asp.... estou parado a vários meses...então eu te passei uma conexão alternativa ao bd............mas uma coisa é certa..... o erro está ocorrendo no momento de acesso ao bd..........bem... espero ter ajudado (um pouquinho só...hehehehe)..........e alguém aqui vai poder ajudar mais........ alguém que esteja em dai com a prática de asp...hehehefalou....desculpe as enrolações.... :P Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Lucky Postado Julho 19, 2003 Denunciar Share Postado Julho 19, 2003 Se tu tá usando o IIS provavalmente tá hospedando em NT ou XP então tu tambem tem que configurar as permissões de escrita no diretório onde está o banco, tanto no IIS quanto no NT/XP...Não te digo com certeza pois nunca vi esse erro em portugues mas ele é bem claro: ou tu não tem permissão para gravação no banco ou tua tabela está bloqueada por outro processo, experimente usar assim:rs_Active_Users.CursorType = 3rs_Active_Users.LockType = 3 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rogerblower
Ola pessoal
Estou tendo problemas em rodar certos codigos no meu IIS, tem codigos que rodam legal, mas tem codigos que da esse erro citado abaixo
alguém pode me dizer o que é isso?
Tipo de erro:
Microsoft JET Database Engine (0x80004005)
Para a operação é necessária uma query atualizavel.
Obrigado
Rogerblower
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
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.