Ir para conteúdo

POWERED BY:

Arquivado

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

artcul

Não consigo encontrar o erro.

Recommended Posts

Microsoft][Driver ODBC para Microsoft Access]

Tipo de dados imcompatível na expressão de critério.

/monitoramento/global.asa, line 18

 

Meu Código do global.asa

 

<script LANGUAGE="VBScript" RUNAT="Server">

Sub Session_OnStart
	
	   Set cnHo2 = Server.CreateObject("ADODB.Connection")
cnStHo2 = "driver={Microsoft Access Driver (*.mdb)};" & _
		  "dbq=" & Server.MapPath("aspbook2.mdb")
cnHo2.Open cnStHo2, "", ""

	DateTimeEntrance = now()

	if len(Request.Cookies("UTSample")) > 0 then
		CookieID = Request.Cookies("UTSample")
	else

				cnHo2.Execute "insert Into UTCookies (DateCreated) " _
		& "values ('" & DateTimeEntrance & "')"
		Set RSCookieID = cnHo2.Execute("select CookieID from UTCookies where " _
		& "DateCreated = '" & DateTimeEntrance & "'")
		CookieID = RSCookieID("CookieID")
		Response.Cookies("UTSample") = RSCookieID("CookieID")
		Response.Cookies("UTSample").Expires = #12/31/2008 00:00:00#	

	end if

	set BC = server.createobject("MSWC.BrowserType")

	IPAddress = Request.ServerVariables("remote_addr")
	UserAgent = Request.Servervariables ("HTTP_USER_AGENT")
	Browser = BC.Browser & " " & BC.Version
	DHTMLSupport = cstr(BC.dhtml)
	FramesSupport = cstr(BC.frames)
	TablesSupport = cstr(BC.tables)
	CookiesSupport = cstr(BC.cookies)
	BackGroundSounds = cstr(BC.backgroundsounds)
	JavaScriptSupport = cstr(BC.javascript)
	JaveAppletsSupport = cstr(BC.javaapplets)
	ActiveXControlsSupport = cstr(BC.activexcontrols)
	AOL = cstr(BC.aol)
	Platform = cstr(BC.platform)
	VBScriptSupport = cstr(BC.vbscript)
	
	FullReferer = Request.ServerVariables("http_referer")
	if len(FullReferer) <= 7 then
		RefererDomain = "-"
		RefererQuery = "-"
	else
		SlashPosition = instr(8, FullReferer, "/")
		if SlashPosition = 0 then
			RefererDomain = FullReferer
			RefererQuery = "-"
		else
			RefererDomain = left(FullReferer, SlashPosition - 1)
			RefererQuery = right(FullReferer, len(FullReferer) - SlashPosition)
		end if		
	end if
	
	SQL = "insert UTVisitors (DateTimeEntrance, IPAddress, UserAgent, Browser, "
	SQL = SQL & "DHTML, Frames, Tables, Cookies, BackgroundSOunds, JavaScript, "
	SQL = SQL & "JavaApplets, ActiveXControls, AOL, Platform, VBScript, "
	SQL = SQL & "ReferrerDomain, ReferrerQuery, CookieID) values ("
	SQL = SQL & "'" & DateTimeEntrance & "', "
	SQL = SQL & "'" & IPAddress & "', "
	SQL = SQL & "'" & UserAgent & "', "
	SQL = SQL & "'" & Browser & "', "
	SQL = SQL & "'" & DHTMLSupport & "', "
	SQL = SQL & "'" & FramesSupport & "', "
	SQL = SQL & "'" & TablesSupport & "', "
	SQL = SQL & "'" & CookiesSupport & "', "
	SQL = SQL & "'" & BackGroundSounds & "', "
	SQL = SQL & "'" & JavaScriptSupport & "', "
	SQL = SQL & "'" & JaveAppletsSupport & "', "
	SQL = SQL & "'" & ActiveXControlsSupport & "', "
	SQL = SQL & "'" & AOL & "', "
	SQL = SQL & "'" & Platform & "', "
	SQL = SQL & "'" & VBScriptSupport & "', "
	SQL = SQL & "'" & RefererDomain & "', "
	SQL = SQL & "'" & RefererQuery & "', "
	SQL = SQL & CookieID & ")"
	cnHo2.Execute SQL

