sp_oacreate vbscript.regexp -Klasse nicht registriert
-
16-10-2019 - |
Frage
Stellen Sie sich eine Windows Server 2003 Enterprise X64 Edition vor.
Ich kann ein 'vbscript.regexp' Objekt unter Verwendung eines VBSCripts erstellen (das bestätigt, dass die DLL registriert ist).
Ich kann kein 'vbscript.reGexp' Objekt mit sp_oacreate in einer SQL Server 2005 SP3 (.4053) (Cluster) (Cluster) erstellen.
Die OLE -Automatisierung wird in der Oberflächenkonfiguration überprüft.
Die sp_oacreate arbeitete bis vor kurzem.
Kannst du mir helfen?
*CODE*
declare
@source varchar(5000),
@regexp varchar(1000),
@replace varchar(1000),
@globalReplace bit,
@ignoreCase bit
set @source = 'NBG76TF43'
set @regexp = '[^0-9]'
set @replace = ''
set @globalReplace = 1
set @ignoreCase = 1
DECLARE @hr integer
DECLARE @objRegExp integer
DECLARE @result varchar(5000)
EXECUTE @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT
IF @hr <> 0
BEGIN
EXEC @hr = sp_OADestroy @objRegExp
PRINT 'A'
PRINT @hr
END
EXECUTE @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp
IF @hr <> 0
BEGIN
EXEC @hr = sp_OADestroy @objRegExp
PRINT 'B'
PRINT @hr
END
EXECUTE @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplace
IF @hr <> 0
BEGIN
EXEC @hr = sp_OADestroy @objRegExp
PRINT 'C'
PRINT @hr
END
EXECUTE @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignoreCase
IF @hr <> 0
BEGIN
EXEC @hr = sp_OADestroy @objRegExp
PRINT 'D'
PRINT @hr
END
EXECUTE @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @source, @replace
IF @hr <> 0
BEGIN
EXEC @hr = sp_OADestroy @objRegExp
PRINT 'E'
PRINT @hr
END
EXECUTE @hr = sp_OADestroy @objRegExp
IF @hr <> 0
BEGIN
PRINT 'F'
PRINT @hr
END
PRINT @result
/*
A
-2147211480
B
-2147211480
C
-2147211480
D
-2147211480
E
-2147211480
F
-2147211480
*/
Lösung
Zehn Monate später trat das Problem erneut auf demselben System auf.
- Spezifischer Fehler: 0x8007045a (eine Initialisierungsroutine für dynamische Verbindungsbibliothek (DLL) fehlgeschlagen)
Ich kann die Ursache für dieses Problem nicht finden. Ich fand jedoch genügend verwandte Szenarien (vor zehn Monaten), die darauf hinwiesen, dass das Neustart des Servers das Problem lösen würde.
Ich habe den Servercluster neu gestartet (beide Knoten, folgenden gesteuerten Fehler), und das Problem wurde behoben (kann ein Objekt 'vbscript.regexp' mit sp_oacreate erstellen).