You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
sql-tools/GetConnInfo.sql

100 lines
3.3 KiB

IF OBJECT_ID('PGetConnInfo') IS NOT NULL
BEGIN
DROP PROC PGetConnInfo
END
GO
CREATE PROC PGetConnInfo
(
@KeyWord VARCHAR(1000)
)
AS
BEGIN
CREATE TABLE #Info
(
FMchId INT,
FMchNo VARCHAR(200),
FMchName VARCHAR(200),
FServer VARCHAR(200),
FDatabase VARCHAR(200),
FWindowLogin BIT,
FUser VARCHAR(200),
FPassword VARCHAR(200)
)
INSERT #Info(FMchId,FMchNo,FMchName)
SELECT FClientId,FClientNo,FClientName
FROM TClientInfo
WHERE FClientNo = @KeyWord
IF @@ROWCOUNT = 0
BEGIN
INSERT #Info(FMchId,FMchNo,FMchName)
SELECT FClientId,FClientNo,FClientName
FROM TClientInfo
WHERE FClientNo LIKE '%' + @KeyWord + '%'
IF @@ROWCOUNT = 0
BEGIN
INSERT #Info(FMchId,FMchNo,FMchName)
SELECT FClientId,FClientNo,FClientName
FROM TClientInfo
WHERE FClientName LIKE '%' + @KeyWord + '%'
END
END
DECLARE @MchId INT
DECLARE List CURSOR FOR
SELECT FMchId FROM #Info
OPEN LIST
FETCH List INTO @MchId
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @Str VARCHAR(8000)
DECLARE @Temp VARCHAR(8000)
SELECT @Str = FConnectionString FROM TClientServerConfig WHERE FClientId = @MchId
SELECT @Temp = SUBSTRING(@Str,CHARINDEX('Data Source=',@Str) + LEN('Data Source='),LEN(@Str))
DECLARE @Server VARCHAR(1000)
SELECT @Server = SUBSTRING(@Temp,1,CHARINDEX(';',@Temp)-1)
IF @Server = '(local)' OR @Server = '127.0.0.1'
BEGIN
SELECT @Server = FAddress FROM TServerInfo WHERE FServerId =(SELECT FServerId FROM TClientInfo WHERE FClientId=@MchId)
END
UPDATE #Info SET FServer = @Server WHERE FMchId = @MchId
SELECT @Temp = SUBSTRING(@Str,CHARINDEX('Initial Catalog=',@Str) + LEN('Initial Catalog='),LEN(@Str))
UPDATE #Info SET FDatabase = SUBSTRING(@Temp,1,CHARINDEX(';',@Temp)-1) WHERE FMchId = @MchId
SELECT @Temp = SUBSTRING(@Str,CHARINDEX('Integrated Security=',@Str) + LEN('Integrated Security='),LEN(@Str))
UPDATE #Info SET FWindowLogin = SUBSTRING(@Temp,1,CHARINDEX(';',@Temp)-1) WHERE FMchId = @MchId
IF EXISTS(SELECT 1 FROM #Info WHERE FMchId= @MchId AND FWindowLogin = 0)
BEGIN
SELECT @Temp = SUBSTRING(@Str,CHARINDEX('User Id=',@Str) + LEN('User Id='),LEN(@Str))
UPDATE #Info SET FUser = SUBSTRING(@Temp,1,CHARINDEX(';',@Temp)-1) WHERE FMchId = @MchId
SELECT @Temp = SUBSTRING(@Str,CHARINDEX('Password=',@Str) + LEN('Password='),LEN(@Str))
UPDATE #Info SET FPassword = SUBSTRING(@Temp,1,CHARINDEX(';',@Temp)-1) WHERE FMchId = @MchId
END
FETCH List INTO @MchId
END
SELECT * FROM #Info
END
GO
EXEC Main.dbo.PGetConnInfo 'glamg'
/*
SELECT C.FAddress,SUBSTRING(FConnectionString,CHARINDEX(FConnectionString,'Data Source='), FROM TClientServerConfig AS A,TClientInfo AS B,TServerInfo AS C
WHERE C.FServerId = B.FServerId
AND A.FClientId = B.FClientId
AND B.FClientNo = 'glamg'
Data Source=(local);Initial Catalog=GuanLing_AiMeiGe;Integrated Security=True;Pooling=True;Min Pool Size=1;Max Pool Size=20;Connect Timeout=60;Load Balance Timeout=30;Application Name=GLAMG
*/