Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 698
  • Last Modified:

Problem using sp_OACreate to create a text file in SQL server 2005

I am using the below code to create a log file at remote machine in SQL server 2005.

I am able to create a file successfully using the same code on SQL server 2000 but the file is not getting created in SQL server 2005.
ALTER PROCEDURE GEGR_SPODA_SHIP_RECV_temp  @param1 varchar(10) = 'DEV'									                  
AS
declare
@vchrFile VARCHAR(1000) ,
	@lv_string Varchar(8000),
	@CmdTxt Varchar(8000),
	@vchrText Varchar(8000),
        @vchrFileID INT ,
 	@FS INT ,
 	@RC INT ,
	@DBID Int,
        @DBNAME VarChar(128)
 
SELECT @vchrFile = 'C:\cmmsdevdata\Log\Temp.txt'
EXECUTE @RC = sp_OACreate 'Scripting.FileSystemObject', @FS OUT
EXEC @RC = sp_OAMethod @FS , 'OpenTextFile' , @vchrFileID OUT , @vchrFile , 8 , -1
set @vchrText ='Text'
EXEC @RC = sp_OAMethod @vchrFileID, 'WriteLine', Null , @vchrText
EXECUTE @RC = sp_OADestroy @vchrFileID
EXECUTE @RC = sp_OADestroy @FS 
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO
 
 
Can someone help me with this.

Open in new window

0
kavya_deepthi
Asked:
kavya_deepthi
  • 2
1 Solution
 
jogosCommented:
When procedure runs the file path must be from the point of view of the SQL2005 instance, maybe that's diffrent between your SQL2000 and SQL2005.
Also the credentials to write could be diffrent, so it could be possible it runs when you start the procedure in a query window with your credentials and it fails when it runs with the credentials of SQL*Agent.
0
 
kavya_deepthiAuthor Commented:
When i am creating the file on SQL server2005..i am giving a different path accordingly.So that should not be the problem
0
 
jogosCommented:
The second part of my comment is about credentials, follow the link for an example of what could be the problem.  SQL2005 on diffrent server? Other default-settings sql-instance as the actual in 2000 instance. Other 'User' which owns the process that runs....

http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SQL-Server-2005/Q_22479836.html

Mostly when something doesn't work there is some error-message. Not always automaticly (ex SQL*Agent job -> option to log in eventvwr or to put output jobstep in a logfile.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now