Function ReplaceRegExp(Subject, Pattern, ReplaceTo) Dim RegEx Set RegEx = New RegExp RegEx.Pattern = Pattern RegEx.Global = True ReplaceRegExp = RegEx.Replace(Subject, ReplaceTo) End Function Dim Counters Set Counters = WScript.CreateObject("Scripting.Dictionary") Sub ProcessQuery(C, BlobPrefix, CounterIndex, QueryText) Dim R, A, FSO, COAddress, BlobFileName, LogFile, BlobStream, BlobStreamSize Set R = C.Execute(QueryText) Set FSO = CreateObject("Scripting.FileSystemObject") Do Until R.Eof COAddress = R("Address") COAddress = ReplaceRegExp(COAddress, "\/", " дробь ") COAddress = ReplaceRegExp(COAddress, """", "") COAddress = ReplaceRegExp(COAddress, "\?", " вопрос ") COAddress = ReplaceRegExp(COAddress, "\*", " звезда ") ' WScript.Echo COAddress If Not FSO.FileExists("export.log") Then FSO.CreateTextFile("export.log") End If Set LogFile = FSO.OpenTextFile("export.log", 8, True) ' LogFile.WriteLine(COAddress) If Not FSO.FolderExists(COAddress) Then FSO.CreateFolder(COAddress) End If BlobFileName = "" BlobStreamSize = 0 If Not Counters.Exists(COAddress) Then Counters(COAddress) = Array(0, 0, 0, 0) LogFile.WriteLine(COAddress & "dict not exist") End If If R("Attachment").ActualSize > 0 Then Set BlobStream = WScript.CreateObject("ADODB.Stream") BlobStream.Open BlobStream.Type = 1 'adTypeBinary BlobStream.Write R("Attachment") BlobFileName = COAddress & "\" & BlobPrefix & R("DocumentName") Do Until Not FSO.FileExists(BlobFileName) BlobFileName = BlobFileName & "_new" LogFile.WriteLine " " & BlobFileName Loop BlobStreamSize = BlobStream.Size BlobStream.SaveToFile BlobFileName, 1 'LogFile.WriteLine(Counters(COAddress)(CounterIndex)) A = Counters(COAddress) A(CounterIndex) = A(CounterIndex) + 1 Counters(CoAddress) = A 'LogFile.WriteLine(Counters(COAddress)(CounterIndex)) End If LogFile.WriteLine(COAddress & Chr(9) & R("Description") & Chr(9) & BlobPrefix & Chr(9) & BlobFileName & Chr(9) & R("Attachment").ActualSize & Chr(9) & BlobStreamSize) LogFile.WriteLine(COAddress & Chr(9) & Counters(COAddress)(0) & Chr(9) & Counters(COAddress)(1) & Chr(9) & Counters(COAddress)(2) & Chr(9) & Counters(COAddress)(3)) LogFile.Close R.MoveNext Loop R.Close End Sub dim C Set C = WScript.CreateObject("ADODB.Connection") 'C.ConnectionString = "Provider=SQLOLEDB.1;Data Source=W64,1455;Initial Catalog=GorsetiVVS-201110;User ID=InfoAdmin;Password=InfoAdmin" C.ConnectionString = "Provider=SQLOLEDB.1;Data Source=ntserver2;Initial Catalog=Электросеть;User ID=InfoAdmin;Password=InfoAdmin" C.Open ProcessQuery C, "Акт_приёмки_учёта_", 0, "select co.id as ID, cotypes.Description as Description, b.addressid, dbo.GetBaseAddressFullView(b.addressid) as Address, sdocs.Binaries as Attachment, sdocs.DocumentName as DocumentName from " &_ "ConsumingObjects co " &_ "left join Buildings b on b.BuildingID = co.BuildingID " &_ "left join ConsumingObjectTypes cotypes on cotypes.TypeID = co.TypeID " &_ "left join ConsumingObjectDocuments cdocs on cdocs.ConsumingObjectID = co.id " &_ "left join ConsumingObjectDocumentTypes cdt on cdt.DocumentTypeID=cdocs.DocumentTypeID " &_ "left join StoreDocuments sdocs on sdocs.DocumentID = cdocs.StoreDocumentID " &_ "where cdt.Description like 'Акт%при%мки%уч%та' " &_ "and ( " &_ " cotypes.description like 'ж.д.низкоэт%с непоср%' or cotypes.description like 'ж.д.многоэт%с непоср%' or " &_ " cotypes.description like 'ж.д.низкоэт%в управлении ТСЖ%' or cotypes.description like 'ж.д.многоэт%в управлении ТСЖ%' or " &_ " cotypes.description like 'ж.д. низкоэт%в управлении УК%' or cotypes.description like 'ж.д. многоэт%в управлении УК%' " &_ ")" ProcessQuery C, "Акт_разграничения_", 1, "select co.id as ID, cotypes.Description as Description, b.addressid, dbo.GetBaseAddressFullView(b.addressid) as Address, sdocs.Binaries as Attachment, sdocs.DocumentName as DocumentName from " &_ "ConsumingObjects co " &_ "left join Buildings b on b.BuildingID = co.BuildingID " &_ "left join ConsumingObjectTypes cotypes on cotypes.TypeID = co.TypeID " &_ "left join Delineations dels on co.DelineationID = dels.DelineationID " &_ "left join StoreDocuments sdocs on sdocs.DocumentID = dels.DelineationDocumentID " &_ "where " &_ " cotypes.description like 'ж.д.низкоэт%с непоср%' or cotypes.description like 'ж.д.многоэт%с непоср%' or " &_ " cotypes.description like 'ж.д.низкоэт%в управлении ТСЖ%' or cotypes.description like 'ж.д.многоэт%в управлении ТСЖ%' or " &_ " cotypes.description like 'ж.д. низкоэт%в управлении УК%' or cotypes.description like 'ж.д. многоэт%в управлении УК%'" ProcessQuery C, "Однолинейная_схема_", 2, "select co.id as ID, cotypes.Description as Description, b.addressid, dbo.GetBaseAddressFullView(b.addressid) as Address, sdocs.Binaries as Attachment, sdocs.DocumentName as DocumentName from " &_ "ConsumingObjects co " &_ "left join Buildings b on b.BuildingID = co.BuildingID " &_ "left join ConsumingObjectTypes cotypes on cotypes.TypeID = co.TypeID " &_ "left join StoreDocuments sdocs on sdocs.DocumentID = co.SingleLineDiagramID " &_ "where " &_ " cotypes.description like 'ж.д.низкоэт%с непоср%' or cotypes.description like 'ж.д.многоэт%с непоср%' or " &_ " cotypes.description like 'ж.д.низкоэт%в управлении ТСЖ%' or cotypes.description like 'ж.д.многоэт%в управлении ТСЖ%' or " &_ " cotypes.description like 'ж.д. низкоэт%в управлении УК%' or cotypes.description like 'ж.д. многоэт%в управлении УК%' " ProcessQuery C, "Приёмка_учёта_", 3, "select co.id as ID, cotypes.Description as Description, b.addressid, dbo.GetBaseAddressFullView(b.addressid) as Address, sdocs.Binaries as Attachment, sdocs.DocumentName as DocumentName from " &_ "ConsumingObjects co " &_ "left join Buildings b on b.BuildingID = co.BuildingID " &_ "left join ConsumingObjectTypes cotypes on cotypes.TypeID = co.TypeID " &_ "left join SealAccounts acc on acc.ConsumingObjectID = co.ID " &_ "left join StoreDocuments sdocs on sdocs.DocumentID = acc.AttachID " &_ "where " &_ " cotypes.description like 'ж.д.низкоэт%с непоср%' or cotypes.description like 'ж.д.многоэт%с непоср%' or " &_ " cotypes.description like 'ж.д.низкоэт%в управлении ТСЖ%' or cotypes.description like 'ж.д.многоэт%в управлении ТСЖ%' or " &_ " cotypes.description like 'ж.д. низкоэт%в управлении УК%' or cotypes.description like 'ж.д. многоэт%в управлении УК%'" Dim FSO, StatFile Set FSO = CreateObject("Scripting.FileSystemObject") If Not FSO.FileExists("stat.log") Then FSO.CreateTextFile("stat.log") End If Set StatFile = FSO.OpenTextFile("stat.log", 8, True) For Each c In Counters StatFile.WriteLine(c & Chr(9) & Counters(c)(0) & Chr(9) & Counters(c)(1) & Chr(9) & Counters(c)(2) & Chr(9) & Counters(c)(3)) Next StatFile.Close