Set RSRecordID = cnHo2.Execute("select RecordID from UTVisitors where DateTimeEntrance = '" & DateTimeEntrance & "'")
	Session("RecordID") = clng(RSRecordID("RecordID"))
End Sub

Sub Session_OnEnd
	
	   Set cnHo2 = Server.CreateObject("ADODB.Connection")
	   cnStHo2 = "driver={Microsoft Access Driver (*.mdb)};" & _
		  "dbq=" & Server.MapPath("aspbook2.mdb")
	   cnHo2.Open cnStHo2, "", ""
	
	cnHo2.execute "update UTVisitors set DateTimeExit = '" & now() _
	& "' where RecordID = " & Session("RecordID")
End Sub
</SCRIPT>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o campo "DateCreated" for do tipo numerico, retire a aspas simples do valor '" & DateTimeEntrance & "'.. deixe só com aspas dupla " & DateTimeEntrance & "...

 

Se nao.. diga qual é a linha..

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

me desculpem, a linha 18 está sublinhada:

 

<script LANGUAGE="VBScript" RUNAT="Server">

Sub Session_OnStart
	
	   Set cnHo2 = Server.CreateObject("ADODB.Connection")
cnStHo2 = "driver={Microsoft Access Driver (*.mdb)};" & _
		  "dbq=" & Server.MapPath("aspbook2.mdb")
cnHo2.Open cnStHo2, "", ""

	DateTimeEntrance = now()

	if len(Request.Cookies("UTSample")) > 0 then
		CookieID = Request.Cookies("UTSample")
	else

				cnHo2.Execute "insert Into UTCookies (DateCreated) " _
		& "values ('" & DateTimeEntrance & "')"
		[u]Set RSCookieID = cnHo2.Execute("select CookieID from UTCookies where " _[/u]
		& "DateCreated = '" & DateTimeEntrance & "'")
		CookieID = RSCookieID("CookieID")
		Response.Cookies("UTSample") = RSCookieID("CookieID")
		Response.Cookies("UTSample").Expires = #12/31/2008 00:00:00#

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se o campo "DateCreated" for do tipo numerico, retire a aspas simples do valor '" & DateTimeEntrance & "'.. deixe só com aspas dupla " & DateTimeEntrance & "...

 

Se nao.. diga qual é a linha..

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa coluna, DateTimeEntrance , no DB é de que tipo de dados?

 

meu caro, taí o que você tá querendo: DateTimeEntrance = Data/Hora

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido em parte: Com a ajuda de vocês e um pouquinho de pesquisa e paciência a gente vai resolvendo as coisas. O que acontece é o seguinte, toda entrada de data no acess exige-se que a gente coloque #" , "#. Coloquei o código todo para vocês darem uma olhada, as alterações estão sublinhadas.

 

Resolvido em parte porque agora não estou conseguindo imprimir a saída do visitante. Essas linhas estão no final do código em negrito.

 

 

CODIGO ALTERADO

 

<script LANGUAGE="VBScript" RUNAT="Server">

Sub Session_OnStart
	
	   Set cnHo2 = Server.CreateObject("ADODB.Connection")
cnStHo2 = "driver={Microsoft Access Driver (*.mdb)};" & _
		  "dbq=" & Server.MapPath("aspbook2.mdb")
