Есть скрипт:
Visual Basic | ||
|
При запуске ругается:
Строка:8
Символ:42
(это буква «L» после «(x86)»)
Ошибка:Предполагается наличие окончания инструкции
Если эту строчку скопировать и запустить в cmd под тем же пользователем, она без проблем отрабатывается.
Что ОНО хочет от меня?
Добавлено через 18 минут
Поправка!Строка:8
Символ:42
(это первый символ второго параметра: «C:Users%USERNAME%Lotus»)
I am trying to insert some records into MS Access Table with the help of below VB Script. But when am trying to execute it, it’s throwing Compilation error: Expected end of statement. Could someone please help me figure out where am I going wrong.
Private Sub Form_Click()
Dim dbs As DAO.Database
Dim DbFullNAme As String
DbFullName = "D:GDiamondFINAL MS-AccessMS-Access project.accdb"
Set dbs = OpenDatabase(DbFullName)
dbs.Execute "INSERT INTO [2014_Status] ( Prompt, Project_Name, STATUS,Release_Name )SELECT RoadMap.SPRF_CC, RoadMap.SPRF_Name, RoadMap.Project_Phase,RoadMap.Release_Name FROM RoadMap WHERE (((Exists (select 1 FROM [2014_Status] where RoadMap.SPRF_CC = [2014_Status].[Prompt]))=False));"
dbs.Close
End Sub
Pankaj Jaju
5,3412 gold badges25 silver badges41 bronze badges
asked Apr 23, 2014 at 17:14
6
VBScript (as opposed to VBA or other dialects) does not support typed Dims. So
Dim dbs As DAO.Database
Dim DbFullNAme As String
need to be
Dim dbs
Dim DbFullNAme
VBscript has no native OpenDatabase() function. You need to use ADO to connect to your Access ‘database’. First create a connection
Set dbs = CreateObject("ADODB.Connection")
Then determine the connection string and
dbs.Open cs
The rest of your code should work.
Update wrt comment:
The error message:
D:GDiamondFINAL MS-Accessquery1.vbs(2, 9) Microsoft VBScript compilation error: Expected end of statement
prooves that the OT tried to write a VBScript (the addition of the misleading vba/access tags is (C) Pankaj Jaju).
answered Apr 23, 2014 at 17:29
Ekkehard.HornerEkkehard.Horner
38.4k2 gold badges44 silver badges94 bronze badges
3
So lets break down the real reason why this code doesn’t work.
You copied and pasted Visual Basic for Applications(VBA) into a .VBS(Visual Basic Script) file and expected it to work, I assume.
The problem with this is that VBA and VBScript are slightly different languages. Review the info section for both tags on stackoverflow when you get the opportunity.
For now lets just patch your code and maintain your DAO object so you don’t have to reconstruct your Database usage with ADODB.
ExecuteInsert
Sub ExecuteInsert()
Dim dbs, DbFullName, acc
Set acc = createobject("Access.Application")
DbFullName = "D:GDiamondFINAL MS-AccessMS-Access project.accdb"
Set dbs = acc.DBEngine.OpenDatabase(DbFullName, False, False)
dbs.Execute "INSERT INTO [2014_Status] ( Prompt, Project_Name, STATUS,Release_Name )SELECT RoadMap.SPRF_CC, RoadMap.SPRF_Name, RoadMap.Project_Phase,RoadMap.Release_Name FROM RoadMap WHERE (((Exists (select 1 FROM [2014_Status] where RoadMap.SPRF_CC = [2014_Status].[Prompt]))=False));"
dbs.Close
msgbox "done"
End Sub
Changes made.
- Blocked your dim’d variables and removed
As ***
statements for vbscript compatibility - Set an access object so you could maintain the remainder of your code.
- Added the
acc.DBEngine.
beforeOpenDatabase
with additional parameters. - Renamed your Sub from
Form_Click
to ExecuteInsert, then placedExecuteInsert
at the top of the code so that the vbscript activates the sub. If you just place a sub in a vbscript file, it will not necessarily run, you have to activate it directly.
This code is tested and functions. Best of luck to you.
answered Apr 23, 2014 at 19:20
RichRich
4,1043 gold badges26 silver badges44 bronze badges
1
Adding to Ekkehard.Horner
http://www.csidata.com/custserv/onlinehelp/vbsdocs/vbs6.htm
VBScript has only one data type called a Variant. A Variant is a
special kind of data type that can contain different kinds of
information, depending on how it’s used. Because Variant is the only
data type in VBScript, it’s also the data type returned by all
functions in VBScript.
answered Apr 23, 2014 at 17:32
0
- Remove From My Forums
-
Question
-
Доброго времени суток.
В организации на 250+ машинах сетевые параметры адаптеров установлены статикой (sic), необходимо заставить брать их по DHCP. Нашел пару скриптов, наиболее подходящим показался VBS (с которым я совершенно не знаком), т.к.
другой предполагает указание имени сетевого подключения (например, «Подключение по локальной сети»). Сам скрипт:
WMIC Path Win32_NetworkAdapterConfiguration Where «IPEnabled = True» Call SetDNSServerSearchOrderWMIC Path Win32_NetworkAdapterConfiguration Where «IPEnabled = True» Call EnableDHCP
выдает: предполагается наличие окончания инструкции. строка1, символ 11.
пробовал использовать bat такого вида:
netsh interface ip set address name=»Подключение по локальной сети» source=dhcp
netsh interface ip set dnsservers name=»Подключение по локальной сети» source=dhcp
ощутил проблемы с кодировкой, 1 раз он отработал, хотя отписал козябру, НО я не могу понять как, т.к. повторить я этого не могу, пробовал 1251, 866, 869 — без толку.
Подскажите что-нибудь пожалуйста.
- Edited by
Friday, September 19, 2014 8:19 AM
- Edited by
Answers
-
Как я уже говорил с vbs не сталкивался, решение предложенное в той теме Aleksey.T
выдает: строка 1, символ 1, несоответствие типа ‘Code’, код: 800A000D
НО оказывается якобы vbs скрипт который я привел использует обычные команды wmic.exe, которые можно использовать в пакетном файле и это работает. Тема закрыта.
- Marked as answer by
Копылов Анатолий
Friday, September 19, 2014 8:47 AM
- Marked as answer by
- Remove From My Forums
-
Question
-
Доброго времени суток.
В организации на 250+ машинах сетевые параметры адаптеров установлены статикой (sic), необходимо заставить брать их по DHCP. Нашел пару скриптов, наиболее подходящим показался VBS (с которым я совершенно не знаком), т.к.
другой предполагает указание имени сетевого подключения (например, «Подключение по локальной сети»). Сам скрипт:
WMIC Path Win32_NetworkAdapterConfiguration Where «IPEnabled = True» Call SetDNSServerSearchOrderWMIC Path Win32_NetworkAdapterConfiguration Where «IPEnabled = True» Call EnableDHCP
выдает: предполагается наличие окончания инструкции. строка1, символ 11.
пробовал использовать bat такого вида:
netsh interface ip set address name=»Подключение по локальной сети» source=dhcp
netsh interface ip set dnsservers name=»Подключение по локальной сети» source=dhcp
ощутил проблемы с кодировкой, 1 раз он отработал, хотя отписал козябру, НО я не могу понять как, т.к. повторить я этого не могу, пробовал 1251, 866, 869 — без толку.
Подскажите что-нибудь пожалуйста.
- Edited by
Friday, September 19, 2014 8:19 AM
- Edited by
Answers
-
Как я уже говорил с vbs не сталкивался, решение предложенное в той теме Aleksey.T
выдает: строка 1, символ 1, несоответствие типа ‘Code’, код: 800A000D
НО оказывается якобы vbs скрипт который я привел использует обычные команды wmic.exe, которые можно использовать в пакетном файле и это работает. Тема закрыта.
- Marked as answer by
Копылов Анатолий
Friday, September 19, 2014 8:47 AM
- Marked as answer by
- Remove From My Forums
-
Вопрос
-
Вот текст скрипта:
Const ADS_PROPERTY_DELETE = 4
Const E_ADS_PROPERTY_NOT_FOUND = &h8000500DstrOU = «OU=Test,OU=Users,DC=name,DC=ru»
Set objConnection = CreateObject(«ADODB.Connection»)
objConnection.Open «Provider=ADsDSOObject;»
Set objCommand = CreateObject(«ADODB.Command»)
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
«<LDAP://dc=name,dc=ru>;(objectCategory=Group);» & _«distinguishedName,primaryGroupToken;subtree»
Set objRecordSet = objCommand.Execute
objCommand.CommandText = _
«<LDAP://» & strOU & «>;» & _
«(&(objectclass=user)(objectcategory=person));» & _
«adspath,distinguishedname,sAMAccountName;subtree»
Set objRecordSet = objCommand.Executedim arrUsers()
dim intUserCount
intUserCount = -1Do Until objRecordSet.EOF
intUserCount = intUserCount + 1
ReDim Preserve arrUsers(intUserCount)
arrUsers(intUserCount) = «LDAP://DC1:389/» & objRecordSet.Fields(«distinguishedname»).Value
objRecordSet.MoveNextLoop
for i = 0 to UBound(arrUsers)
WScript.Echo «arrUsers(» & i & «) = » & arrUsers(i)
WScript.EchoSet objUser = GetObject(arrUsers(i))
arrMemberOf = objUser.GetEx(«memberOf»)
‘ WScript.Echo arrMemberOf
If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then
WScript.Echo «The memberOf attribute is not set.»Else
For Each Group in arrMemberOf Set objGroup = GetObject(Group)_
objGroup.PutEx ADS_PROPERTY_DELETE, _
«member», arrUsers (i)
objGroup.SetInfo
Next
End If
nextПри запуске скрипта появляется Ошибка компиляции Microsoft VBScript: Предполагается наличие окончания инструкции
в строке For Each Group in arrMemberOf Set objGroup = GetObject(Group)_
Подскажите пожалуйста в чем моя ошибка?
Ответы
-
Вот финальный поправленный скрипт. Проверенно работает.
On Error Resume Next
Const ADS_PROPERTY_DELETE = 4
strOU = «OU=Test,OU=Users,OU=FMS,DC=noname,DC=com»
Set objConnection = CreateObject(«ADODB.Connection»)
objConnection.Open «Provider=ADsDSOObject;»
Set objCommand = CreateObject(«ADODB.Command»)
objCommand.ActiveConnection = objConnectionobjCommand.CommandText = _
«<LDAP://» & strOU & «>;» & _
«(&(objectclass=user)(objectcategory=person));» & _
«adspath,distinguishedname,sAMAccountName;subtree»
Set objRecordSet = objCommand.Executedim arrUsers()
dim intUserCount
intUserCount = -1Do Until objRecordSet.EOF
intUserCount = intUserCount + 1
ReDim Preserve arrUsers(intUserCount)
arrUsers(intUserCount) = objRecordSet.Fields(«distinguishedname»).Value
objRecordSet.MoveNextLoop
for i = 0 to UBound(arrUsers)
‘ WScript.Echo «arrUsers(» & i & «) = » & arrUsers(i)
WScript.Echo
‘»LDAP://» &
strLDAPUser = «LDAP://» & arrUsers(i)Set objUser = GetObject(strLDAPUser) ‘ <================================================
ErrNumber1 = Err.Number
ErrDescription1 = Err.DescriptionarrMemberOf = objUser.GetEx(«memberOf») ‘ <================================================
ErrNumber0 = Err.Number
ErrDescription0 = Err.Descriptionif ErrNumber0 = -2147463155 then
WScript.Echo «strLDAPUser = » & strLDAPUser
WScript.Echo «The memberOf attribute is not set.»
else
If not ErrNumber1 = 0 Then
WScript.Echo «strLDAPUser = » & strLDAPUser
WScript.Echo «Err.Number1 = » & ErrNumber1
WScript.Echo «Err.Description1 = » & ErrDescription1elseif ErrNumber1 = 0 then
For Each Group in arrMemberOf
strLDAP = «LDAP://» & Group
Set objGroup = GetObject(strLDAP) ‘ <================================================
ErrNumber2 = Err.Number
ErrDescription2 = Err.Descriptionif not ErrNumber2 = 0 then
WScript.Echo «strLDAPUser = » & strLDAPUser
WScript.Echo «Err.Number2 = » & ErrNumber2WScript.Echo «Err.Description2 = » & ErrDescription2
WScript.Echo «strLDAP = » & strLDAP
else
objGroup.PutEx ADS_PROPERTY_DELETE, «member», Array(arrUsers(i))objGroup.SetInfo ‘ <================================================
ErrNumber3 = Err.Number
ErrDescription3 = Err.Description
if not ErrNumber3 = 0 then
WScript.Echo «strLDAPUser = » & strLDAPUser
WScript.Echo «Err.Number3 = » & ErrNumber3WScript.Echo «Err.Description3 = » & ErrDescription3
else
‘
end if
end if
Next
Else
WScript.Echo «strLDAPUser = » & strLDAPUser
WScript.Echo «Err.Number1 = » & ErrNumber1
WScript.Echo «Err.Description1 = » & ErrDescription1
End If
end if
nextobjRecordSet.Close
Set objRecordSet = Nothing
Set objCommand = Nothing
objConnection.Close
Set objConnection = Nothing
WScript.quit- Помечено в качестве ответа
29 сентября 2011 г. 12:32
- Помечено в качестве ответа
Товарищи помогите кто знает советом решить следующую проблему.
Попытался в 1с использовать MSScriptControl, следующим образом:
Script=Новый COMОбъект(«MSScriptControl.ScriptControl»);
Script.Language=»vbscript»;
СтрокаСкрипта=»Private Declare Function URLDownloadToFile Lib «»urlmon.dll»» Alias «»URLDownloadToFileA»» (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
|Sub GetFile
|Dim ret As Long
|ret = URLDownloadToFile(0, «»http://www.mail.ru»», «»c:1.html»», 0, 0)
|End Sub»;
Script.AddCode(СтрокаСкрипта);
При выполнении последнего оператора выдается ошибка:
{Форма.Форма(93)}: Ошибка при вызове метода контекста (AddCode): Произошла исключительная ситуация (Ошибка компиляции Microsoft VBScript): Предполагается наличие окончания инструкции
Script.AddCode(СтрокаСкрипта);
по причине:
Произошла исключительная ситуация (Ошибка компиляции Microsoft VBScript): Предполагается наличие окончания инструкции.
Этот же код написанный в екселе в качестве макроса прекрасно работает. Я так понимаю проблема в том, что я пытаюсь определить функцию URLDownloadToFile из библиотеки «urlmon.dll».
Не подскажите как правильно написать чтобы заработало?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
1 2018-03-21 00:46:44
- badhabit
- Участник
- Неактивен
- Рейтинг : [0|0]
Тема: VBS: не получается сделать массив структур с массивом )
Добрый день. Не знаю правильно ли я использовал терминологию в заголовке, все ж С/С++ ближе… Но есть потребность сделать динамический массив структур, в свою очередь каждая из которых тоже содержит «мембером» динамический массив… Попробовал вот так:
Option Explicit
Main
Function Main
Dim arr(), i
For i = 0 To 10
ReDim Preserve arr(i)
Set arr(i) = New struct
arr(i).sVar1 = "str" & i & " var1"
arr(i).sVar2 = "str" & i & " var2"
Dim j
For j = 0 To 10
ReDim Preserve arr(i).aArr(j)
arr(i).aArr(j) = 121212 + j
Next
Next
For i = 0 To UBound(arr)
WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
Next
End Function
Class struct
Public aArr()
Public sVar1
Public svar2
End Class
На строке
ReDim Preserve arr(i).aArr(j)
валится с ошибкой:
Ошибка компиляции Microsoft VBScript: Предполагается наличие окончания инструкции
Подскажите, что делаю не так…
2 Ответ от Xameleon 2018-03-21 14:37:31
- Xameleon
- Разработчик
- Неактивен
Re: VBS: не получается сделать массив структур с массивом )
badhabit, а можно увидеть скрипт целиком ? А то объявления struct не видно.
На первый взгляд, как я понимаю, беда в том, что Вы пытаетесь «редимить» свойство объекта. К сожалению, VBScript хочет после Redim получить прямую ссылку на массив. Думаю в Вашем случае может помочь что-то типа:
Option Explicit
Main
Function Main
Dim arr(), i, propArray
For i = 0 To 10
ReDim Preserve arr(i)
Set arr(i) = New struct
arr(i).sVar1 = "str" & i & " var1"
arr(i).sVar2 = "str" & i & " var2"
Dim j
propArray = arr(i).aArr
For j = 0 To 10
ReDim Preserve propArray(j)
propArray(j) = 121212 + j
Next
arr(i).aArr = propArray
Next
For i = 0 To UBound(arr)
WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
Next
End Function
Не уверен, что Вы выбрали правильный путь. Думаю всё-таки стоит взглянуть на всю картину целиком.
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !
3 Ответ от badhabit 2018-03-21 16:28:20 (изменено: badhabit, 2018-03-21 19:29:16)
- badhabit
- Участник
- Неактивен
- Рейтинг : [0|0]
Re: VBS: не получается сделать массив структур с массивом )
Xameleon, так я привёл весь скрипт, просто проскролить надо, в самом низу есть объявление класса struct
Пс. Ваш способ попробую
4 Ответ от badhabit 2018-03-21 20:32:29
- badhabit
- Участник
- Неактивен
- Рейтинг : [0|0]
Re: VBS: не получается сделать массив структур с массивом )
Option Explicit
Main
Function Main
Dim arr(), i, propArray
For i = 0 To 10
ReDim Preserve arr(i)
Set arr(i) = New struct
arr(i).sVar1 = "str" & i & " var1"
arr(i).sVar2 = "str" & i & " var2"
Dim j
propArray = arr(i).aArr
For j = 0 To 10
ReDim Preserve propArray(j)
propArray(j) = 121212 + j
Next
arr(i).aArr = propArray
Next
Dim k
For i = 0 To UBound(arr)
WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
Dim zzz()
zzz = arr(i).aArr
For k = 0 To UBound(zzz) - 1
WScript.Echo zzz(k)
Next
Next
End Function
Class struct
Public aArr()
Public sVar1
Public svar2
End Class
теперь ругается тут
говрит
несоответствие типа
5 Ответ от Xameleon 2018-03-22 13:37:20
- Xameleon
- Разработчик
- Неактивен
Re: VBS: не получается сделать массив структур с массивом )
badhabit,
badhabit пишет:
Xameleon, так я привёл весь скрипт, просто проскролить надо, в самом низу есть объявление класса struct
Прошу прощения. Не заметил.
Тогда вот так можно сделать:
Option Explicit
Main
Function Main
Dim arr(), i, propArray
For i = 0 To 10
ReDim Preserve arr(i)
Set arr(i) = New struct
arr(i).sVar1 = "str" & i & " var1"
arr(i).sVar2 = "str" & i & " var2"
Dim j
propArray = arr(i).aArr
For j = 0 To 10
ReDim Preserve propArray(j)
propArray(j) = 121212 + j
Next
arr(i).aArr = propArray
Next
Dim k
For i = 0 To UBound(arr)
WScript.Echo "i: " & i & " var1: " & arr(i).sVar1 & " var2: " & arr(i).sVar2
Dim zzz
zzz = arr(i).aArr
For k = 0 To UBound(zzz) - 1
WScript.Echo zzz(k)
Next
Next
End Function
Class struct
Public aArr
Public sVar1
Public svar2
Private Sub Class_Initialize()
aArr = Array()
End Sub
End Class
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !
6 Ответ от badhabit 2018-03-25 11:45:39
- badhabit
- Участник
- Неактивен
- Рейтинг : [0|0]
Re: VBS: не получается сделать массив структур с массивом )
Xameleon, спасибо большое. Все заработало. Вот ещё ссылка по теме https://stackoverflow.com/questions/480 … n-vbscript
7 Ответ от Xameleon 2018-03-25 16:19:00
- Xameleon
- Разработчик
- Неактивен
Re: VBS: не получается сделать массив структур с массивом )
badhabit, рад, что пригодилось. Вообще, ИМХО, VBS классы больше подразумеваются под объектную модель, нежели под структуры. Возможно Вашу задачу можно решить иначе. Если поведаете о конечной цели, возможно смогу посоветовать что-то более подходящее.
Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !
8 Ответ от badhabit 2018-03-25 17:35:12
- badhabit
- Участник
- Неактивен
- Рейтинг : [0|0]
Re: VBS: не получается сделать массив структур с массивом )
Да в принципе надо было получить то — что получилось, без разницы как это называть.)) Получился динамический массив «объектов» и в каждом еще по одному динамическому массиву… Добавив в «структуру» конструктор и метод, в принципе получил класс))
Просто писать на vbs самый, в настоящий момент, удобный вариант, а синтаксис я его не шибко хорошо знаю, так что еще раз спасибо за помощь!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
eremeev23rus Пользователь Сообщений: 24 |
#1 15.09.2015 11:10:40 Добрый день.
|
||
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
eremeev23rus, здравия. Можно в ВБА написать этот макрос, отладить и после перенести в ВБС. <#0> |
JayBhagavan, Спасибо, а данный макрос необходимо преобразовывать? |
|
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
eremeev23rus, а Вы попробуйте его так в ВБА запустить и узнаете. <#0> |
eremeev23rus Пользователь Сообщений: 24 |
#5 15.09.2015 11:29:20 JayBhagavan,
Подскажите, пожалуйста, что не так я сформировал? |
||
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
eremeev23rus, что не так я сходу не скажу. (у меня нет Вашего файла, с которым работает макрос) А что Вас не устраивает или на чём ошибка возникает, если она есть? <#0> |
JayBhagavan, при выполнении отображается ошибка: Предполагается наличие окончания инструкции, Код: 800A0401, ошибка компиляции. |
|
Влад Пользователь Сообщений: 1189 |
Нет в ВБС такие понятий как «Sheets» и «Cells» — это объекты книги/листа, поэтому должна быть указана полная ссылка на них. |
Влад, а можно пример? Для лучшего понимания. |
|
Влад Пользователь Сообщений: 1189 |
#10 15.09.2015 12:04:12 Пример:
|
||
Не удается сделать описаным методом. Может можно сделать, чтобы нажималась кнопка на листе в Excel? |
|
Hugo Пользователь Сообщений: 23101 |
Rows.Count возможно тоже непонятно для vbs. Изменено: Hugo — 15.09.2015 13:38:29 |
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#13 15.09.2015 13:43:25
Изменено: JayBhagavan — 15.09.2015 14:09:42 <#0> |
|
Hugo Пользователь Сообщений: 23101 |
Ну и для vbs первой строкой нужно написать |
Hugo Пользователь Сообщений: 23101 |
Нашёл ещё нестыковку — в vbs нельзя писать |
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#16 15.09.2015 13:55:51
Исправил.
То есть нужно убрать Sub, () и End Sub? <#0> |
||||
Hugo Пользователь Сообщений: 23101 |
Ещё — xlUp нужно заменить на -4162 |
Hugo Пользователь Сообщений: 23101 |
#18 15.09.2015 14:00:43
Да, или первой строкой вызывать этот sub |
||
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#19 15.09.2015 14:10:23 Hugo, благодарю за Ваши замечая. Вроде все учёл. <#0> |
Решил изучить платформу Nanocad.
Создал файл .VBS и вставил туда код из файла api/ncX_app.chm
Dim nc As New nanoCAD.Application nc.Utility.Prompt ("Hello CAD!")Nanocad выдал ошибку:
Script file path или [./]: C:UsersAmk_2Desktopexample.vbserr: "Ошибка компиляции Microsoft VBScript" raised an exception "Предполагается наличие окончания инструкции" at line 1 pos 7 Dim nc As New nanoCAD.Application ^
Насколько я помню, VBS является безтиповым языком. Точнее не требует объявления типов.
Поэтому ругается на явное объявление
Dim nc As New nanoCAD.Application
Один из вариантов реализации вашего кода с помощью метода CreateObject
Dim nc Set nc = CreateObject("nanoCAD.Application") nc.Utility.Prompt ("Hello CAD!")
Изменено 8 июня, 2011 пользователем shteyn
Troubleshooting Code 800A0401 – Expected End of Statement
Good news, here is another example of a WSH error message with a helpful Char: number. Count along the line until you get to the offending character. With Error 800A0401 start by looking for missing ampersands (&).
Introduction to Code 800A0401
Error code, 800A0401 occurs when you execute a VBScript. This is a compilation error, therefore check your punctuation. A wild guess, you have left out an ampersand (&), or possibly a comma.
The Symptoms You Get
The script does not execute as you had hoped. Instead, Windows Scripting host generates a message box like this picture: Good news, I have three examples of code: 800A0401.
The Cause of Code 800A0401 VBScript Error
Your VBScript contains a punctuation error. Note: The clue from Source: Microsoft VBScript compilation error, this means a syntax error in your script. In this case the Char: number (33) is particularly valuable in troubleshooting.
The Solution to Error: Expected end of statement
Check the syntax of your script, in particular double-check punctuation marks (&, comma, speech marks or full stop.). In this instance, Windows Scripting Host has detected a mix-up between a comma and a full stop. As ever, a line number is helpful when troubleshooting, moreover, any Char : number other than 1, will pin-point the problem.
‡
Example 1 of Script for Code 800A0401
Note: The error is at Line 3, Character 33 – wbemServices, Instances
It should be wbemServices.Instances (Full stop, and not a comma)
‘ VBScript Error 800A0401
strComputer = «Alan»
set wbemservices = GetObject(«Winmgmts:\» & strComputer)
set wbemObjectSet = wbemServices, InstancesOf («win32_LogicalMemoryConfiguration»)
For each wbemobject in wbemobjectset
WScript.echo «Tot Physical Memory » & wbemobject.totalPhysicalMemory
Next
Guy Recommends: A Free Trial of the Network Performance Monitor (NPM)
v11.5
SolarWinds’ Orion performance monitor will help you discover what’s happening on your network. This utility will also guide you through troubleshooting; the dashboard will indicate whether the root cause is a broken link, faulty equipment or resource overload.
What I like best is the way NPM suggests solutions to network problems. Its also has the ability to monitor the health of individual VMware virtual machines. If you are interested in troubleshooting, and creating network maps, then I recommend that you try NPM now.
Download a free trial of Solarwinds’ Network Performance Monitor
Example 2 of Script for Error 800A0401
Problem
Wscript.Echo objNetwork.UserName » at » & objNetwork.ComputerName
An & (ampersand) is missing it should be:
Correction
Wscript.Echo objNetwork.UserName & » at » & objNetwork.ComputerName
‘ VBScript 800A0401 Error
Set ObjNetwork = CreateObject(«Wscript.Network»)
Wscript.Echo objNetwork.UserName » at » & objNetwork.ComputerName
[ThemesGuy/google_leader728htm]
Example 3 – Missing Comma
The error is on line 10 char 33, it needs a comma between the drive letter and the UNC path
objNetwork.MapNetworkDrive «R:» «\alanbackup»
objNetwork.MapNetworkDrive «R:» , «\alanbackup»
‘ BudgetPear.vbs
‘ Script to map the Budget share on the server pear
‘ Version 1.1 August 2010
‘ Guy Thomas https://computerperformance.co.uk
Option Explicit
Dim objNetwork
Set objNetwork = CreateObject(«Wscript.Network»)
objNetwork.MapNetworkDrive «R:» «\alanbackup»
WSript.echo » Share Mapped «
WScript.Quit
‘ End of Guy’s script
Summary of Error Code 800A0401
As usual with 0800 error codes, check the line number and the char number. Pay careful attention to any punctuation. Is there a comma, missing? Could there be a comma, where the script needs a full stop?
See More Windows Update Error Codes 8004 Series
• Error 800A101A8 Object Required •Error 800A0046 •Error 800A10AD •Error 800A000D
• Error 80048820 •Error 800A0401 •Review of SolarWinds Permissions Monitor
• Error 80040E14 • Error 800A03EA • Error 800A0408 • Error 800A03EE
v11.5
SolarWinds’ Orion performance monitor will help you discover what’s happening on your network. This utility will also guide you through troubleshooting; the dashboard will indicate whether the root cause is a broken link, faulty equipment or resource overload.
What I like best is the way NPM suggests solutions to network problems. Its also has the ability to monitor the health of individual VMware virtual machines. If you are interested in troubleshooting, and creating network maps, then I recommend that you try NPM now.
Download a free trial of Solarwinds’ Network Performance Monitor
Example 2 of Script for Error 800A0401
Problem
Wscript.Echo objNetwork.UserName » at » & objNetwork.ComputerName
An & (ampersand) is missing it should be:
Correction
Wscript.Echo objNetwork.UserName & » at » & objNetwork.ComputerName
‘ VBScript 800A0401 Error
Set ObjNetwork = CreateObject(«Wscript.Network»)
Wscript.Echo objNetwork.UserName » at » & objNetwork.ComputerName
[ThemesGuy/google_leader728htm]
Example 3 – Missing Comma
The error is on line 10 char 33, it needs a comma between the drive letter and the UNC path
objNetwork.MapNetworkDrive «R:» «\alanbackup»
objNetwork.MapNetworkDrive «R:» , «\alanbackup»
‘ BudgetPear.vbs
‘ Script to map the Budget share on the server pear
‘ Version 1.1 August 2010
‘ Guy Thomas https://computerperformance.co.uk
Option Explicit
Dim objNetwork
Set objNetwork = CreateObject(«Wscript.Network»)
objNetwork.MapNetworkDrive «R:» «\alanbackup»
WSript.echo » Share Mapped «
WScript.Quit
‘ End of Guy’s script
Summary of Error Code 800A0401
As usual with 0800 error codes, check the line number and the char number. Pay careful attention to any punctuation. Is there a comma, missing? Could there be a comma, where the script needs a full stop?
See More Windows Update Error Codes 8004 Series
• Error 800A101A8 Object Required •Error 800A0046 •Error 800A10AD •Error 800A000D
• Error 80048820 •Error 800A0401 •Review of SolarWinds Permissions Monitor
• Error 80040E14 • Error 800A03EA • Error 800A0408 • Error 800A03EE
Guy Recommends: WMI Monitor and It’s Free!
Windows Management Instrumentation (WMI) is one of the hidden treasures of Microsoft operating systems. Fortunately, SolarWinds have created the WMI Monitor so that you can examine these gems of performance information for free. Take the guess work out of which WMI counters to use for applications like Microsoft Active Directory, SQL or Exchange Server.
Download your free copy of WMI Monitor
Do you need additional help?
- For interpreting the WSH messages check Diagnose 800 errors.
- For general advice try my 7 Troubleshooting techniques.
- See master list of 0800 errors.
- Codes beginning 08004…
- Codes beginning 08005…
- Codes beginning 08007…
- Codes beginning 0800A…
Give something back?
Would you like to help others? If you have a good example of this error, then please email me, I will publish it with a credit to you:
If you like this page then please share it with your friends
- Remove From My Forums
-
Вопрос
-
Доброго времени суток.
В организации на 250+ машинах сетевые параметры адаптеров установлены статикой (sic), необходимо заставить брать их по DHCP. Нашел пару скриптов, наиболее подходящим показался VBS (с которым я совершенно не знаком), т.к.
другой предполагает указание имени сетевого подключения (например, «Подключение по локальной сети»). Сам скрипт:
WMIC Path Win32_NetworkAdapterConfiguration Where «IPEnabled = True» Call SetDNSServerSearchOrderWMIC Path Win32_NetworkAdapterConfiguration Where «IPEnabled = True» Call EnableDHCP
выдает: предполагается наличие окончания инструкции. строка1, символ 11.
пробовал использовать bat такого вида:
netsh interface ip set address name=»Подключение по локальной сети» source=dhcp
netsh interface ip set dnsservers name=»Подключение по локальной сети» source=dhcp
ощутил проблемы с кодировкой, 1 раз он отработал, хотя отписал козябру, НО я не могу понять как, т.к. повторить я этого не могу, пробовал 1251, 866, 869 — без толку.
Подскажите что-нибудь пожалуйста.
-
Изменено
19 сентября 2014 г. 8:19
-
Изменено
Ответы
-
Как я уже говорил с vbs не сталкивался, решение предложенное в той теме Aleksey.T
выдает: строка 1, символ 1, несоответствие типа ‘Code’, код: 800A000D
НО оказывается якобы vbs скрипт который я привел использует обычные команды wmic.exe, которые можно использовать в пакетном файле и это работает. Тема закрыта.
-
Помечено в качестве ответа
Копылов Анатолий
19 сентября 2014 г. 8:47
-
Помечено в качестве ответа
Устраняем ошибку Windows Script Host
Исправляем ошибку Windows Script Host
Сразу стоит сказать о том, что если вы писали свой скрипт и при его запуске получили ошибку, то необходимо искать проблемы в коде, а не в системном компоненте. Например, вот такое диалоговое окно говорит именно об этом:
Такая же ситуация может возникнуть и в том случае, когда в коде имеется ссылка на другой скрипт, путь к которому прописан неверно либо данный файл вовсе отсутствует на компьютере.
Далее мы поговорим о тех моментах, когда при старте Windows или запуске программ, например, Блокнота или Калькулятора, а также других приложений, использующих системные ресурсы, появляется стандартная ошибка Windows Script Host. Иногда подобных окон может появиться сразу несколько. Случается такое после обновления операционной системы, которое может пройти как в штатном режиме, так и со сбоями.
Причины такого поведения ОС следующие:
- Неверно выставленное системное время.
- Сбой в работе службы обновлений.
- Некорректная установка очередного апдейта.
- Нелицензионная сборка «винды».
Вариант 1: Системное время
Многие пользователи думают, что системное время, которое показывается в области уведомлений, существует только для удобства. Это не совсем так. Некоторые программы, обращающиеся к серверам разработчиков или к иным ресурсам, могут работать некорректно или вовсе отказаться функционировать по причине расхождений в дате и времени. Это же касается и Windows с ее серверами обновления. В том случае, если будет расхождение в вашем системном времени и времени сервера, то могут наблюдаться неполадки с апдейтами, поэтому на это стоит обратить внимание в первую очередь.
- Нажимаем на часы в правом нижнем углу экрана и переходим по ссылке, указанной на скриншоте.
Далее идем на вкладку «Время по интернету» и жмем на кнопку изменения параметров. Обратите внимание, что ваша учетная запись должна обладать правами администратора.
В окне настроек устанавливаем галку в указанный на изображении чекбокс, затем в выпадающем списке «Сервер» выбираем time.windows.com и нажимаем «Обновить сейчас».
Если все пройдет успешно, то появится соответствующая надпись. В случае ошибки с превышением времени ожидания просто нажимаем кнопку обновления еще раз.
Теперь ваше системное время будет регулярно синхронизироваться с сервером времени Майкрософт и расхождения не будет.
Вариант 2: Служба обновлений
Windows – это очень сложная система, с множеством одновременно протекающих процессов, и некоторые из них могут повлиять на работу службы, отвечающей за обновление. Высокое потребление ресурсов, различные сбои и занятость компонентов, помогающих апдейту, «заставляют» службу совершать бесконечные попытки выполнить свою работу. Сам сервис также может сбоить. Выход здесь один: отключить его, а затем перезагрузить компьютер.
- Вызываем строку «Выполнить» сочетанием клавиш Win+R и в поле с названием «Открыть» пишем команду, которая позволит получить доступ к соответствующей оснастке.
В списке находим «Центр обновления», кликаем ПКМ и выбираем пункт «Свойства».
В открывшемся окне жмем кнопку «Остановить», а затем ОК.
После перезагрузки служба должна запуститься автоматически. Стоит проверить, так ли это и, если она все еще остановлена, включить ее тем же способом.
Если после выполненных действий ошибки продолжают появляться, то необходимо поработать с уже установленными обновлениями.
Вариант 3: Некорректно установленные обновления
Данный вариант подразумевает удаление тех обновлений, после установки которых начались сбои в Windows Script Host. Сделать это можно как вручную, так и с помощью утилиты восстановления системы. В обоих случаях необходимо вспомнить, когда «посыпались» ошибки, то есть после какой даты.
- Идем в «Панель управления» и находим апплет с названием «Программы и компоненты».
Далее переходим по ссылке, отвечающей за просмотр обновлений.
Сортируем список по дате установки, кликнув по шапке последней колонки с надписью «Установлено».
Выбираем нужное обновление, кликаем ПКМ и выбираем «Удалить». Также поступаем с остальными позициями, помня про дату.
- Для перехода к данной утилите кликаем правой кнопкой мыши по значку компьютера на рабочем столе и выбираем пункт «Свойства».
Далее переходим к «Защите системы».
Нажимаем кнопку «Восстановление».
В открывшемся окне утилиты жмем «Далее».
Ставим галку, отвечающую за показ дополнительных точек восстановления. Необходимые нам поинты будут называться «Автоматически созданная точка», тип – «Система». Из них необходимо выбрать ту, которая соответствует дате последнего обновления (или того, после которого начались сбои).
Жмем «Далее», ждем, пока система предложит перезагрузиться и выполнит действия по «откату» к предыдущему состоянию.
Обратите внимание, что в этом случае могут быть удалены и те программы и драйвера, которые были установлены вами после этой даты. Узнать, произойдет ли это, можно нажав кнопку «Поиск затрагиваемых программ».
Читайте также: Как восстановить систему Windows XP, Windows 8, Windows 10
Вариант 4: Нелицензионная Windows
Пиратские сборки «винды» хороши лишь тем, что они совершенно бесплатны. В остальном же такие дистрибутивы могут принести массу проблем, в частности, некорректную работу необходимых компонентов. В этом случае рекомендации, приведенные выше, могут не сработать, так как файлы в скачанном образе уже были сбойными. Здесь можно только посоветовать поискать другой дистрибутив, но лучше воспользоваться лицензионной копией Windows.
Заключение
Решения проблемы с Windows Script Host довольно просты, и с ними справится даже начинающий пользователь. Причина здесь ровно одна: некорректная работа инструмента обновления системы. В случае с пиратскими дистрибутивами можно дать следующий совет: пользуйтесь только лицензионными продуктами. И да, правильно пишите ваши скрипты.
Источник
Dadaviz
Ошибка Windows Script Host — как исправить
Системная ошибка «Windows Script Host» очень знакома пользователям Windows 7/8/10. Ее возникновение чаще всего сопровождается разными официальными обновлениями от компании Microsoft. Еще недавно все работало как надо, а тут вдруг при запуске приложений может происходить сбой или при загрузке Windows выскакивает черный экран и уведомлением об ошибке — «Не удается найти файл сценария» (run.vbs, launchall.js). Иногда с такой проблемой сталкиваются при установке Windows, что характерно она проявляется на официальных версиях от Microsoft тоже.
Ошибка 80070002 — Не удается найти указанный файл
Что это за ошибка?
К счастью для пользователей, данный конфликт сценариев вполне объясним, и связывается он с неправильными интегрированными установочными файлами. По разным причинам весь софт не смог полностью выгрузится в операционную систему. Тут виной являются обновления и установочный диск Windows, пиратская сборка. К дополнительным источникам проблемы нужно отнести: антивирусы, любые сторонние утилиты по оптимизации системы, пользовательские действия на системном диске и другие.
По не официальным данным Windows Script Host может создавать до нескольких сотен подобных ошибок, самые распространенные из которых: 80070002, 80070003 или 80070483. Решения у них бывают практически одинаковые, во многих случаях понадобится не более 5 минут для их реализации и исправления конфликтной ситуации.
Исправляем Windows Script Host (Код 80070002)
Далее мы приведем несколько методов, которые избавят вас от данного сбоя. Эти методы проверенны и одобрены многими юзерами, а также предлагаются как оптимальные на официальном форуме поддержки Microsoft.
Остановка служб обновления
Иногда процесс обновления ОС происходит не совсем корректно. Это бывает связанно с загруженностью системы, сбоях интернета и т.д. Решениями становятся не сложные манипуляции, которые сможет сделать абсолютно любой пользователь. Выполним остановку центра обновлений.
- Перейдите в меню «Пункт» и посетите «Панель управления».
- Найдите подменю «Администрирование».
- Увидите список операций, кликните по «Службы».
- В новом окне отсортируйте все службы ОС по имени, это поможет в поиске «Центр обновления Windows».
- Кликните правой кнопкой мышки. Выберите «Остановить».
Остановка Центра обновлений Windows
Это способ помогает прервать постоянные попытки компьютера получить новые обновления, которые могут вызывать ошибку 80070002.
Настройте время
Ошибка «Windows Script Host сценария» проявляется вследствие неправильно установленной даты на вашем ПК. Расхождения с главным сервером Microsoft во времени очень часто создает конфликты. Устанавливаемый софт строго соблюдает авторские права и поддержку разного рода DirectX , а они, как известно, не вечные.
- Перейдите в правом углу в меню часов, для этого нажмите на них.
- В самом низу будет одно единственное действие «Изменение настроек даты и времени».
Проверяем правильность настроек времени на ПК
Самый простой способ решения, но не менее действенный от этого.
Удаление последних обновлений
Это вариант поможет в ручную решить данную ситуацию. Нужно будет посетить центр обновления и удалить все внесенные изменения за последнее время.
- Через «Пуск» найдите уже знакомую «Панель управления».
- Щелкните по службе «Программы и компоненты».
- В левом меню из трех вариантов выберите «Просмотр установленных обновлений».
- Отсортируйте все по дате добавления софта. Это можно сделать при помощи «Установлено».
Удалите обновления за последние пять дней
А вот наглядная и подробная видео инструкция по исправлению подобной ошибки.
А вот хороший обзор о проблеме несколько иного сбоя службы Windows Script Host: «Не удается найти файл сценария run.vbs», который вызывает черный экран при загрузке и соответствующее уведомление.
Заключение
Данные советы помогут вам исправить системную ошибку Windows Script Host самым простым способом. Многие советуют залезть в реестр и менять значения и настройку некоторых служб — в большинстве случаев это не работает. Если манипуляции с обновлениями системы вам не помогли, тогда просто переустановите систему, тем более если у вас пиратская сборка Виндовс.
Источник
kodblack
12.02.15 — 09:43
Добрый день!
Подскажите — как быть. Мне нужно из таблицы excel в автоматическом режиме производить выгрузку данных в БД SQL.
На VBS — но выдает ошибку.
Код Visual Basic
Dim cn As ADODB.Connection
Dim strSQL As String
Dim lngRecsAff As Long
Set cn = New ADODB.Connection
cn.Open «Provider=SQLOLEDB;Data Source=<compsqlexpress>;» & _
«Initial Catalog=<test>;User ID=<sa>;Password=<pass>»
‘Import by using OPENDATASOURCE.
strSQL = «SELECT * INTO XLImport6 FROM » & _
«OPENDATASOURCE(‘Microsoft.Jet.OLEDB.4.0’, » & _
«‘Data Source=D:111.xls;» & _
«Extended Properties=Excel 8.0′)…[Customers$]»
Debug.Print strSQL
cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
Debug.Print «Records affected: » & lngRecsAff
‘Import by using OPENROWSET and object name.
strSQL = «SELECT * INTO XLImport7 FROM » & _
«OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’, » & _
«‘Excel 8.0;Database=D:111.xls’, » & _
«[Customers$])»
Debug.Print strSQL
cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
Debug.Print «Records affected: » & lngRecsAff
‘Import by using OPENROWSET and SELECT query.
strSQL = «SELECT * INTO XLImport8 FROM » & _
«OPENROWSET(‘Microsoft.Jet.OLEDB.4.0’, » & _
«‘Excel 8.0;Database=D:111.xls’, » & _
«‘SELECT * FROM [Customers$]’)»
Debug.Print strSQL
cn.Execute strSQL, lngRecsAff, adExecuteNoRecords
Debug.Print «Records affected: » & lngRecsAff
cn.Close
Set cn = Nothing
Таблица excel типа
NO ASD Latitude Longitude DF FG Kod_OK Pyncty_
1 123 64.527386 40.561819 1545,55 55455,56 75.22 456546,56
Andrewww123
1 — 12.02.15 — 09:46
(0) Видимо, сейчас намекнут на текст ошибки.
kodblack
2 — 12.02.15 — 09:50
(1) хотелось бы
rsv
3 — 12.02.15 — 09:50
(0) Мутно как то все . Настройте для начала в скуле линкованный сервер на источник данных Exel. Через него будете читать через OpenQuery например. Постестите все в MS Manag Studio, а опосля уже ADO.
bolobol
4 — 12.02.15 — 09:56
(2) что такое? Ошибка есть, а текста ошибки нет, что ли?
Andrewww123
5 — 12.02.15 — 10:02
(2) Раз хотелось, намекаю Напиши текст ошибки.
dk
6 — 12.02.15 — 10:04
при коннекте к Excel нужно указывать что названия колонок берется из 1-й строки
попробуй HDR=Yes указать
https://www.connectionstrings.com/microsoft-jet-ole-db-4-0/standard-excel/
kodblack
7 — 12.02.15 — 10:10
(5) Сценарий d:123.vbs
Строка 1 Символ 12
Ошибка Предполагается наличие окончания инструкции
Код: 800А0401
rsv
8 — 12.02.15 — 10:26
Тренеруетесь ?
kodblack
9 — 12.02.15 — 10:33
(8) Вы о чем?
Может кто нибудь предложить нормальный способ импорта из excel в sql. Разве не у кого нет наработак. Буду очень признателен.
rsv
10 — 12.02.15 — 10:36
(9) Правой кнопкой мыши на БД в Скуле . Все задачи . Импорт Данных . Откроется мастер импорта данных .
kodblack
11 — 12.02.15 — 10:39
(10) — это не ответ. мне нужен автоматический режим.
т.е Excel — будет обновляться время от времени, и надо что бы автоматически данные обновлялись в БД sql.
Andrewww123
12 — 12.02.15 — 10:39
Как я понимаю, это синтаксис не vbs, но могу ошибаться.
rsv
13 — 12.02.15 — 10:41
(11) MS Скуль . Объекты сервера . Связанные серверы. Правой кнопокой мыши . Создать свзанный сервер. т.е. (3)
kodblack
14 — 12.02.15 — 10:47
(13) — а какой драйвер выбирать??? что то excel не нашел.
rsv
15 — 12.02.15 — 10:49
(14) Что нить с Jet там есть ?
kodblack
16 — 12.02.15 — 10:50
(15) нет
rsv
17 — 12.02.15 — 10:57
(16) попробуйте вот так программно создать по аналогии :
sp_addlinkedserver N’MyxlsServer’, N’Jet 4.0′,
N’Microsoft.Jet.OLEDB.4.0′,
N’10.0.0.252VShare_UserExcelTemplatesJourAssembly.xls’, NULL, N’Excel 5.0′
kodblack
18 — 12.02.15 — 11:09
(17) создан link server
но драйвер OLE DB Provider for SQL server
и путь до файла с xls — не прописан
N1kMZ
19 — 12.02.15 — 11:10
На стороне MS SQL проще делать. Через SSIS.
kodblack
20 — 12.02.15 — 11:12
(19) SSIS пакет не нашел
Jaap Vduul
21 — 12.02.15 — 11:36
Вот тут есть подробная инструкция с картинками для SSIS 2012:
https://www.simple-talk.com/sql/ssis/moving-data-from-excel-to-sql-server—10-steps-to-follow/
Это если инициировать загрузку со стороны сервера.
Можно конечно делать это, запуская скрипт из шедулера windows.
Но ваш код в таком случае не годится, ибо он написан, не на VBS, а на VBA и движок vbscript его не понимает (7).
Вообще в этом случае я бы порекомендовал использовать PowerShell — в нём можно заюзать класс Data.SqlClient.SqlBulkCopy для быстрой заливки больших объёмов данных.
Пример:
http://www.sqlserver-dba.com/2013/01/sql-server-export-excel-data-to-sql-server-with-powershell.html
kodblack
22 — 12.02.15 — 11:59
(21) спасибо — буду делать через ssis
kodblack
23 — 12.02.15 — 12:13
(21) т.е что бы добавить SSIS нужен VS?
N1kMZ
24 — 12.02.15 — 12:48
(23) Со стороны сервера лучше запускать, JOBом
kodblack
25 — 12.02.15 — 12:49
(24) а можно ссылку?
kodblack
26 — 12.02.15 — 12:50
нашел SSDTBI-VS2012 — написано что есть ssis
N1kMZ
27 — 12.02.15 — 12:50
(25) А на что ссылку? Создаётся job на SQL, в нём в качестве шага созданный ранее SSIS пакет. Ну а так документацию читать надо, в пост не влезет всё
Господин ПЖ
28 — 12.02.15 — 12:50
>т.е что бы добавить SSIS нужен VS
нужен нормальный скуль… или SSIS сейчас везде доступен по лицензии?
N1kMZ
29 — 12.02.15 — 12:55
rsv
30 — 12.02.15 — 13:06
Так что с линком то не копали ? Там буков и телодвижений меньше .
rsv
31 — 12.02.15 — 13:07
+(30) и скорее скуль в (0) 64 разряда и не видит 32 разрядный Jet
N1kMZ
32 — 12.02.15 — 14:05
(31) SSIS пакет можно запускать в 32-разрядной среде принудительно (в свойствах пакета).
kodblack
33 — 13.02.15 — 07:46
(30) с линк сервером — не до понял что делать после добавления модуля.
kodblack
34 — 13.02.15 — 10:39
Добавил путем запроса.
А вот дальше не понял что делать.
EXEC sp_addlinkedserver
server = ‘ExcelServer1’,
@srvproduct = ‘Excel’,
@provider = ‘Microsoft.Jet.OLEDB.4.0’,
@datasrc = ‘d:111.xls’,
@provstr = ‘Excel 8.0;IMEX=1;HDR=YES;’
kodblack
35 — 13.02.15 — 10:40
И провайдер — выставился другой — OLE DB
kodblack
36 — 13.02.15 — 11:08
почему в связи сервера нет для выбора Microsoft.Jet.OLEDB.4.0
я установил AccessDatabaseEngine_x64
Jaap Vduul
37 — 13.02.15 — 11:24
kodblack
38 — 13.02.15 — 11:40
(37) Связь сделал. Но теперь сори за туп…ой вопрос — а как вогнать данные с таблицы в БД?
Jaap Vduul
39 — 13.02.15 — 11:44
kodblack
40 — 13.02.15 — 11:49
(39) — т.е что по ACE.OLEDB или по SSIS — путь один?
Jaap Vduul
41 — 13.02.15 — 11:54
(40)
Вопрос звучит как «т.е. дизель и мерседес с одинаковой скоростью едут?».
kodblack
42 — 13.02.15 — 12:22
(41) тогда вопрос при настройке связи SQL Statement
простой запрос написал но выдает ошибку
IF EXISTS (SELECT 1 FROM information_schema.tables where table_name like ‘1111’)
DROP TABLE 1111
— create a table to hold purchase ledger items
CREATE TABLE 1111(
PRIMARY KEY IDENTITY(1,1),
Naimenovanie nchar(10),
Latitude float,
Longitude float,
Factiheskyi nchar(10),
inn nchar(10),
Kod_OKVED nchar(10),
Pyncty nchar(10)
)
[Задача «Выполнение SQL»] Ошибка: Сбой выполнения запроса «IF EXISTS (SELECT 1 FROM information_schema.tables…» со следующей ошибкой: «Неправильный синтаксис около конструкции «1111».». Возможные причины сбоя: проблемы с этим запросом, свойство «ResultSet» установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно.
Jaap Vduul
43 — 13.02.15 — 12:38
(42)
Не могут идентификаторы объектов в MSSQL начинаться с цифровых символов.
https://msdn.microsoft.com/en-us/library/ms175874.aspx
kodblack
44 — 13.02.15 — 13:09
(43) IF EXISTS (SELECT 1 FROM information_schema.tables where table_name like ‘qwerty’)
DROP TABLE qwerty
— create a table to hold purchase ledger items
CREATE TABLE qwerty(
PRIMARY KEY IDENTITY(1,1),
Naimenovanie nchar(10),
Latitude float,
Longitude float,
Factiheskyi nchar(10),
inn nchar(10),
Kod_OKVED nchar(10),
Pyncty nchar(10)
)
[Задача «Выполнение SQL»] Ошибка: Сбой выполнения запроса «IF EXISTS (SELECT 1 FROM information_schema.tables…» со следующей ошибкой: «Неправильный синтаксис около ключевого слова «IDENTITY».». Возможные причины сбоя: проблемы с этим запросом, свойство «ResultSet» установлено неправильно, параметры установлены неправильно или соединение было установлено неправильно.
kodblack
45 — 13.02.15 — 13:11
(44) удалил PRIMARY KEY IDENTITY(1,1), и все заработало
Jaap Vduul
46 — 13.02.15 — 13:15
(44)
Надо было не удалять, а указать наименование первичного ключа, типа:
Id PRIMARY KEY IDENTITY(1,1)
Хотя, если первичный ключ не нужен, то и так сойдёт.
kodblack
47 — 13.02.15 — 16:44
(46) он должен быть указан в таблице или sql сама задаст этой строкой? если сама то конечно надо.
- Remove From My Forums
-
Question
-
User-1869791243 posted
Hi,
I’m new to asp and i have to work on existing asp application. While calling the asp file using ajax i’m getting the error «
Microsoft VBScript compilation error ‘800a0401’
Expected end of statement»
/login/handle_public.asp, line 1
asp_handle_public();
The above file contains only one line of code which is <% asp_handle_public(); %>
Please help to solve this issue, can you please tell me the reason why it is showing this error? In my project all the asp files are with one line of code as mentioned above.
I want to know, these functions are running on the server side or client side?
Please help me to resolve this issue ASAP.
Thanks for any help
Regards,
Ram.
Answers
-
User-1122936508 posted
Type mismatch: ‘asp_handle_public’
/login/handle_public.asp, line 1
Asp file contains just one line of code as below
<% asp_handle_public() %>
asp_handle_public() is a function or subroutine. You need to find out where that function/subroutine is defined and look at the code in it.
If it’s a subroutine, you need to omit the () or use the Call keyword:
<% Call asp_handle_public() %>
If it’s a function, it will return something, and you need to assign that to an object or variable.
-
Marked as answer by
Tuesday, September 28, 2021 12:00 AM
-
Marked as answer by