<% '################################################ ' 名称 :データベース接続関数定義 ' 作成日 :2008/10/29 ' 作成者 :小野 '################################################ %> <% 'FESメッセンジャーデータベースにクエリを送る Function OpenQuery(Query) Set OpenQuery = ExecQuery(Query, SQLConn) End Function '呼び出し元アプリのデータベースにクエリを送る Function AppQuery(Query) Set AppQuery = ExecQuery(Query, APLConn) End Function Function ExecQuery(Query, SQLConn) Dim MESdb Dim Content Set MESdb = Server.CreateObject("ADODB.Connection") MESdb.ConnectionTimeout = 60 MESdb.CommandTimeout = 60 MESdb.Open SQLConn Set Content = MESdb.Execute(Query) Do While Not Content Is Nothing If Content.Fields.Count > 0 Then Exit Do End If Set Content = Content.NextRecordSet() Loop Set ExecQuery = Content End Function '※※※※※※※※※※※※※※※※※※※※※※※※※※ ' 以下FESアプリケーションデータベース取得プロシージャ '※※※※※※※※※※※※※※※※※※※※※※※※※※ '演習一覧取得 Function GetEnshuList(Mode1, Mode2) Dim Query Dim Content Query = "" If MES_AppCD = "sj4web" Or MES_AppCD = "ca21" Then Query = Query & " SELECT TC2演習M.システムCD AS システムCD " Query = Query & " , TC2演習M.演習CD AS 演習CD " Query = Query & " , TC2演習M.演習名称 AS 演習名称 " Query = Query & " FROM TC2演習M " If Mode1 Then '参加グループの存在しない演習を除外する Query = Query & " INNER JOIN TC4演習許可学生グループM " Query = Query & " ON TC2演習M.システムCD = TC4演習許可学生グループM.システムCD " Query = Query & " AND TC2演習M.演習CD = TC4演習許可学生グループM.演習CD " End If If Mode2 Then 'ユーザーの存在しないグループを除外する Query = Query & " INNER JOIN TC5学生M " Query = Query & " ON TC4演習許可学生グループM.システムCD = TC5学生M.システムCD " Query = Query & " AND TC4演習許可学生グループM.学生グループCD = TC5学生M.学生グループCD " End If Query = Query & " WHERE TC2演習M.システムCD = '" & MES_SystemCD & "' " If MES_Admin = 2 Then '演習管理者の場合の絞込み Query = Query & " AND TC2演習M.演習管理者ID = '" & MES_KanriID & "' " End If If MES_AppCD = "ca21" Then Query = Query & " AND TC2演習M.パッケージ区分 = 'CA' " Else Query = Query & " AND (TC2演習M.パッケージ区分 = '' OR TC2演習M.パッケージ区分 IS NULL) " End If Query = Query & " GROUP BY TC2演習M.システムCD " Query = Query & " , TC2演習M.演習CD " Query = Query & " , TC2演習M.演習名称 " Query = Query & " ORDER BY TC2演習M.演習CD " ElseIf MES_AppCD = "ct21" Then 'ct21はシステムコード無し Query = Query & " SELECT ctpPracticeM.PracticeCode AS 演習CD " Query = Query & " , ctpPracticeM.PracticeName AS 演習名称 " Query = Query & " FROM ctpPracticeM " If Mode1 Then '参加グループの存在しない演習を除外する Query = Query & " INNER JOIN ctpGroupT " Query = Query & " ON ctpPracticeM.PracticeCode = ctpGroupT.PracticeCode " End If If Mode2 Then 'ユーザーの存在しないグループを除外する Query = Query & " INNER JOIN ctxLoginF " Query = Query & " ON ctpGroupT.GroupCode = ctxLoginF.GroupCode " End If If MES_Admin = 2 Then '演習管理者の場合の絞込み Query = Query & " WHERE ctpPracticeM.MasterID = '" & MES_KanriID & "' " End If Query = Query & " GROUP BY ctpPracticeM.PracticeCode " Query = Query & " , ctpPracticeM.PracticeName " Query = Query & " ORDER BY ctpPracticeM.PracticeCode " ElseIf MES_AppCD = "cs" Then 'csはシステムコード無し Query = Query & " SELECT TS演習M.演習CD AS 演習CD " Query = Query & " , TS演習M.演習名称 AS 演習名称 " Query = Query & " FROM TS演習M " If Mode1 Then '参加グループの存在しない演習を除外する Query = Query & " INNER JOIN " Query = Query & " TS演習参加グループM " Query = Query & " ON TS演習M.演習CD = TS演習参加グループM.演習CD " End If If MES_Admin = 3 Then 'グループ管理者の場合の絞込み(csのみ) Query = Query & " INNER JOIN " Query = Query & " TSグループM " Query = Query & " ON TS演習参加グループM.グループCD = TSグループM.グループCD " Query = Query & " AND TSグループM.グループ管理者ID = '" & MES_KanriID & "' " End If If Mode2 Then 'ユーザーの存在しないグループを除外する Query = Query & " INNER JOIN TSユーザーM " Query = Query & " ON TS演習参加グループM.グループCD = TSユーザーM.グループCD " End If Query = Query & " GROUP BY TS演習M.演習CD " Query = Query & " , TS演習M.演習名称 " Query = Query & " ORDER BY TS演習M.演習CD " End If 'Response.Write(Query) Set GetEnshuList = AppQuery(Query) End Function 'グループ一覧取得 Function GetGroupList(EnshuCD, Mode) Dim Query Query = "" If MES_AppCD = "sj4web" Or MES_AppCD = "ca21" Then Query = Query & " SELECT TC4演習許可学生グループM.システムCD AS システムCD " Query = Query & " , TC4演習許可学生グループM.演習CD AS 演習CD " Query = Query & " , TC4演習許可学生グループM.学生グループCD AS グループCD " Query = Query & " , TC3学生グループM.グループ名称 AS グループ名称 " Query = Query & " FROM TC4演習許可学生グループM " Query = Query & " INNER JOIN TC3学生グループM " Query = Query & " ON TC4演習許可学生グループM.システムCD = TC3学生グループM.システムCD " Query = Query & " AND TC4演習許可学生グループM.学生グループCD = TC3学生グループM.学生グループCD " If Mode Then 'ユーザーの存在しないグループを除外する Query = Query & " INNER JOIN TC5学生M " Query = Query & " ON TC4演習許可学生グループM.システムCD = TC5学生M.システムCD " Query = Query & " AND TC4演習許可学生グループM.学生グループCD = TC5学生M.学生グループCD " End If Query = Query & " WHERE TC4演習許可学生グループM.システムCD = '" & MES_SystemCD & "' " Query = Query & " AND ('" & EnshuCD & "' = '' OR TC4演習許可学生グループM.演習CD = '" & EnshuCD & "') " 'EnshuCDがNULLなら全演習の参加グループを取得 Query = Query & " ORDER BY TC4演習許可学生グループM.学生グループCD " ElseIf MES_AppCD = "ct21" Then 'ct21はシステムコード無し Query = Query & " SELECT ctpGroupT.PracticeCode AS 演習CD " Query = Query & " , ctpGroupT.GroupCode AS グループCD " Query = Query & " , ctxGroupM.GroupName AS グループ名称 " Query = Query & " FROM ctpGroupT " Query = Query & " INNER JOIN ctxGroupM " Query = Query & " ON ctpGroupT.GroupCode = ctxGroupM.GroupCode " If Mode Then 'ユーザーの存在しないグループを除外する Query = Query & " INNER JOIN ctxLoginF " Query = Query & " ON ctpGroupT.GroupCode = ctxLoginF.GroupCode " End If Query = Query & " WHERE ('" & EnshuCD & "' = '' OR ctpGroupT.PracticeCode = '" & EnshuCD & "') " 'EnshuCDがNULLなら全演習の参加グループを取得 Query = Query & " ORDER BY ctpGroupT.GroupCode " ElseIf MES_AppCD = "cs" Then 'csはシステムコード無し Query = Query & " SELECT TS演習参加グループM.演習CD AS 演習CD " Query = Query & " , TS演習参加グループM.グループCD AS グループCD " Query = Query & " , TSグループM.グループ名称 AS グループ名称 " Query = Query & " FROM TS演習参加グループM " Query = Query & " INNER JOIN TSグループM " Query = Query & " ON TS演習参加グループM.グループCD = TSグループM.グループCD " If Mode Then 'ユーザーの存在しないグループを除外する Query = Query & " INNER JOIN TSユーザーM " Query = Query & " ON TS演習参加グループM.グループCD = TSユーザーM.グループCD " End If Query = Query & " WHERE ('" & EnshuCD & "' = '' OR TS演習参加グループM.演習CD = '" & EnshuCD & "') " 'EnshuCDがNULLなら全演習の参加グループを取得 Query = Query & " ORDER BY TS演習参加グループM.グループCD " End If Set GetGroupList = AppQuery(Query) End Function 'ユーザー一覧取得 Function GetUserList(EnshuCD, GroupCD) Dim Query Query = "" If MES_AppCD = "sj4web" Or MES_AppCD = "ca21" Then Query = Query & " SELECT TC5学生M.システムCD AS システムCD " Query = Query & " , TC5学生M.学生番号 AS ユーザーID " Query = Query & " , TC5学生M.氏名 AS ユーザー氏名 " Query = Query & " , TC5学生M.学生グループCD AS グループCD " If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " , TC4演習許可学生M.演習CD AS 演習CD " Query = Query & " , TC4演習許可学生グループM.演習CD AS 演習CD " End If Query = Query & " FROM TC5学生M " If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " LEFT OUTER JOIN TC4演習許可学生M " Query = Query & " ON TC5学生M.システムCD = TC4演習許可学生M.システムCD " Query = Query & " AND TC5学生M.学生番号 = TC4演習許可学生M.学生番号 " Query = Query & " AND TC4演習許可学生M.演習CD = '" & EnshuCD & "' " Query = Query & " LEFT OUTER JOIN TC4演習許可学生グループM " Query = Query & " ON TC5学生M.システムCD = TC4演習許可学生グループM.システムCD " Query = Query & " AND TC5学生M.学生グループCD = TC4演習許可学生グループM.学生グループCD " Query = Query & " AND TC4演習許可学生グループM.演習CD = '" & EnshuCD & "' " End If Query = Query & " WHERE TC5学生M.システムCD = '" & MES_SystemCD & "' " Query = Query & " AND ('" & GroupCD & "' = '' OR TC5学生M.学生グループCD = '" & GroupCD & "') " 'GroupCDがNULLなら全グループ取得 If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " AND ((TC4演習許可学生グループM.演習CD = '" & EnshuCD & "' " Query = Query & " AND TC4演習許可学生グループM.学生グループCD IS NOT NULL) " Query = Query & " OR (TC4演習許可学生M.演習CD = '" & EnshuCD & "' " Query = Query & " AND TC4演習許可学生M.学生番号 IS NOT NULL)) " End If Query = Query & " GROUP BY TC5学生M.システムCD " Query = Query & " , TC5学生M.学生番号 " Query = Query & " , TC5学生M.氏名 " Query = Query & " , TC5学生M.学生グループCD " If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " , TC4演習許可学生M.演習CD " Query = Query & " , TC4演習許可学生グループM.演習CD " End If Query = Query & " ORDER BY TC5学生M.学生番号 " ElseIf MES_AppCD = "ct21" Then 'ct21はシステムコード無し Query = Query & " SELECT ctxLoginF.LoginId AS ユーザーID " Query = Query & " , ctxLoginF.Name AS ユーザー氏名 " Query = Query & " , ctxLoginF.GroupCode AS グループCD " If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " , ctpGroupT.PracticeCode AS 演習CD " End If Query = Query & " FROM ctxLoginF " If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " INNER JOIN ctpGroupT " Query = Query & " ON ctxLoginF.GroupCode = ctpGroupT.GroupCode " End If Query = Query & " WHERE ('" & GroupCD & "' = '' OR ctxLoginF.GroupCode = '" & GroupCD & "') " 'GroupCDがNULLなら全グループ取得 If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " AND ctpGroupT.PracticeCode = '" & EnshuCD & "' " End If Query = Query & " GROUP BY ctxLoginF.LoginId " Query = Query & " , ctxLoginF.Name " Query = Query & " , ctxLoginF.GroupCode " If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " , ctpGroupT.PracticeCode " End If Query = Query & " ORDER BY ctxLoginF.LoginId " ElseIf MES_AppCD = "cs" Then 'csはシステムコード無し Query = Query & " SELECT TSユーザーM.ユーザーID AS ユーザーID " Query = Query & " , TSユーザーM.氏名 AS ユーザー氏名 " Query = Query & " , TSユーザーM.グループCD AS グループCD " If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " , TS演習参加グループM.演習CD AS 演習CD " End If Query = Query & " FROM TSユーザーM " If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " INNER JOIN TS演習参加グループM " Query = Query & " ON TSユーザーM.グループCD = TS演習参加グループM.グループCD " End If Query = Query & " WHERE ('" & GroupCD & "' = '' OR TSユーザーM.グループCD = '" & GroupCD & "') " 'GroupCDがNULLなら全グループ取得 If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " AND TS演習参加グループM.演習CD = '" & EnshuCD & "' " End If If GroupCD <> "" Then 'グループ管理者ならグループで絞込む Query = Query & " AND TSユーザーM.グループCD = '" & GroupCD & "' " End If Query = Query & " GROUP BY TSユーザーM.ユーザーID " Query = Query & " , TSユーザーM.氏名 " Query = Query & " , TSユーザーM.グループCD " If EnshuCD <> "" Then '演習で絞込む場合 Query = Query & " , TS演習参加グループM.演習CD " End If Query = Query & " ORDER BY TSユーザーM.ユーザーID " End If Set GetUserList = AppQuery(Query) End Function '演習名称取得 Function GetEnshuName(EnshuCD) Dim Query Dim Content Query = "" If MES_AppCD = "sj4web" Or MES_AppCD = "ca21" Then Query = Query & " SELECT TC2演習M.演習名称 AS 演習名称 " Query = Query & " FROM TC2演習M " Query = Query & " WHERE TC2演習M.システムCD = '" & MES_SystemCD & "' " Query = Query & " AND TC2演習M.演習CD = '" & EnshuCD & "' " ElseIf MES_AppCD = "ct21" Then 'ct21はシステムコード無し Query = Query & " SELECT ctpPracticeM.PracticeName AS 演習名称 " Query = Query & " FROM ctpPracticeM " Query = Query & " WHERE ctpPracticeM.PracticeCode = '" & EnshuCD & "' " ElseIf MES_AppCD = "cs" Then 'csはシステムコード無し Query = Query & " SELECT TS演習M.演習CD AS 演習名称 " Query = Query & " FROM TS演習M " Query = Query & " WHERE TS演習M.演習CD = '" & EnshuCD & "' " End If Set Content = AppQuery(Query) If Not(Content.BOF Or Content.EOF) Then GetEnshuName = Content.Fields("演習名称") Else GetEnshuName = "" End If End Function 'グループ名称取得 Function GetGroupName(GroupCD) Dim Query Dim Content Query = "" If MES_AppCD = "sj4web" Or MES_AppCD = "ca21" Then Query = Query & " SELECT TC3学生グループM.グループ名称 AS グループ名称" Query = Query & " FROM TC3学生グループM " Query = Query & " WHERE TC3学生グループM.システムCD = '" & MES_SystemCD & "' " Query = Query & " AND TC3学生グループM.学生グループCD = '" & GroupCD & "' " ElseIf MES_AppCD = "ct21" Then Query = Query & " SELECT ctxGroupM.GroupName AS グループ名称 " Query = Query & " FROM ctxGroupM " Query = Query & " WHERE ctxGroupM.GroupCode = '" & GroupCD & "' " ElseIf MES_AppCD = "cs" Then Query = Query & " SELECT TSグループM.グループ名称 AS グループ名称 " Query = Query & " FROM TSグループM " Query = Query & " WHERE TSグループM.グループCD = '" & GroupCD & "' " End If Set Content = AppQuery(Query) If Not(Content.BOF Or Content.EOF) Then GetGroupName = Content.Fields("グループ名称") Else GetGroupName = "" End If End Function 'ユーザー氏名取得 Function GetUserName(UserID) Dim Query Dim Content Query = "" If MES_AppCD = "sj4web" Or MES_AppCD = "ca21" Then Query = Query & " SELECT TC5学生M.氏名 AS ユーザー氏名 " Query = Query & " FROM TC5学生M " Query = Query & " WHERE TC5学生M.システムCD = '" & MES_SystemCD & "' " Query = Query & " AND TC5学生M.学生番号 = '" & UserID & "' " Set Content = AppQuery(Query) ElseIf MES_AppCD = "ct21" Then 'ct21はシステムコード無し Query = Query & " SELECT ctxLoginF.Name AS ユーザー氏名 " Query = Query & " FROM ctxLoginF " Query = Query & " WHERE ctxLoginF.LoginId = '" & UserID & "' " Set Content = AppQuery(Query) ElseIf MES_AppCD = "cs" Then 'csはシステムコード無し Query = Query & " SELECT TSユーザーM.氏名 AS ユーザー氏名 " Query = Query & " FROM TSユーザーM " Query = Query & " WHERE TSユーザーM.ユーザーID = '" & UserID & "' " Set Content = AppQuery(Query) End If If Not(Content.BOF Or Content.EOF) Then GetUserName = Content.Fields("ユーザー氏名") Else GetUserName = "" End If End Function '任意のユーザー氏名を一覧取得 Function GetUserNameList(UserIDs) Dim Query Dim Content Dim UserIDAry UserIDAry = Split(UserIDs, ",") Dim ii Dim UserIDList For ii = 0 To UBound(UserIDAry) If UserIDAry(ii) <> "" Then If UserIDList <> "" Then UserIDList = UserIDList & "," End If UserIDList = UserIDList & "'" & UserIDAry(ii) & "'" End If Next Query = "" If MES_AppCD = "sj4web" Or MES_AppCD = "ca21" Then Query = Query & " SELECT TC5学生M.氏名 AS ユーザー氏名 " Query = Query & " , TC5学生M.学生番号 AS ユーザーID " Query = Query & " FROM TC5学生M " Query = Query & " WHERE TC5学生M.システムCD = '" & MES_SystemCD & "' " Query = Query & " AND TC5学生M.学生番号 IN (" & UserIDList & ") " ElseIf MES_AppCD = "ct21" Then Query = Query & " SELECT ctxLoginF.Name AS ユーザー氏名 " Query = Query & " , ctxLoginF.LoginId AS ユーザーID " Query = Query & " FROM ctxLoginF " Query = Query & " WHERE ctxLoginF.LoginId IN (" & UserIDList & ") " ElseIf MES_AppCD = "cs" Then Query = Query & " SELECT TSユーザーM.氏名 AS ユーザー氏名 " Query = Query & " , TSユーザーM.ユーザーID AS ユーザーID " Query = Query & " FROM TSユーザーM " Query = Query & " WHERE TSユーザーM.ユーザーID IN (" & UserIDList & ") " End If Set GetUserNameList = AppQuery(Query) ' GetUserNameList = Query End Function '演習管理者存在チェック Function GetEnshuAdmin(EnshuCD) Dim Query Dim Content Query = "" If MES_AppCD = "sj4web" Or MES_AppCD = "ca21" Then Query = Query & " SELECT * " Query = Query & " FROM TC2演習M " Query = Query & " WHERE システムCD = '" & MES_SystemCD & "' " Query = Query & " AND 演習CD = '" & EnshuCD & "' " Query = Query & " AND (演習管理者ID <> '' AND 演習管理者ID IS NOT NULL) " ElseIf MES_AppCD = "ct21" Then 'ct21はシステムコード無し Query = Query & " SELECT * " Query = Query & " FROM ctpPracticeM " Query = Query & " WHERE PracticeCode = '" & EnshuCD & "' " Query = Query & " AND (MasterID <> '' AND MasterID IS NOT NULL) " ElseIf MES_AppCD = "cs" Then 'csはシステムコード無し Query = Query & " SELECT * " Query = Query & " FROM TS演習M " Query = Query & " WHERE 演習CD = '" & EnshuCD & "' " Query = Query & " AND (演習管理者ID <> '' AND 演習管理者ID IS NOT NULL) " End If Set Content = AppQuery(Query) If Not(Content.BOF Or Content.EOF) Then GetEnshuAdmin = True Else GetEnshuAdmin = False End If End Function 'グループ管理者存在チェック Function GetGroupAdmin(GroupCD) Dim Query Dim Content Query = "" 'グループ管理者はcsのみ If MES_AppCD = "cs" Then Query = Query & " SELECT * " Query = Query & " FROM TSグループM " Query = Query & " WHERE グループCD = '" & GroupCD & "' " Query = Query & " AND (グループ管理者ID <> '' AND グループ管理者ID IS NOT NULL) " Set Content = AppQuery(Query) If Not(Content.BOF Or Content.EOF) Then GetGroupAdmin = True Else GetGroupAdmin = False End If Else GetGroupAdmin = False End If End Function %>