AlexStud
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Имеется скрипт по подключению баз данных 1С, по мотивам статьи И. Коробко в журнале "Системный администратор" за март 2005 При деббаге ругается следующи образом: ERROR : error in USE statement! Script: X:\Script.KIX Line : 29 Помогите, плиз! Script.kix RUN "\\fileserver\Deport$\Checkcfg.exe" "+@USERID+" If @ERROR = 0 ? "Checking computer configuration..." Endif ;############################################################################### ; Модуль подключения баз 1С ;############################################################################### ;============================================ ; Начало подключения сетевого диска ;============================================ $FName="config.ini" $Section="1C" $1C_Letter_VaL = ReadProfileString($FName, $Section, "1C_Letter") ;чтение параметра 1C_Letter $1C_Path_Val = ReadProfileString($FName, $Section, "1C_Path") ; чтение параметра 1C_Path Use $1C_Letter_Val + ":" /delete /persistent ; отключение сетевого диска Use $1C_Letter_Val + ":" $1c_Path_Val ; подключение сетевого диска ;============================================ ; Конец подключения сетевого диска ;============================================ ; ;============================================ ; Начало фрагмента формирующего массив ; элементы которого включают в себя путь и ; название базы ;============================================ $meta = ReadProfileString($FName, $Section, "1C_Symbol") $1C_Letter_VaL = ReadProfileString($FName, $Section, "1C_Letter") Set rootDSE_ = GetObject("LDAP://RootDSE") d_def=rootDSE_.Get("defaultNamingContext") long_Ldap_name = "LDAP://" + d_def $p=0 $q=0 Dim $1C_Must[] DO $group=EnumGoup($p) If Instr($group, $meta)<>0 $1C_Group=Right($group,Len(group)-InstrRev($group,"\")-Len($meta)) ;вид переменной R:\Folder_with_Base $1C_Base=$1C_Letter_VaL+":\"+$1C_Group $strADSQuery = "SELECT description FROM 'LDAP://" + $long_Ldap_name + "' WHERE Name = "' + $1C_Group + "' and objectClass='group'" $objADOConn = createObject("ADODB.Connection") $objADOConn.Provider = "ADsDSOObject" $objADoConn.Open ("Active Directory Provider") $objADOCommand = CreateObject("ADODB.Command") $objADOCommand.ActiveConnection = $objADOConn $objADOCommand.CommandText = $strADSQuery $objQueryResultSet = $objADOCommand.Execute $1C_Group_Descr =$objQueryResultSet.Fields("description") ; переопределение размера динамического массива Redim Preserve $1C_Must[$q] $1C_Must[$q]= UCase($1C_Base)+$meta+$1C_Group_Descr $q=$q+1 End if $p=$p+1 UNTIL Len($group)=0 ;============================================ ; Конец фрагмента формирующего массив ; элементы которого включают в себя путь и ; название базы ;============================================ ; ;============================================ ; Формирование списка подключенных баз ;============================================ $1C_Registry_Val = ReadProfileString($FName, $Section, "1C_Registry") dim $1c_connected[] $m=0 $n=0 DO $1c_Title=EnumValue($1C_Registry_Val, $m) $1c_Name=ReadValue($1C_Registry_Val, $1c_Title) if Lcase(Left($1c_Title,1))=Lcase($1C_Letter_VaL) ReDim Preserve $1C_Connected[$n] $1C_Connected[$n]=Ucase($1c_Title)+$meta +$1c_Name $n=$n+1 endif $m = $m + 1 UNTIL Len($1c_Title) =0 ;============================================ ; Формирование списка подключенных баз ;============================================ ; ;============================================ ; Начало сопоставления сформированных ; списков баз ;============================================ ; удаление лишних баз for $dfg=0 to ubound($1c_Сonnected) $flag_p=0 $flag_p=AScan($1c_Must, $1c_Connected[$dfg]) if $flag_p=-1 $group=$1c_Connected[$dfg] DelValue ($1c_path, ї Left($Group,Instrrev($Group,$meta)-1)) endif next ; подключение недостающих баз for $dfg=0 to ubound($1c_must) $flag_p=0 $flag_p=Ascan($1c_connected,$1c_must[$dfg]) if $flag_p=-1 $group=$1c_must[$dfg] WriteValue ($1c_Path, Left($group, ї Instrrev($group,$meta)-1), Right($group,Len($group)-Instrrev($group, $meta) - Len($meta)+1),"REG_SZ") endif next ;============================================ ; Конец сопоставления сформированных ; списков баз ;============================================ Config.ini [1C] 1C_Letter=R 1C_Path=\\Fileserver\1CBases$ 1C_Prefix=”1C-” 1C_Symbol=”#” 1C_Registry=Software\1c\1cv7\7.7\Titles ;по умолчанию ветвь HKCU | Всего записей: 28 | Зарегистр. 07-12-2002 | Отправлено: 17:14 25-01-2007 | Исправлено: AlexStud, 17:23 25-01-2007 |
|