以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何读取SQL里视图的语句,并保存在表单里。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178262)

--  作者:2900819580
--  发布时间:2022/6/26 11:06:00
--  [求助]如何读取SQL里视图的语句,并保存在表单里。
如何读取SQL里视图的语句,并保存在表单里。老师,在网上找到了方法,
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "sp_helptext \'BOMZMX\'"
Output.Show(cmd.ExecuteScalar)
但是得出结果有以下两种问题:
1、Output的结果:CREATE VIEW dbo.DDZMX
2、Output的结果:太长会显示不全面。下面蓝字是全部内容,红字是OutPut的内容

SEL ECT     A.GYSID, c.全称 AS 默认供应商, A._Identify, A._Locked, A._SortKey, A.Itid, A.Fid, A.Fdel, A.料号, A.名称, A.规格, A.Dwid, A.封包数量, A.备注, A.图片, A.最少库存量, 
                      A.最大库存量, A.安全库存数, A.技术文件, A.封装, A.数值, A.负责人ID, A.阶层, A.型号, A.Cwid, (CASE WHEN a.fid = 1 THEN \'Y\' END) AS 使用标志, 
                      (CASE WHEN a.Fdel = 1 THEN \'Y\' END) AS 冻结标志, A.FZJ, A.FJItid, d.名称 AS 父阶名称, d.料号 AS 父阶料号, f.名称 AS 仓位, A.CKiD, f1.名称 AS 默认仓库, f.FjID, 
                      A.父料号, A.kwid, A.旧料号, A.MOQ, A.WLSX, f2.名称 AS 物料属性, f3.名称 AS 单位, e1.用户名 AS 新增人, e2.用户名 AS 修改人, A.新增人ID, A.新增日期, A.修改人ID, 
                      A.修改日期, e3.用户名 AS 默认采购员, A.Xhid
FR OM         dbo.物料表 AS A LEFT OUTER JOIN
                      dbo.物料表 AS d ON A.FJItid = d.Itid LEFT OUTER JOIN
                      dbo.GYSB AS c ON A.GYSID = c.Itid LEFT OUTER JOIN
                      dbo.基础表 AS f ON A.Cwid = f.Itid LEFT OUTER JOIN
                      dbo.基础表 AS f1 ON f.FjID = f1.Itid LEFT OUTER JOIN
                      dbo.基础表 AS f2 ON f2.Itid = A.WLSX LEFT OUTER JOIN
                      dbo.基础表 AS f3 ON A.Dwid = f3.Itid LEFT OUTER JOIN
                      dbo.UseB AS e1 ON A.新增人ID = e1.Itid LEFT OUTER JOIN
                      dbo.UseB AS e2 ON A.修改人ID = e2.Itid LEFT OUTER JOIN
                      dbo.UseB AS e3 ON A.负责人ID = e3.Itid
结果:
CREATE VIEW [WLB] AS  S ELECT     A.GYSID, c.全称 AS 默认供应商, A._Identify, A._Locked, A._SortKey, A.Itid, A.Fid, A.Fdel, A.料号, A.名称, A.规格, A.Dwid, A.封包数量, A.备注, A.图片, A.最少库存量,   A.最大库存量, A.安全库存数, A.技术文件, A.封装, A.数值, A.负责人ID, A.阶层, A.型号, A.Cwid, (CASE WHEN a.fi


[此贴子已经被作者于2022/6/26 11:25:54编辑过]

--  作者:有点蓝
--  发布时间:2022/6/26 20:36:00
--  
https://blog.csdn.net/SkunkLuck/article/details/50271899

应该是分行了吧

cmd.CommandText = "sp_helptext \'BOMZMX\'"
dim dt as datatable = cmd. Executereader
msgbox(dt.datarows.count)
for each dr as datarow in dt.datarows
msgbox(dr(dt.datacols(0).name))
next

--  作者:2900819580
--  发布时间:2022/6/26 23:01:00
--  
老师,的确可以解决问题,但我只想要红色的内容,可以吗?
CREATE VIEW dbo.BOMZMX
AS
SE LECT     a._Locked, a._SortKey, a._Identify, a.Itid AS 产品Itid, a.审核ID, a.wlid AS 产品wlid, a.制表ID, a.负责ID, a.新增日期, a.修改日期, a.备注, a.料号 AS 产品料号, 
                      a.名称 AS 产品名称, a.规格 AS 产品规格, a.单位 AS 产品单号, a.制表人, a.审核人, a.负责人, a.审核标志, a.物料属性, a.WLSX, b.料号, b.名称, b.规格, b.单位, b.Note, 
                      b.wlid, b.Fjid, b.Itid, b.Zbid, b.序号, b.用量, b.WLFL, b.WLBMID, b.旧料号, b.Fid, b.物料分类, a.修改人, a.EditUseID, a.审核日期, b.SCLX, b.Xhid, b.生产分类
FRO M         dbo.BOMZB AS a LEFT OUTER JOIN
                      dbo.BOMMX AS b ON a.wlid = b.Fjid


--  作者:有点蓝
--  发布时间:2022/6/26 23:08:00
--  
自己拆分字符串:http://www.foxtable.com/webhelp/topics/1338.htm

取 as字符后的内容