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.
100 lines
3.3 KiB
100 lines
3.3 KiB
1 year ago
|
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
|
||
|
|
||
|
*/
|