データベース

例で使用するデータベース

ファイル形式Microsoft Access 2000
ファイル名db1.mdb
テーブル数1
テーブル名Users
 
フィールド名IDUserNamePassWordLastAccessAccessCount
オートナンバー型テキスト型テキスト型日付型数値型
内容ID番号ユーザ名パスワードログイン日時ログインした回数

接続と切断

Dim oConnect
' Connectionオブジェクトの作成
Set oConnect = Server.CreateObject("ADODB.Connection")
' Access 2000の場合
oConnect.Provider = "Microsoft.Jet.OLEDB.4.0"
' mdbファイルは、スクリプトと同じフォルダに置くと外部から見られるので
' 実際には外部からアクセスできない場所に置き、絶対パスで指定する。
oConnect.ConnectionString = Server.MapPath("db1.mdb")
' 接続
oConnect.Open

' 実際の処理

' 切断
oConnect.Close
Set oConnect = Nothing

条件に一致するレコード数の取得

' 問い合わせるユーザ名とパスワード
Dim sUser, sPass
sUser = "xxx"
sPass = "xxx"

Dim oCmd, oUserID, oPassword, oRecordSet, nCount
' Commandオブジェクトの作成
Set oCmd = Server.CreateObject("ADODB.Command")
oCmd.ActiveConnection = oConnect
' テーブル[Users]から、フィールド[UserName]とフィールド[PassWord]が一致するものを選択し、
' その数を数えて[Total]と名付けるクエリ
oCmd.CommandText= "SELECT count(ID) As Total FROM Users " _
	& "WHERE (UserName=?) and (PassWord=?)"
oCmd.CommandType = adCmdText
' Parameterオブジェクトの作成
Set oUserID = oCmd.CreateParameter("UserName", adChar, adParamInput, Len(sUser), sUser)
oCmd.Parameters.Append oUserID
Set oPassword = oCmd.CreateParameter("PassWord", adChar, adParamInput, Len(sPass), sPass)
oCmd.Parameters.Append oPassword
' RecordSetの取得 (ここで得られるRecordSetは読み取り専用)
Set oRecordSet = oCmd.Execute()

' RecordSetの処理
nCount = oRecordSet("Total")

' オブジェクトの開放
oRecordSet.close
Set oRecordSet = Nothing
Set oUserID = Nothing
Set oPassword = Nothing
Set oCmd = Nothing

データベースの更新

' 更新するユーザ名とパスワード
Dim sUser, sPass
sUser = "xxx"
sPass = "xxx"

Dim oCmd, oUserID, oPassword, oRecordSet
' Commandオブジェクトの作成
Set oCmd = Server.CreateObject("ADODB.Command")
oCmd.ActiveConnection = oConnect
' テーブル[Users]から、フィールド[UserName]とフィールド[PassWord]が一致するものを選択し、
' ログイン日時と回数を更新するクエリ
oCmd.CommandText= "UPDATE Users SET LastAccess=Now(),AccessCount=AccessCount+1 " _
	& "WHERE (UserName=?) and (PassWord=?)"
oCmd.CommandType = adCmdText
' Parameterオブジェクトの作成
Set oUserID = oCmd.CreateParameter("UserName", adChar, adParamInput, Len(sUser), sUser)
oCmd.Parameters.Append oUserID
Set oPassword = oCmd.CreateParameter("PassWord", adChar, adParamInput, Len(sPass), sPass)
oCmd.Parameters.Append oPassword
oCmd.Execute()
Set oUserID = Nothing
Set oPassword = Nothing
Set oCmd = Nothing

データベースファイルは「インターネットゲストアカウント」が書き込めるようなセキュリティ設定になっていること。

条件に一致するレコードの取得

' 問い合わせるユーザ名とパスワード
Dim sUser, sPass
sUser = "xxx"
sPass = "xxx"

Dim oCmd, oUserID, oPassword, oRecordSet, nID, dLastAccess, nCount
' Commandオブジェクトの作成
Set oCmd = Server.CreateObject("ADODB.Command")
oCmd.ActiveConnection = oConnect
' テーブル[Users]から、フィールド[UserName]とフィールド[PassWord]が一致するものを選択し、
' そのレコードを取得するクエリ
oCmd.CommandText= "SELECT * FROM Users WHERE (UserName=?) and (PassWord=?)"
oCmd.CommandType = adCmdText
' Parameterオブジェクトの作成
Set oUserID = oCmd.CreateParameter("UserName", adChar, adParamInput, Len(sUser), sUser)
oCmd.Parameters.Append oUserID
Set oPassword = oCmd.CreateParameter("PassWord", adChar, adParamInput, Len(sPass), sPass)
oCmd.Parameters.Append oPassword
' RecordSetの取得 (ここで得られるRecordSetは読み取り専用)
Set oRecordSet = oCmd.Execute()

' RecordSetの処理
nID = oRecordSet("ID")
dLastAccess = oRecordSet("LastAccess")
nCount = oRecordSet("AccessCount")

' オブジェクトの開放
oRecordSet.close
Set oRecordSet = Nothing
Set oUserID = Nothing
Set oPassword = Nothing
Set oCmd = Nothing

複数のレコードを持つレコードセットに対する処理

Dim oField
Dim sName, sValue
' フィールドの数だけ処理
for each oField in oRecordSet.Fields
	sName = oField.Name
next

' レコードセットに含まれる全てのレコードに対して処理
do while not oRecordSet.EOF
	' フィールドの数だけ処理
	for each oField in oRecordSet.Fields
		sValue = oField.Value
	next
	' 次のレコードへ
	oRecordSet.MoveNext
loop

SQL Server 内の全てのデータベースをバックアップする

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
' http://www.wisesoft.co.uk/scripts/vbscript_backup_sql_server_databases.aspx
 
serverName = InputBox("Please enter the name of the SQL Server:" & vbCrLf & _
        "(connection will be made using a trusted connection)",,"localhost\SQLEXPRESS")
If serverName = "" Then wscript.quit
 
backupDirectory = InputBox("Please enter the backup directory:")
If backupdirectory = "" Then wscript.quit
If Not Mid(backupDirectory,Len(backupDirectory),1)="\" Then
    backupDirectory = backupDirectory & "\"
End If
 
Set cn = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")
Set rs = CreateObject("ADODB.RecordSet")
 
cn.open "Provider=SQLOLEDB; Data Source=" & serverName & "; Integrated Security=SSPI; Initial Catalog=Master"
cmd.activeconnection = cn
 
cmd.commandtext = "exec sp_helpdb"
Set rs = cmd.execute
 
While rs.eof <> true And rs.bof <> true
    If Not rs("name") = "tempdb" Then
        backupDatabase rs("name")
    End If
    rs.movenext
Wend
 
cn.close
 
wscript.echo "Backup Complete"
 
 
Sub backupDatabase(byval databaseName)
    
    fileName = backupDirectory & Replace(Replace(Now,"/","_"),":","_") & "_" & databaseName & ".BAK" 
 
    Set cmdbackup = CreateObject("ADODB.Command")
    cmdbackup.activeconnection = cn
    cmdbackup.commandtext = "BACKUP DATABASE " & databaseName & " TO DISK='" & fileName & "' WITH INIT"
    cmdbackup.execute
 
End Sub
 
' EOF

リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Mon, 23 Jul 2012 14:15:38 JST (2220d)