有没有一种简单的方法将存储在varchar中的日期以mon-yy格式(例如"Feb-09")转换为将任何无效值转换为null的日期时间.
我目前正在使用字符串操作和case语句,但它相当麻烦.
我正在寻找InstallShield的替代品.不幸的是,我们只有1个InstallShield许可证,它安装在开发人员的机器上.我正在考虑切换到WiX,但在阅读文档后,有一个产品ID GUID,升级代码GUID和一个包GUID.
我也知道GUID是由InstallShield创建的.如果我切换到维克斯可以开始使用新的GUID的还是我必须使用一些由InstallShield创建的GUID的?如果升级到产品发布将开关安装软管客户谁的旧安装程序?
我有一个非常简单的测试表值函数上SqlServer的项目: -
[SqlFunction(TableDefinition = "forename nvarchar(50)", FillRowMethodName = "TestFillRow", DataAccess = DataAccessKind.Read)]
public static IEnumerable TestConn(int ID)
{
using (SqlConnection con = new SqlConnection("context connection=true"))
{
//con.Open();
yield return "Anthony";
}
}
public static void TestFillRow(object obj, out string forename)
{
forename = (string)obj;
}
Run Code Online (Sandbox Code Playgroud)
请注意,连接上的"打开"当前已注释掉.部署后,我可以在SQL中执行如下操作: -
SELECT * FROM [dbo].[TestConn](1)
Run Code Online (Sandbox Code Playgroud)
一切正常.
现在我取消注释con.open(),它失败了: -
在此上下文中不允许数据访问.上下文是未使用DataAccessKind.Read或SystemDataAccessKind.Read标记的函数或方法,是从表值函数的FillRow方法获取数据的回调,或者是UDT验证方法.
我没有看到问题是什么,TestConn函数已经有了DataAccessKind.Read.
有人知道任何其他原因导致此错误?
好的,这是我的代码:
var xml:XML =
<xml>
<typeA amount1="500" amount2="300" amount3="250" date="2008-02-17"/>
<typeA amount1="500" amount2="300" amount3="250" date="2008-02-16"/>
<typeA amount1="500" amount2="300" amount3="250" date="2008-02-17"/>
<typeB amount1="500" amount2="300" amount3="250" date="2008-02-18"/>
<typeB amount1="500" amount2="300" amount3="250" date="2008-02-19"/>
<typeC amount1="500" amount2="300" amount3="250" date="2008-02-20"/>
<typeC amount1="500" amount2="300" amount3="250" date="2008-02-21"/>
<typeC amount1="500" amount2="300" amount3="250" date="2008-02-20"/>
</xml>;
trace(xml.typeA.(@date == "2008-02-16")); // no results
trace(xml.typeA.(@date == "2008-02-17")); // finds both
trace(xml.typeC.(@date == "2008-02-20")); // finds both
trace(xml.typeC.(@date == "2008-02-21")); // no results
Run Code Online (Sandbox Code Playgroud)
似乎只有在发现超过1时才发现它.
难道我做错了什么?
有没有办法写一个装饰器,以便以下工作?
assert 'z' not in globals()
@my_decorator
def func(x, y):
print z
Run Code Online (Sandbox Code Playgroud)
编辑:从anwser搬来
回答hop的"为什么?":语法糖/ DRY.
它不是关于缓存,而是基于x和y的值计算z(和z1,z2,z3,...).
我有很多相关的功能,我不想写
z1, z2, z3=calculate_from(x, y)
Run Code Online (Sandbox Code Playgroud)
在每个单一功能的开头 - 我会在某处弄错.如果这是c我用cpp做这个(如果这是lisp,我会用宏来做...),但我想看看装饰者是否可以做同样的事情.
如果它有帮助,我几乎肯定会将装饰器称为"precalculate_z",它肯定不会成为任何公共API的一部分.
我也许可以通过使用类基础结构获得类似的效果,但我想看看它是否可以用于原始函数.
经过大量的工作,我终于得到了一个相当复杂的查询,非常流畅地工作,并很快返回结果.
它在开发和测试方面运行良好,但现在测试速度已大大减慢.解释查询在开发上需要0.06秒并且在测试中大致相同,现在测试时间为7秒.
解释略有不同,我不确定为什么这将是dev的解释
-+---------+------------------------------+------+------------------------------ ---+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+------------+--------+-------------------------+------------ -+---------+------------------------------+------+------------------------------ ---+ | 1 | PRIMARY | | ALL | NULL | NULL | NULL | NULL | 5 | | | 1 | PRIMARY | tickets | ref | biddate_idx | biddate_idx | 7 | showsdate.bid,showsdate.date | 78 | | | 2 | DERIVED | shows | ALL | biddate_idx,latlong_idx | NULL …
在上周末进行了一些网络维护之后,我们的开发服务器遇到了一些麻烦,导致我们重启它.重启期间安装了一些更新,这可能是也可能不是因素.从那时起,我们无法连接到SQL Server 2005,甚至无法通过Management Studio连接到本地.根据用于连接尝试的协议,我们会收到以下两个错误之一:
管道的另一端没有进程.
远程主机强制关闭现有连接.
上述协议都已启用,并且SQL服务都运行良好(除了SQL Server代理,它也无法连接到SQL Server).我们还检查了Surface Area Configuration工具以确保它接受连接.
这不是证书问题(如在线看到的那样),因为我们不使用加密连接.
有什么建议?否则我们可能会采取全面重新安装.
**更新**
进一步的线索:
我有一些问题,取消注册一些事件接收者形成一个内容类型.内容类型和接收器由我自己部署和注册,因此我不会尝试删除任何MOSS内置或内部事件接收器.
我尝试使用以下代码片段将其归档:
using (SPSite site = new SPSite("http://wssdev06/"))
{
using (SPWeb web = site.RootWeb)
{
// web.AllowUnsafeUpdates = true;
SPContentType type = web.AvailableContentTypes[<ContentTypeName>];
while (type.EventReceivers.Count > 0)
{
type.EventReceivers[0].Delete();
}
type.Update();
// web.AllowUnsafeUpdates = false;
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,命令"type.Update()"抛出一个异常,告诉我无法修改集合.正如您在代码中看到的,我已经尝试了不同的方法来解决这个问题,因为允许不安全的更新或使用提升的权限运行此代码.但我总是得到同样的例外.
那么我做错了什么?
我想计算聚合列中所有值的校验和.
换句话说,我想做一些相当于
md5(group_concat(some_column))
Run Code Online (Sandbox Code Playgroud)
这种方法的问题是:
(如果你想知道,你可以确保值的连续符合一致的顺序,但是,不管你信不信,group_concat()接受其中的order by子句,例如group_concat(some_column order by some_column))
MySQL提供非标准的按位聚合函数BIT_AND(),BIT_OR()和BIT_XOR(),我认为这对这个问题很有用.在这种情况下,该列是数字,但我很想知道是否有一种方法可以使用字符串列.
对于此特定应用程序,校验和不必是安全的.
我尝试使用strftime()来获取格式化的时间戳.
char ft[ 256 ];
struct tm *tmp;
strftime( ft, 256, "%D - %T", tmp );
Run Code Online (Sandbox Code Playgroud)
我的问题是我得到了"13/02/60 - 03:07:-17958194".有没有办法正确显示秒数?(我使用的是Mac OS X和gcc)
sql-server ×3
mysql ×2
sql ×2
.net ×1
c ×1
c# ×1
checksum ×1
connectivity ×1
content-type ×1
datetime ×1
decorator ×1
e4x ×1
events ×1
formatting ×1
join ×1
moss ×1
python ×1
sharepoint ×1
sqlclr ×1
time ×1
timestamp ×1
wix ×1
xml ×1