我有一个SQL函数,我在显示函数中的VB.Net代码中调用。 SQL函数将格式化我的帐户数据,以包含表格中的以下结果。
表数据:“001000011121”(这是数据在格式化之前的结构类型) 因此数据表数据和vb属性将被称为Myaccount,HerAccount,ThisAccount。
一旦数据被拉出然后在VB.net代码中格式化,它将导致GridDisplay,如:“001.00.001.1121”
我在代码中拥有公共功能的方式是:
Public Funcion GetDisplay(_
ByVal dbBass as DataProvider_
,ByVal pps AS TMGDatarequestParms_
,By filter As IFilter_
) As Ilist
Dim strobe As String = CType(parms.OptionalParameters, DataProvider).Database
Dim sql As BiGSqlBuilder(TABLE)
sql.Select = String.Format("ID, [{0}].dbo.GLForamtAcct(Myaccount) AS [Myaccount], [{0}].dbo.GLFormatAccount(HerAccount) AS [HerAccount], [{0}].dbo.GLFormatAccount(ThisAccount) AS [ThisAccount]", strobe)
我遗漏了一些返回代码,因为没有必要。我唯一关心的是如何在上面的VB.net代码中格式化SQL。我希望这是有道理的我对这整个抽象的东西都是新手。任何帮助都会非常感激,因为我很确定我上面的方法不起作用。
答案 0 :(得分:0)
建议在更高层中实现显示代码,而不是使用此业务逻辑加重数据库负担。
听起来你是使用String.Format()
在字符串中插入表名的字符串。实际上只有在执行跨数据库调用时才需要database.schema.object
的语法。
如果您确实想使用SQL UDF来执行格式化,建议使用/制定SELECT语句,如:
SELECT ID,
dbo.GLFormatAccount(Acct1) AS Acct1,
dbo.GLFormatAccount(Acct2) AS Acct2,
dbo.GLFormatAccount(Acct3) AS Acct3
FROM MyTable