隔离存储的持久性 - Silverlight是否将其视为缓存,在需要更多空间时删除项目,或仅在用户或应用程序请求时?
似乎还有各种各样的方法来识别孤立的存储 - 机器,应用程序,域,......我遇到的问题是这些都与用户有关.是否可能,如果是这样,创建并稍后检索具有以下属性的隔离存储文件:
基本上我希望隔离存储在应用程序更新和不同用户登录时保持不变.
这是一个包含TRY CATCH ROLLBACK模式的嵌套存储过程的问题的后续跟进 ?
在catch块中,我使用存储过程通过读取ERROR_MESSAGE(),ERROR_PROCEDURE(),ERROR_LINE()等来报告(重新加载)错误.如此处所述,我还有一个检查,以便它可以确定错误是否有已经被重新抛出(这种情况发生在嵌套的存储过程中,因为错误信息通过每个TRY CATCH块向下传递).
我想做的是,直接在'ReportError'中,或者间接在我的模式中(如第一个问题中所述),记录一个堆栈跟踪 - 所以当ReportError检测到它正在接收自己抛出的错误时,它会追加堆栈的下一级到错误消息.这可以帮助我避免我看到来自某个小实用程序存储过程的错误消息的情况,而无需知道调用它的内容.如果我尝试直接在ReportError中执行此操作,则会失败,因为重新抛出错误会将自身报告为来自ReportError - 只有原始错误可见.
ReportError是否有一些方法可以在SQL Server中执行堆栈跟踪,而无需将参数传递给每个存储过程,也无需使用#temp表手动维护这样的跟踪?基本上我想要一个ERROR_PROCEDURE()和ERROR_LINE()的递归调用.
我想在SQL Server中创建一个结合了几个数据库元数据的视图.
我想要的一个元数据存在于sys.syscomments表中 - 相关列如下:
id colid text
---- ------ -------------
1001 1 A comment.
1002 1 This is a lo
1002 2 ng comment.
1003 1 This is an e
1003 2 ven longer c
1003 3 omment!
Run Code Online (Sandbox Code Playgroud)
如您所见,"text"列中的数据如果超过最大长度(SQL Server中为8000字节/ 4000个字符,我的示例中为12个字符),则会分成多行.colid标识将文本重新组合在一起的顺序.
我想在我的视图中创建查询/子查询来重新组装sys.syscomments表中的注释,以便我有:
id comment (nvarchar(max))
---- ----------------------------------
1001 A comment.
1002 This is a long comment.
1003 This is an even longer comment!
Run Code Online (Sandbox Code Playgroud)
任何建议或解决方案?速度在任何方面都不重要,但简单性和低影响力(我想避免CLR函数等 - 理想情况下整个事情将被包含在视图定义中).我已经研究了一些基于XML的建议,但结果产生了填充XML转义字符串的文本.
对于SQL Server 2008,time数据类型具有可选的精度参数(默认值为7).使用此功能,您可以控制存储和显示的小数位数.
DECLARE @time time(3)
SET @time = GETDATE()
PRINT @time
Run Code Online (Sandbox Code Playgroud)
上面会打印出这个,
10:47:25.347
Run Code Online (Sandbox Code Playgroud)
文档说最小的精度是time(0).这将存储和打印10:47:25.
是否有可能进一步降低精度,消除/零秒:10:47?
我知道这可以手动完成,添加一个约束(DATEPART(seconds, @time) = 0),对数据输入执行数学运算以将秒数归零,并在打印时手动格式化,但我正在寻找一种简单的方法来将表中的字段定义为"小时"和分钟",与该date类型允许您将字段定义为"只是日期,没有时间组件"的方式非常相似.
简单的部分:
使用下拉列表在Visual Studio 2010项目中定位.NET 2.0框架.
困难的部分:
是否可以定位特定的语法版本 - 例如var s = "hello world"VS2008及更高版本中的有效语法糖,但不能在VS2005中编译.VS2010可以配置为在编译时标记这个吗?
c# syntax-checking backwards-compatibility visual-studio-2010
我有一种情况,其中一些应用程序范围的值存储为常量 - 这是一个要求,因为它们在属性定义中是必需的(属性必须在编译时解析,因此即使静态成员也不起作用).
我希望也能够在XAML文件中重用这些值.所以,如果我有这样的常量:
public class MyConstants
{
public const string Constant1 = "Hello World";
}
Run Code Online (Sandbox Code Playgroud)
我想以一种方式将它们绑定到XAML中定义的控件,如下所示:
<TextBlock Text="{Binding MyConstants.Constant1}" />
Run Code Online (Sandbox Code Playgroud)
这可能是直接的吗?我查看了绑定示例,但似乎无法找到这种情况.
可能会有一些我可以做的工作(可能绑定转换为通过反射动态拉动常量字段的方法的参数)
在控制器中我有两个值:
public List<String> StringValue {get; set;}
public List<String> ListValue {get; set;}
Run Code Online (Sandbox Code Playgroud)
ListValue在构造函数中初始化,并添加了几个字符串.在这一点上,我可以在VisualForce页面中使用{!StringValue}和{!ListValue [1]}来引用它们.特别是列表一个是焦点 - 我甚至可以添加伪常量(getters)作为索引,使{!ListValue [nameIndex]}成为有效的引用.
但是,在尝试设置列表值而不是简单的字符串值时,我遇到了异常.
<apex:param value="123" assignTo="{!ListValue[1]}" />
Run Code Online (Sandbox Code Playgroud)
例外是 java.lang.ClassCastException: java.lang.String cannot be cast to common.formula.FormulaFieldReference
我想我理解问题的基础 - Salesforce无法创建包含索引参数的setter引用(意味着只能引用带有单个参数的setter).
有什么方法可以解决这个问题,还是只需要创建大量的ListValue1,ListValue2变量和相关代码?
有人可以帮我翻译这个查询到LINQ吗?我找不到翻译它的好方法,谢谢!
SELECT
C.id,
C.id_old,
C.cus_id,
C.namefirst,
C.title,
CP.id as 'cus_phone_jct.id',
CP.contact_id,
CP.phone_id,
CP.ext,
P.id as 'cus_phone.id',
P.phone,
P.typ_id,
P.status_id,
P.donotcontact
FROM cus_contact C
LEFT OUTER JOIN cus_phone_jct CP ON C.id = CP.contact_id
LEFT OUTER JOIN cus_phone P ON CP.phone_id = P.id
WHERE C.cus_id = 4
Run Code Online (Sandbox Code Playgroud) 我正在寻找向表添加约束的最佳方法,该表实际上是记录与该表中其余记录之间关系的唯一索引.
想象一下下表描述了各种警卫的巡逻(来自之前的守望者场景)
PK PatrolID Integer
FK GuardID Integer
Starts DateTime
Ends DateTime
Run Code Online (Sandbox Code Playgroud)
我们从一个约束开始,指定开始和结束时间必须是逻辑的:
Ends >= Starts
Run Code Online (Sandbox Code Playgroud)
不过,我要添加另一个逻辑约束:一个特定的后卫(GuardID)不能在同一时间两个地方,这意味着任何记录的开始/结束指定的时间内不应该由任何其他巡逻定义的时段重叠同样的警卫.
我可以想到两种尝试解决这个问题的方法:
创建一个INSTEAD OF INSERT触发器.然后,此触发器将使用游标通过INSERTED表,检查每条记录.如果任何记录与现有记录冲突,则会引发错误.我对这种方法的两个问题是:我不喜欢在现代版本的SQL Server中使用游标,而且我不确定如何为UPDATE修改相同的逻辑.INSERTED中的记录的复杂性也可能相互冲突.
第二种看似更好的方法是创建一个调用用户定义函数的CONSTRAINT,传递PatrolID,GuardID,Starts和Ends.然后,该函数将执行WHERE EXISTS查询,检查与GuardID/Starts/Ends参数重叠的任何记录,这些记录不是原始的PatrolID记录.但是我不确定这种方法可能产生的副作用.
第二种方法更好吗?有没有人看到任何陷阱,例如一次插入/更新多行(这里我很担心,因为该组中的行可能会发生冲突,这意味着他们"插入"的顺序会有所不同).有没有更好的方法来做到这一点(比如一些花哨的INDEX技巧?)
好的,所以我想要一份报告,不要求最终用户了解编写和自定义报告或记忆字段值的所有信息.我最终希望用户能够在我创建的顶点页面上使用一组预先填充的基于SelectList的过滤器来过滤他们的报告.
到目前为止,我只能为每个字段过滤一个值:
所以这一切都很好 - 而不是让用户记住有效的字段值并混淆报告过滤器,他们可以指向和点击东西 - 这么简单的销售人员可以做到这一点.
但现在我想按状态列表(或其他一些文本字段)进行过滤.我可以轻松地获得具有SelectList的multiselect属性的String []状态列表,但我不知道如何将其应用于报表.在SQL意义上,我想在报告查询中添加"State = x OR State = y OR State = Z"或"State IN(x,y,z)"where condition.
我怎么能这样做 - 通过一个字段的有效值列表过滤报表,并从控制器可编程地执行它?
是否有一些方法可以即时编程创建临时报告?克隆"模板"报告,然后根据需要添加OR过滤器?
有没有办法将一组对象传递给报表?有些报告会返回很多结果,所以这看起来很危险.
在执行PageReference重定向时,Redirect属性指出当它为false时,所有状态信息都会保留,但目标页面必须具有相同的控制器 - 是否有办法使用带报告的控制器来自定义其逻辑?
我为我的Account对象设置了几种记录类型.对于每种记录类型,我创建了一个独特的页面布局(应用程序设置 - >自定义 - >帐户 - >页面布局),并通过页面布局分配与正确的记录类型相关联.
我有一个相关的子对象(如Contacts),其记录可以通过其相关列表在页面布局上看到.但是,每个记录类型对相关列表中的记录具有不同的相关字段.我试图更改页面布局上的列列表,但是当我更改一个页面布局上的列时,它会在所有页面布局上更改.
是否有一种方法可以使2页面布局显示相同类型的子对象但具有不同的列?例如,我可以创建两个帐户页面布局,但相关的联系人列表中显示了不同的列?
salesforce ×3
c# ×2
silverlight ×2
sql ×2
apex-code ×1
constraints ×1
data-binding ×1
filter ×1
linq ×1
precision ×1
reporting ×1
sql-server ×1
sql-view ×1
stack-trace ×1
t-sql ×1
time ×1
triggers ×1
try-catch ×1
validation ×1
visualforce ×1