cnHo2.Open cnStHo2, "", ""

	DateTimeEntrance = now()

	if len(Request.Cookies("UTSample")) > 0 then
		CookieID = Request.Cookies("UTSample")
	else

				  cnHo2.Execute "insert into UTCookies (DateCreated) " _
	& [u]"values (#" & DateTimeEntrance & "#)"[/u]		
			   
					Set RSCookieID = cnHo2.Execute("select CookieID from UTCookies where " _
	[u]& " DateCreated = #" & DateTimeEntrance & "# ")[/u]
	
				   CookieID = RSCookieID("CookieID")
	Response.Cookies("UTSample") = RSCookieID("CookieID")
	[u]Response.Cookies("UTSample").Expires = #12/31/2008 00:00:00#[/u]	

	end if

	set BC = server.createobject("MSWC.BrowserType")
		
	IPAddress = Request.ServerVariables("remote_addr")
	UserAgent = Request.Servervariables ("HTTP_USER_AGENT")
	Browser = BC.Browser & " " & BC.Version
	DHTMLSupport = cstr(BC.dhtml)
	FramesSupport = cstr(BC.frames)
	TablesSupport = cstr(BC.tables)
	CookiesSupport = cstr(BC.cookies)
	BackGroundSounds = cstr(BC.backgroundsounds)
	JavaScriptSupport = cstr(BC.javascript)
	JaveAppletsSupport = cstr(BC.javaapplets)
	ActiveXControlsSupport = cstr(BC.activexcontrols)
	AOL = cstr(BC.aol)
	Platform = cstr(BC.platform)
	VBScriptSupport = cstr(BC.vbscript)
	
		FullReferer = Request.ServerVariables("http_referer")
	if len(FullReferer) <= 7 then
		RefererDomain = "-"
		RefererQuery = "-"
	else
		SlashPosition = instr(8, FullReferer, "/")
		if SlashPosition = 0 then
			RefererDomain = FullReferer
			RefererQuery = "-"
		else
			RefererDomain = left(FullReferer, SlashPosition - 1)
			RefererQuery = right(FullReferer, len(FullReferer) - SlashPosition)
		end if		
	end if
	
	SQL = "insert into UTVisitors (DateTimeEntrance, IPAddress, UserAgent, Browser, "
	SQL = SQL & "DHTML, Frames, Tables, Cookies, BackgroundSOunds, JavaScript, "
	SQL = SQL & "JavaApplets, ActiveXControls, AOL, Platform, VBScript, "
	SQL = SQL & "RefererDomain, RefererQuery, CookieID) values ("
	[u]SQL = SQL & " #" & DateTimeEntrance & "# , "[/u]
	SQL = SQL & "'" & IPAddress & "', "
	SQL = SQL & "'" & UserAgent & "', "
	SQL = SQL & "'" & Browser & "', "
	SQL = SQL & "'" & DHTMLSupport & "', "
	SQL = SQL & "'" & FramesSupport & "', "
	SQL = SQL & "'" & TablesSupport & "', "
	SQL = SQL & "'" & CookiesSupport & "', "
	SQL = SQL & "'" & BackGroundSounds & "', "
	SQL = SQL & "'" & JavaScriptSupport & "', "
	SQL = SQL & "'" & JaveAppletsSupport & "', "
	SQL = SQL & "'" & ActiveXControlsSupport & "', "
	SQL = SQL & "'" & AOL & "', "
	SQL = SQL & "'" & Platform & "', "
	SQL = SQL & "'" & VBScriptSupport & "', "
	SQL = SQL & "'" & RefererDomain & "', "
	SQL = SQL & "'" & RefererQuery & "', "
	SQL = SQL & CookieID & ")"
	cnHo2.Execute SQL

	Set RSRecordID = cnHo2.Execute("select RecordID from UTVisitors where [u]DateTimeEntrance = #" &  DateTimeEntrance & "# ")[/u]	
				  Session("RecordID") = clng(RSRecordID("RecordID"))
End Sub

Sub Session_OnEnd
	
	   
	   Set cnHo2 = Server.CreateObject("ADODB.Connection")
	   cnStHo2 = "driver={Microsoft Access Driver (*.mdb)};" & _
		  "dbq=" & Server.MapPath("aspbook2.mdb")
	   cnHo2.Open cnStHo2, "", ""
	
	[b]cnHo2.execute "update UTVisitors set DateTimeExit = '" & now() _
	& "' where RecordID = " & Session("RecordID[/b]")
End Sub
</SCRIPT>

 

Valeu, estamos aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

primeiro, qual mensagem de erro?

segundo...tem umas coisas erradas ai, veja como seria:

 

cnHo2.execute ("update UTVisitors set DateTimeExit = '" & now()& "' where RecordID = " & Session("RecordID"))

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Jonathandj, já corrigi o que você me pediu, mas não deu certo. Para essa questão parece que o código já está correto porque não existe mensagem de erro. O que acontece de errado é que não estou conseguindo imprimir a data e a hora da saída do visitante. Acho que tem alguma coisa a ver com a configuração do tempo de sessão no servidor.

O que você acha?

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.