5

में संग्रहीत प्रक्रिया 'sp_OACreate' नहीं मिल सका जब मैं sp_OACreate SQL एज़ूर डेटाबेस में संग्रहित प्रक्रिया निष्पादित करने का प्रयास करता हूं। मुझे निम्न त्रुटि मिल रही है:त्रुटि प्राप्त हो रही है "एसक्यूएल एज़ूर

Could not find stored procedure 'sp_OACreate'

SQL Azure में।

क्या कोई मुझे बता सकता है कि ओएलई स्वचालन विधियों को कैसे कार्यान्वित करें जैसे sp_OACreate SQL Azure में।

किसी भी मदद की अत्यधिक सराहना की जाएगी।

धन्यवाद।


कॉपी किया गया & ऑप्स से प्रारूपित (एक संपादन किया जाना चाहिए था जो) का जवाब:

मैं गूगल मानचित्र सेवाओं हिट करने के लिए किसी भी पते के सह orinates (अक्षांश & देशांतर) प्राप्त करने के लिए कोशिश कर रहा हूँ। मैं एसक्यूएल प्रश्नों के नीचे निष्पादित कर रहा हूँ। एसक्यूएल सर्वर 2005 में अपनी काम कर ठीक लेकिन SQL Azure 2008.Plz में अपनी दे त्रुटि नीचे देखें :-(कृपया इस के लिए कुछ वैकल्पिक सुझाव है)

DECLARE @Sample TABLE 
(
RowID INT IDENTITY(1, 1) PRIMARY KEY CLUSTERED, 
Postal VARCHAR(50) NOT NULL, 
ZipCode VARCHAR(50) NOT NULL, 
City VARCHAR(50) NOT NULL, 
Country VARCHAR(50) NOT NULL, 
Status SMALLINT, 
Accuracy TINYINT, 
Lat DECIMAL(9, 6), 
Lon DECIMAL(9, 6), 
CreDate DATETIME 
) 

INSERT @Sample 
SELECT 'One Microsoft Way', '98052', 'Redmond, WA', 'USA',null,1,0,0,getdate() UNION ALL 
SELECT '170 W. Tasman Dr.', '95134', 'San Jose, CA', 'USA',null,1,0,0,getdate() UNION ALL 
SELECT '500 Oracle Parkway', '94065', 'Redwood Shores, CA', 'USA',null,1,0,0,getdate() 

select * from @Sample 

-- Initialize 
DECLARE @url VARCHAR(300), 
@win INT, 
@hr INT, 
@Text VARCHAR(8000), 
@RowID int, 
@Status smallint, 
@Accuracy tinyint, 
@Lon decimal(9, 6), 
@Lat decimal(9, 6) 

SELECT @RowID = MIN(RowID) FROM @Sample WHERE Status IS NULL 

WHILE @RowID IS NOT NULL 
BEGIN 
    SELECT @url = 'q=' + Postal + '+' + ZipCode + '+' + City + '+' + Country 
    FROM @Sample 
    WHERE RowID = @RowID 

    SET @url = 'http://maps.google.com/maps/geo?' + @url 
    SET @url = @url + '&output=csv&key={your google api key here}' 

    EXEC @hr = sp_OACreate 'WinHttp.WinHttpRequest.5.1', @win OUT 
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

    EXEC @hr = sp_OAMethod @win, 'Open', NULL, 'GET', @url, 'false' 
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

    EXEC @hr = sp_OAMethod @win, 'Send' 
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

    EXEC @hr = sp_OAGetProperty @win, 'ResponseText', @Text OUT 
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

    EXEC @hr = sp_OADestroy @win 
    IF @hr <> 0 EXEC sp_OAGetErrorInfo @win 

    SET @Text = REPLACE(REPLACE(@Text, '.', '#'), ',', '.') 
    SELECT @Status = PARSENAME(@Text, 4), 
     @Accuracy = PARSENAME(@Text, 3), 
     @Lat = REPLACE(PARSENAME(@Text, 2), '#', '.'), 
     @Lon = REPLACE(PARSENAME(@Text, 1), '#', '.') 

    UPDATE @Sample 
    SET Accuracy = @Accuracy, 
     Lat = @Lat, 
     Lon = @Lon, 
     Status = @Status, 
     CreDate = GETDATE() 
    WHERE RowID = @RowID 

    WAITFOR DELAY '00:00:00.010' 

    SELECT @RowID = MIN(RowID) 
    FROM @Sample 
    WHERE Status IS NULL 

END 

SELECT * FROM @Sample 

--If Above not executing then first execute below 
--sp_configure 'show advanced options', 1; 
--GO RECONFIGURE; 
-- 
--GO 
-- 
--sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE; 
-- 
--GO 
+0

शायद आप वर्णन कर सकते हैं कि आप यहां क्या हासिल करने की कोशिश कर रहे थे - आप स्पष्ट रूप से एक COM घटक का उपयोग करने की कोशिश कर रहे हैं - क्या यह एक आम घटक है जिसे हम विकल्पों का सुझाव दे सकते हैं? –

उत्तर

0

sp_OACreate एक स्वचालन संग्रहीत प्रक्रिया है और एसक्यूएल Azure डाटाबेस में उपलब्ध नहीं है

http://msdn.microsoft.com/en-us/library/ee336237.aspx

मैं अगर कोई कामकाज से जुड़े हैं बहुत आश्चर्य होगा।

+0

मैंने अपनी समस्या का वर्णन किया है, कृपया जांचें और इसके लिए कुछ वैकल्पिक सुझाव दें। – kapil

+0

पता नहीं। ऐसा नहीं लगता कि पहले से ही सुझाव दिया गया है। SQL Azure के तर्क को बाहर ले जाएं। –

1

वहाँ एसक्यूएल Azure के भीतर से वेब सेवाओं के लिए बाहर कॉल करने के लिए किसी भी तरह है - आप जो एक Windows Azure पर चल रहा है (के रूप में एसक्यूएल Azure के खिलाफ) सेवा कोड में इस तरह के कॉल ऊपर ले जाने के होगा, और आप यह नहीं करेंगे इसे ट्रांजैक्ट एसक्यूएल में लिखना।