Jim Lawrence
accessd at shaw.ca
Fri May 4 00:28:25 CDT 2007
Hi John: I am not sure if this is the reason for your problem but all my external requests for files and applications, through Stored Procedures are run like so: CREATE PROCEDURE JTBCreateImportAll AS /* Build all the import tables */ CREATE TABLE [dbo].[Customer]( ... ... /* Import the data */ SET QUOTED_IDENTIFIER OFF SET ANSI_NULLS OFF EXEC master..xp_cmdshell 'D:\import\ImportCustomer.exe', no_output EXEC master..xp_cmdshell 'D:\import\ImportTransactionLog.exe', no_output EXEC master..xp_cmdshell 'D:\import\ImportInventory.exe', no_output EXEC master..xp_cmdshell 'D:\import\ImportAR.exe', no_output GO ...through an external xp_cmdshell app in the master directory. The actual files that run the import routine are in compiled VB code. I can send you a copy of one of the source files so you can re-design and re-compile your own. The files are not nearly the size of yours being a maximum of 80,000 records, in delimitated text format. The creation of 80plus tables, importing the data and creating indexes usually takes about an hour. One note is there is a maximum size of a SP but by creating an UDF for each table and calling them from a SP you can easily get around that linmit. HTH Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of JWColby Sent: Thursday, May 03, 2007 7:38 PM To: 'Access Developers discussion and problem solving' Subject: Re: [AccessD] Calling a stored procedure from Access OK, let's try this... The following is what I have stored. set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[BulkInsertInfutor] -- Add the parameters for the stored procedure here @FilName varchar(255) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here DECLARE @FileSpec varchar(1000) set @filespec = 'D:\PSMData\INFUTOR\CSV\' set @filespec = @filespec + @FilName DECLARE @SQL varchar(1000) set @SQL = 'BULK INSERT Infutor.dbo.infutor from ' + char(39) + @filespec + char(39) set @SQL = @SQL +' WITH (FieldTerminator = ' set @SQL = @SQL + char(39) + '|' + char(39) + ', ' set @SQL = @SQL + 'ROWTERMINATOR = ' set @SQL = @SQL + char(39) + '\' + char(39) + 'n)' exec @SQL END When I try to do: Exec BulkInsertInfutor 'NAR_MT1.csv' I get: Msg 7202, level 11, State 2, line 22 could not find server 'BULK INSERT INFUTOR' in sys servers. TIA for all assistance, John W. Colby Colby Consulting www.ColbyConsulting.com -- AccessD mailing list AccessD at databaseadvisors.com http://databaseadvisors.com/mailman/listinfo/accessd Website: http://www.databaseadvisors.com