我有以下查询:
\n\nSELECT (CAST("META_SECT_ORDER" AS NVARCHAR2(3)) || \'#\' || "CODE") AS "SECTION"\nFROM "BMAN_TP2"."LOADER_TEMPLATE_SECTIONS"\nRun Code Online (Sandbox Code Playgroud)\n\nMETA_SECT_ORDER显然是整数,而CODE是字符串。
它输出 700 行,如下所示:
\n\nSECTION\n-------\n 0#F01\n 0#I05\n 1#I05\n 2#I05\nRun Code Online (Sandbox Code Playgroud)\n\nETC...
\n\n我知道这CAST不是必需的,但查询是由底层查询构建器组成的,该构建器也为 MsSQL Server 输出(其中CAST需要时)和 Postgres 输出。
奇怪的事实是,如果我提高NVARCHAR2我会得到不同的结果。例如:
当值 <= 80 时,我得到正确的结果(见上文)
值为 81,我得到 700 行\xec\xa5\xb4\xe1\x9e\x8b\xe9\x86\xb4\xe0\xb0\x80\xed\x89\xb6\xe0\xb5\x90\xe5\x87\xa8\xec\x93\xa5\xe6\x98\x81\xe8\x8f\x84\xe0\xa2\x8b\xe4\x96\xbc\xe8\xad\x95\xe8\xb2\x89\xe1\x82\x8b\xe4\x96\xbc\xe8\x8e\x80\xe9\x90\x8b
值为 82,我得到 700 行\xe0\xa8\x96\xe0\xac\x86
对于奇数值,在 [83-127] 中,我得到 700 个空行
对于偶数值,在 [84-128] 中,我得到 700 行\xda\xa2
值 >= 129,我得到 …
我们创建Id32并Id64构造了包装来自DB的整数和长值,因此可以通过Json转换器(使用专用的自定义转换器)将它们显式处理为ID.
问题是我们从一个Dictionary<string, object>实际上是类似DataRow对象读取这些数据,其中string部分是列的名称,object部分是值.
所以在我们使用此代码读取值之前:
int myVal = (int)row["COLUMN"]
Run Code Online (Sandbox Code Playgroud)
我们希望此代码在这些更改后也能继续工作.
但由于row["COLUMN"]是object(@ compile-time)隐式转换失败,即使它实际上是Id32(@运行时).
以下显然有效:
int myVal = (Id32)row["COLUMN"]
Run Code Online (Sandbox Code Playgroud)
但有没有办法解决这个问题而不修改读取值的代码?
这是结构代码:
public struct Id32
{
public readonly int Value;
public Id32(int id) { this.Value = id; }
public static implicit operator int(Id32 id) { return id.Value; }
public static implicit operator Id32(int id) { return new Id32(id); }
}
Run Code Online (Sandbox Code Playgroud) 当我在Swift中解包一个值时,我总是不确定如何命名包含它的变量:
override func touchesCancelled(touches: Set<UITouch>?, withEvent event: UIEvent?) {
if let unwrappedTouches = touches
{
....
}
}
Run Code Online (Sandbox Code Playgroud)
是否有一些受欢迎的Swift-coders命名约定?
我正在使用以下命令将 ID3 标签写入文件AVMetaDataItem
var soundFileMetadata = [AVMetadataItem]()
soundFileMetadata.append(createMetadata(AVMetadataiTunesMetadataKeyArtist, "MyArtist")!)
soundFileMetadata.append(createMetadata(AVMetadataiTunesMetadataKeySongName, "MySong")!)
soundFileMetadata.append(createMetadata(AVMetadataiTunesMetadataKeyAlbum, "MyAlbum")!)
soundFileMetadata.append(createMetadata(AVMetadataiTunesMetadataKeyUserGenre, "MyGenre")!)
soundFileMetadata.append(createMetadata(AVMetadataiTunesMetadataKeyComposer, "MyComposer")!)
Run Code Online (Sandbox Code Playgroud)
这是createMetadata方便的方法:
func createMetadata(tagKey: String, _ tagValue: AnyObject?,
keySpace:String = AVMetadataKeySpaceiTunes) -> AVMutableMetadataItem? {
if let tagValue = tagValue {
let tag = AVMutableMetadataItem()
tag.keySpace = keySpace
tag.key = tagKey
tag.value = (tagValue as? String) ?? (tagValue as? Int)
return tag
}
return nil
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试也写年份标签,但没有成功:
let comps = NSDateComponents()
comps.year = 2010;
let yearTag = AVMutableMetadataItem()
yearTag.keySpace = AVMetadataKeySpaceID3
yearTag.key …Run Code Online (Sandbox Code Playgroud) 我有这个代码:
dstCell.CELL_VALUE_INT = If(srcCell.CELL_VALUE_FLOAT IsNot Nothing,
Math.Round(CDbl(srcCell.CELL_VALUE_FLOAT)),
Nothing)
Run Code Online (Sandbox Code Playgroud)
当srcCell.CELL_VALUE_FLOAT为Nothing时,它会神秘地评估True部分!
有趣的是,正常的If语句正确评估为False部分:
If (srcCell.CELL_VALUE_FLOAT IsNot Nothing) Then
dstCell.CELL_VALUE_INT = Math.Round(CDbl(srcCell.CELL_VALUE_FLOAT))
Else
dstCell.CELL_VALUE_INT = Nothing
End If
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
感谢你!
编辑:CELL_VALUE_FLOAT是Nullable(Of Double),CELL_VALUE_INT是Nullable(整数)
在Quickwatch中,条件将correclty评估为False,但在运行时,If()函数的计算结果为True部分.
我正在使用此方法将共享对象保存在特定位置,但我无法提供路径
SharedObject.getLocal("save","how to give path here for window");
Run Code Online (Sandbox Code Playgroud)
这给出了以下错误
Error: Error #2130: Unable to flush SharedObject.
at Error$/throwError()
at flash.net::SharedObject/flush()
at OnlineDiagramEditor/SaveData_mouseDownHandler()[C:\Users\ruchidod\Adobe Flash Builder 4.6\OnlineDiagramEditor\src\OnlineDiagramEditor.mxml:3240]
at OnlineDiagramEditor/__SaveData_mouseDown()[C:\Users\ruchidod\Adobe Flash Builder 4.6\OnlineDiagramEditor\src\OnlineDiagramEditor.mxml:3522]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:13152]
at mx.managers::SystemManager/mouseEventHandler()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\SystemManager.as:2918]
Run Code Online (Sandbox Code Playgroud)
有时它给
Error: Error #2134: Cannot create SharedObject.
at flash.net::SharedObject$/getLocal()
at OnlineDiagramEditor/SaveData_mouseDownHandler()[C:\Users\ruchidod\Adobe Flash Builder 4.6\OnlineDiagramEditor\src\OnlineDiagramEditor.mxml:3236]
at OnlineDiagramEditor/__SaveData_mouseDown()[C:\Users\ruchidod\Adobe Flash Builder 4.6\OnlineDiagramEditor\src\OnlineDiagramEditor.mxml:3522]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[E:\dev\4.y\frameworks\projects\framework\src\mx\core\UIComponent.as:13152]
at mx.managers::SystemManager/mouseEventHandler()[E:\dev\4.y\frameworks\projects\framework\src\mx\managers\SystemManager.as:2918]
Run Code Online (Sandbox Code Playgroud) 我想知道是否有可能(甚至通过反射等)在调用的基类静态方法中获取调用者的派生类。
例如,我有一个定义了静态方法的基类:
public MyBaseClass {
public static void MyBaseClassStaticMethod() { /** ... **/ }
}
Run Code Online (Sandbox Code Playgroud)
和它的派生类:
public MyDerivedClass : MyBaseClass { }
Run Code Online (Sandbox Code Playgroud)
然后我打电话给:
MyDerivedClass.MyBaseClassStaticMethod()
Run Code Online (Sandbox Code Playgroud)
是否可以在方法内部MyBaseClassStaticMethod知道调用方的派生类型是什么?
(即MyDerivedClass)
我只需要一个字符串...
我需要一些关于SQL中Searched CASE WHEN语句的处理顺序的信息.
例如:
(CASE
WHEN Cells.Type <> 'UOM' THEN 0
WHEN Template_Colors.Uom_Case = 'ONE' THEN 1
WHEN Template_Colors.Uom_Case = 'MUL' THEN 2
END) AS CELL_WHAT_UOM
Run Code Online (Sandbox Code Playgroud)
0除非,我总是需要结果Cells.Type <> 'UOM'.
我知道SQL解析器通常从底部到顶部,但在Oracle中,查询似乎正常工作,因此我认为WHEN子句按它们的顺序处理.
这是100%保证的0情况下,先于其他处理?
或者我强制写道:
(CASE
WHEN Cells.Type <> 'UOM' THEN 0
WHEN Cells.Type = 'UOM' AND Template_Colors.Uom_Case = 'ONE' THEN 1
WHEN Cells.Type = 'UOM' AND Template_Colors.Uom_Case = 'MUL' THEN 2
END) AS CELL_WHAT_UOM
Run Code Online (Sandbox Code Playgroud)
...?
我需要有关Oracle 10g + SQL server 2008 …
var ret = -100.0 + (2.0 * 1.3) + (3.0 * 4.0) + (0.2 * 2.0 * 2.0) + 0.1 * 2.0 * 3.0
//output: Cannot invoke '+' with an argument list of type '($T24, $T31)'
Run Code Online (Sandbox Code Playgroud)
当我执行上述操作时,会发生错误,这很奇怪!对于快速计算来说,它是否过于复杂?
Postgres 方法array_position(array, element)与 SQL 中的其他事物一样,是基于 1 的。例如:
SELECT array_position(array[4,5,6], 5) -- returns 2
Run Code Online (Sandbox Code Playgroud)
但是,我正在执行以下查询来从 pg_catalog 检索非唯一索引及其列:
SELECT array_position(array[4,5,6], 5) -- returns 2
Run Code Online (Sandbox Code Playgroud)
第四个选择indkey在数组中搜索列的ordinal_position,因此对于每一列,它都会获取其在索引中的位置。
有趣的是,第一列的位置为 0,所以我必须添加+ 1它以使其基于 1。
随后的CASE表达式使用完全相同的值作为检索 的第 n 个元素的索引indoption,奇怪的是,即使[]运算符也是基于 1 的,也能正常工作:
SELECT (array[4,5,6])[2] -- returns 5
Run Code Online (Sandbox Code Playgroud)
这怎么样?
我目前使用的是 PG 9.6。
我正在尝试找到一个CRC32计算算法,它以正8字符HEX输出数据(例如winrar CRC).
发现所有的algorythms返回一个正/负整数,我不知道如何处理...
我有一个类型的数据库表字段string.该字段中的数据具有以下值:
二千〇一十四分之一
二千〇一十四分之二
现在我想增加这一领域的3/2014使用VB.NET.
请注意,1并且2不是一个月,它是序列号.
我怎样才能做到这一点?
c# ×3
swift ×3
vb.net ×3
sql ×2
.net ×1
case-when ×1
crc32 ×1
ddl ×1
if-statement ×1
indexing ×1
oracle ×1
oracle10g ×1
postgresql ×1
reflection ×1
string ×1