我在脚本中有一个表变量(不是存储过程).两个问题:
这是我的代码:
Declare @projectList table(
name varchar(40) NOT NULL);
Insert Into @projectList
Values ('BCR-00021')
Select *
From @projectList
Drop Table @projectList -- does not work
Run Code Online (Sandbox Code Playgroud) 在这个答案中,我看到了语法<=>
; 这是什么意思?它似乎是基于上下文的某种比较,但这就是我所能收集到的.部分背景:
sub rev_by_date { $b->[9] <=> $a->[9] }
my @sorted_files = sort rev_by_date @files;
Run Code Online (Sandbox Code Playgroud) 命令行参数的典型格式是:
myApp --myArg=myValue
Run Code Online (Sandbox Code Playgroud)
如果我想通过命令行传递一组键值对怎么办?就像是:
myApp --myList={arg1=val1;arg2=val2;arg3=val3...}
Run Code Online (Sandbox Code Playgroud)
由于似乎没有这种事情的标准,任何人都可以提供具有这种命令行参数输入的常用实用程序的示例吗?我戳了一些手册,但没找到.
编辑:我想知道输入应该如何格式化以及帮助文本可能是什么样子.
我在SQL Server(用.NET编写)中有一个用户定义的函数来清理文本.我想知道如何处理空输入.
这是C#中的函数:
[Microsoft.SqlServer.Server.SqlFunction]
public static SqlChars cleanEstActText(SqlChars input)
{
SqlChars cascadingSqlChar = removeNBSP(input);
cascadingSqlChar = optimizeFontTags(cascadingSqlChar);
return cascadingSqlChar;
}
Run Code Online (Sandbox Code Playgroud)
如果函数获取任何空数据,则这是SQL中的错误:
A .NET Framework error occurred during execution of user-defined routine or aggregate "removeNBSP":
System.Data.SqlTypes.SqlNullValueException: Data is Null. This method or property cannot be called on Null values.
System.Data.SqlTypes.SqlNullValueException:
at System.Data.SqlTypes.SqlChars.get_Value()
at UserDefinedFunctions.removeNBSP(SqlChars input)
Run Code Online (Sandbox Code Playgroud)
阅读SO和Google让我看到了OnNullCall属性,这看起来很有希望.
来自MSDN:
如果在方法调用中指定null(在Visual Basic中为Nothing)输入参数时调用该方法,则为true;否则为false.如果方法在其任何输入参数为null时返回null(在Visual Basic中为Nothing)值,则返回false(在Visual Basic中为Nothing).
听起来和我想要的完全一样; 如果我得到null,只需传递null.我不太确定如何实现它,所以我再次检查MSDN(http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.server.sqlmethodattribute.aspx),并重写第一行我的功能来自
[Microsoft.SqlServer.Server.SqlFunction]
Run Code Online (Sandbox Code Playgroud)
至
[Microsoft.SqlServer.Server.SqlMethod(OnNullCall = false, IsMutator = false, InvokeIfReceiverIsNull = false)]
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我在使用它时会在SQL中出错:
Cannot find either column …
Run Code Online (Sandbox Code Playgroud) 我正在为我的项目添加一个Read The Docs页面.现在,我想在我的Read The Docs主页上看到与我的自述文件中相同的内容.我的docs/index.rst
文件看起来像:
.. include:: ../README.rst
.. toctree::
:maxdepth: 2
:caption: Contents:
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Run Code Online (Sandbox Code Playgroud)
这主要是有效的,除了相对链接.例如,我的README包含:
See `INSTALL.rst`_ for advanced and detailed instructions.
Run Code Online (Sandbox Code Playgroud)
由于Sphinx在docs目录中构建了所有内容,因此期望INSTALL.rst
在docs目录中找到它.
由于Github从root渲染文件,因此它希望INSTALL.rst
在根目录中找到.
我怎样才能使Github和Read The Docs(Sphinx)正确呈现相对链接而不会有重复文件(或者最好是重复文件)?
以下是一些示例的代码片段:
theSheet = SpreadsheetNew("Rates","True");
SpreadsheetAddRow(theSheet,"4A,4B,4C,4D,4E,4F,4G,4H,4I,4J");
SpreadsheetAddRow(theSheet,"4K,4L,4M,4N,4O,4P,4Q,4R,4S,4T");
SpreadsheetAddRow(theSheet,"4U,4V,4W,4X,4Y,4Z,4D4,4F4");
Run Code Online (Sandbox Code Playgroud)
和
<cfheader name="content-disposition" value="attachment; filename=#GetTickCount()#.xlsx">
<CFHEADER NAME="Expires" VALUE="#now()#">
<cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" variable="#SpreadsheetReadBinary(theSheet)#"/>
Run Code Online (Sandbox Code Playgroud)
问题是"4D"和"4F"(而不是其他人)失去了'D'和'F'并被格式化为数字.
我试过这个:
formatText = StructNew();
formatText.dataformat="@";
SpreadsheetFormatColumns(theSheet,formatText,"1-10");
Run Code Online (Sandbox Code Playgroud)
我确认这将Excel中的格式设置为"文本",但现在我只看到文本格式单元格中的数字4!我也试过使用'字符,但是当它在Excel中打开时,它只显示'而不是字面化单元格.
这很奇怪; 谁知道会发生什么?
以下代码将显示 3 个内联块元素,它们共同居中。我想将这些元素显示在彼此之上,单独居中。
HTML:
<form>
<fieldset>
<legend>A box</legend>
<input type="Submit" name="Submit" value="Submit">
</fieldset>
<fieldset>
<legend>B box</legend>
<input type="Submit" name="NoOptions" value="No Options">
</fieldset>
<span>(Footnote)</span>
</form>
Run Code Online (Sandbox Code Playgroud)
CSS:
fieldset { display:inline-block; }
form { text-align:center; }
Run Code Online (Sandbox Code Playgroud)
我很确定(不完全) inline-block 确实是我想要的;我希望字段集尽可能小(如块),但我希望它们是文本对齐的(这只适用于内联内容)。有没有什么好的方法可以叠加呢?
注意:这些字段集可能包含块级元素。
我正在更新一段旧代码,它使用VBScript在IE中拉出一个窗口.出于某种原因,它喜欢在IE背后开放.谷歌给了我以下几行在VBScript中设置窗口焦点:
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("calculator")
Run Code Online (Sandbox Code Playgroud)
但是,当我在IE中运行它时,我收到错误"Object required:'WScript'."
有没有办法在IE中,或其他方式来做到这一点?我已经打开并操作Word文档没有任何问题.
编辑:为了澄清,我在浏览器(IE)中的<script type ="text/vbscript">标签中运行它,并且在我甚至调用AppActivate之前,代码在第一行崩溃.
更新:我的安全设置非常低; 所有ActiveX设置都处于启用状态(这是一个Intranet服务).我测试了这个问题的代码,计算器没有问题.事实上,我让AppActivate使用JavaScript,但它不能与VBScript一起使用.
使用JavaScript:
<script type="text/javascript">
function calcToFrontJ(){
wshShell = new ActiveXObject("WScript.Shell");
wshShell.AppActivate("Calculator");
}
</script>
Run Code Online (Sandbox Code Playgroud)
不工作VBScript:
<script type="text/vbscript">
Public Function calcToFrontV()
'Set WScript = CreateObject("WScript.Shell") 'breaks with or without this line
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("Calculator")
End Function
</script>
Run Code Online (Sandbox Code Playgroud)
我想我总是可以重构JavaScript,但我真的很想知道这个VBScript发生了什么.
最终答案:
<script type="text/vbscript">
Public Function calcToFrontV()
'must not use WScript when running within IE
Set WshShell = CreateObject("WScript.Shell")
WshShell.AppActivate("Calculator")
End Function
</script>
Run Code Online (Sandbox Code Playgroud) 我想利用SHA1 HMAC的PBKDF2算法(基于这个答案).
如何通过加密库来利用它?
我开始看man openssl
,但openssl passwd
命令(手册页)只支持少量算法.查看加密文档,evp模块具有EVP_BytesToKey方法.
仔细选择参数将提供PKCS#5 PBKDF1兼容的实现.但是,新应用程序通常不应使用此功能(例如,首选PCKS#5的PBKDF2).
这让我回到原来的问题,如何通过加密利用PBKDF2?我是否需要深入研究代码并调用非API公开的方法(例如PKCS5_PBKDF2_HMAC)?(如果是的话,是什么让它不被暴露?)
我正在尝试使用 OpenSSL 的PKCS5_PBKDF2_HMAC_SHA1方法。我认为如果成功则返回 0,否则返回其他值。我的问题是,非零返回值是什么意思?内存错误?使用错误?我的程序应该如何处理它(重试,退出?)?
编辑:一个必然的问题是,除了对方法本身进行逆向工程之外,还有什么办法可以解决这个问题吗?
openssl ×2
pbkdf2 ×2
sql-server ×2
coldfusion ×1
command-line ×1
comparison ×1
cryptography ×1
css ×1
excel ×1
format ×1
github ×1
html ×1
null ×1
operators ×1
perl ×1
python ×1
setfocus ×1
sql ×1
sqlclr ×1
standards ×1
vbscript ×1
wsh ×1