Hello, Can I change a user's authentication mode from sql server authentication to windows authentication in Tessitura? Any help would be greatly appreciated. I wrote a procedure to update one of impresario tables by an excel file, and everything is ok when I run the procedure in Sql Server 2005. Even in the info maker, it could retrieve and update data correctly. However, I couldn't run it in Tessitura report, and I would get an error message below ********************************* I tried two different methods to access Excel from Sql Server 2005, -SQL Server distributed queries -SQL Server linked servers
Hello,
Can I change a user's authentication mode from sql server authentication to windows authentication in Tessitura?
Any help would be greatly appreciated.
I wrote a procedure to update one of impresario tables by an excel file, and everything is ok when I run the procedure in Sql Server 2005. Even in the info maker, it could retrieve and update data correctly. However, I couldn't run it in Tessitura report, and I would get an error message below
*********************************
I tried two different methods to access Excel from Sql Server 2005,
-SQL Server distributed queries
-SQL Server linked servers
They all work perfectly fine in Sql Server 2005, but none of them would work in Tessitura. I don't know the reason why....
Thank you very much in advance!
Error Msg I got at Tessitura when I use Server distributed queries:
Select error: SQL STATE= 42000
Microsoft OLE DB provider for SQL server
Ad hoc access to OLE DB provide”Microsoft.Jet.OLEDB.4.0”has been denied. You must access this provide through a linked server
Error Msg I got at Tessitura when I use Server linked servers :
Select Error: SQLSTATE= 01000
Microsoft OLE DB provide for SQL Server
OLE DB provides “Microsoft.Jet. OLEDB 4.0 ”for linked server ”EXCELLINK” returned message “Cannot start your application “. The workgroup information file is missing or opened exclusively by another user
--------------------------------------------
The procedure I use Server linked servers
USE [impresario]
GO
/****** Object: StoredProcedure [dbo].[LP_UPDATE] Script Date: 12/07/2009 10:31:49 ******/
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
/****************************** CREATE_LinkedServer******************************
IF exists (SELECT * FROM sys.servers WHERE NAME = 'EXCELLINK')
BEGIN
EXEC sp_dropserver 'EXCELLINK',droplogins
END
DECLARE @RC int
DECLARE @server nvarchar(128)
DECLARE @srvproduct nvarchar(128)
DECLARE @provider nvarchar(128)
DECLARE @datasrc nvarchar(4000)
DECLARE @location nvarchar(4000)
DECLARE @provstr nvarchar(4000)
DECLARE @catalog nvarchar(128)
-- Set parameter values
SET @server = 'EXCELLINK'
SET @srvproduct = 'Excel'
SET @provider = 'Microsoft.Jet.OLEDB.4.0'
SET @datasrc = '\\user\Share\update.xls'
SET @provstr = 'Excel 8.0' --Excel 8.0 for an Excel 2002, Excel 2000, or Excel 97 workbook
EXEC @RC = [impresario].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider,
@datasrc, @location, @provstr, @catalog
****************************** DROP_LinkedServer******************************
*******************************************************************************/
ALTER PROCEDURE [dbo].[LP_UPDATE]
@updateind char(1)--Y/N
AS
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF @updateind = 'Y'
--set lock_timeout 1000
--Create logins for linkedserver
exec sp_addlinkedsrvlogin
@rmtsrvname='EXCELLINK',
@useself='False',
@locallogin='sa', -- Replace this with the SQL Authenticated account
@rmtuser=NULL,
@rmtpassword=NULL
exec sp_configure 'login timeout', 1000
reconfigure;
exec sp_configure 'query timeout (s)', 1000
--Get data from Excel file
set lock_timeout 1000 SELECT * into #temp FROM EXCELLINK...Sheet1$
UPDATE
TEST_PROM
SET response_dt = GETDATE()
FROM #temp AS A INNER JOIN TEST_PROM AS B ON A.customer_no = B.customer_no
where
A.customer_no = B.customer_no
AND A.source_no = B.source_no
UPDATE TEST_PROM
SET response =
(CASE
WHEN ( CONVERT(varchar(30),A.response) like '%ABC%' )
THEN 20
WHEN ( CONVERT(varchar(30),A.response) like '%CDE%')
THEN 21
WHEN ( CONVERT(varchar(30),A.response) like '%EFG%')
THEN 22
ELSE B.response--no update
END )
SELECT *
drop table #temp
ELSE
RETURN
Hi Vicky,
Good day.
I don't think it is possible.
In Tessitura report, it only uses the impUsers account.
You cannot login as a guest then declare yourself as a master. There are no such methods without breaking security rules.
Good luck and have fun.
Ben
Hello Ben,
Thank you for your reply.
Vicky
Is it possible for me to use Excel VBA update table in Tessitura by using Excel files?
Thank you and have a nice day!
any applications can be separated into two parts: the data and the interface.
for Tessitura, all the data are in SQL 2005. so if you want to access Tessitura data, only thing you need is to get a SQL account.
The interfaces for Tessitura are Powerbuilder datawindow and web service (web API). so you want to use Tessitura interface, you should use infomaker or web pages.
Of course, you can use VBA to access SQL server without any problems. but I don't think you can have a integrated interface in Tessitura.