【发布时间】:2015-05-14 13:40:54
【问题描述】:
在 .Net 2.0 中使用 VB,我想创建一个简单的程序,从我用这样的视图创建的脚本(文本文件)中生成 xml 文件:
USE [Archive-FIRSTVIEW]
GO
/****** Object: View [dbo].[vABCDEFG] Script Date: 5/14/2015 8:01:58 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vABCDEFG]
AS
SELECT dbo.[Document].docGUID, dbo.[Document].accountGUID, dbo.[Document].jobGUID, dbo.[Document].DOC9docID, dbo.[Document].docDate, dbo.[Document].docType,
dbo.[Document].docPages, dbo.[Document].tsCreated
FROM dbo.AcctLookupKey INNER JOIN
dbo.[Document] ON dbo.AcctLookupKey.docGUID = dbo.[Document].docGUID
WHERE (dbo.AcctLookupKey.ix = 3) AND (dbo.AcctLookupKey.val IN ('ABCDEFG'))
GO
/****** Object: View [dbo].[vLMNOP] Script Date: 5/14/2015 8:01:58 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[vLMNOP] AS
SELECT dbo.[Document].*
FROM dbo.AcctLookupKey INNER JOIN dbo.[Document] ON dbo.AcctLookupKey.docGUID = dbo.[Document].docGUID
WHERE (dbo.AcctLookupKey.ix = 3)
AND (dbo.AcctLookupKey.val in ('LMNOP','LMNOP (AEIOU)'))
我只想检索每个 WHERE 行末尾的文本,例如,第一个检索“ABCDEFG”,第二个检索“LMNOP”、“LMNOP (AEIOU)”
感谢您的帮助!
编辑: 我想创建一个看起来像这样的 XML 文件:
<Views Code="FIRSTVIEW">
<View Name="vABCDEFG">
<Criteria>ABCDEFG</Criteria>
</View>
<View Name="LMNOP">
<Criteria>LMNOP</Criteria>
<Criteria>LMNOP (AEIOU)</Criteria>
</View>
<Views>
EDIT2: 到目前为止,能够开始提取一些数据,只是不是我想要的样子。这是在将其加载到 xml 之前。
Dim dir As New DirectoryInfo("d:\input")
Dim sw As New StreamWriter("d:\input\extract.txt")
For Each fi As FileInfo In dir.GetFiles("views.txt")
Dim sr As New StreamReader(fi.FullName)
Dim root As String
Dim child As String
Dim substring As String
While Not sr.EndOfStream
Dim sLine As String = sr.ReadLine
If sLine.Contains("USE [") Then
root = sLine '.Substring(13) - 1
End If
If sLine.Contains("CREATE VIEW") Then
child = sLine '.Substring(19) - 1
End If
If sLine.Contains("(''") Then
substring = sLine
End If
sw.WriteLine(root)
sw.WriteLine(child)
sw.WriteLine(substring)
End While
sr.Close() : sr.Dispose()
Next
sw.Flush() : sw.Close() : sw.Dispose()
【问题讨论】:
-
我不明白你想在这里做什么。你能试着澄清一下吗?
-
@Sean Lange,我会很快更新我的帖子。
-
我会改变你的问题,而是问“我想获取 IN 语句中的字符串”
-
似乎是一个非常脆弱且容易出错的尝试。快速搜索发现sql parser 说它创建了 sql 脚本的 xml 解析树。也许你可以这样做并挖掘出你感兴趣的元素。
-
你能理解我的回答吗?如果有帮助,请将其标记为答案。
标签: sql-server xml vb.net views