<?xml version="1.0" encoding="Shift_JIS" ?>
<package>
	<component id="counter">
		<?component error="True" debug="True" ?>
		<registration progid="Wings.Counter" version="1" />
		<public>
			<property name="Database" get="getDb" put="setDb" />
			<method name="Increment" internalName="increment">
				<parameter name="Key" />
				<parameter name="Step" />
			</method>
			<method name="ShowCount" internalName="showCount">
				<parameter name="Key" />
			</method>
		</public>
		<object id="db" progid="ADODB.Connection" />
		<object id="fs" progid="Scripting.FileSystemObject" />
		<script language="VBScript">
		<![CDATA[
		Dim dbName
		Function getDb()
			getDb=dbName
		End Function
		Function setDb(dbPath)
			If fs.FileExists(dbPath) Then
				dbName=dbPath
			End If
		End Function
		Sub increment(Key,Step)
			db.Provider="Microsoft.Jet.OLEDB.4.0"
			db.Mode=3
			db.ConnectionString=dbName
			db.Open
			Set rs=db.Execute("SELECT [key] FROM [counter] WHERE [key]='" & Key & "'")
			If rs.EOF Then
				db.Execute("INSERT INTO [counter]([key],[count]) VALUES('" & Key & "'," & Step & ")")
			Else
				db.Execute("UPDATE [counter] SET [count]=[count]+" & Step & " WHERE [key]='" & Key & "'")
			End If
			db.Close
		End Sub
		Function showCount(Key)
			db.Provider="Microsoft.Jet.OLEDB.4.0"
			db.Mode=1
			db.ConnectionString=dbName
			db.Open
			Set rs=db.Execute("SELECT [count] FROM [counter] WHERE [key]='" & Key & "'")
			If rs.EOF Then
				showCount="カウント値を取得できませんでした。"
			Else
				showCount=rs("count")
			End If
			db.Close
		End Function
		]]>
		</script>
	</component>
</package>
