如何在Oracle中的简单SELECT查询语句中使用包变量?
就像是
SELECT * FROM MyTable WHERE TypeId = MyPackage.MY_TYPE
Run Code Online (Sandbox Code Playgroud)
是否可能或仅在使用PL/SQL时(在BEGIN/END中使用SELECT)?
我想编写一个Oracle函数,它将多个步骤中的一些数据收集到一个集合变量中,并在SELECT查询中使用该集合数据,就像在这个非常简单的示例中一样:
CREATE OR REPLACE FUNCTION TESTFUNC01 RETURN VARCHAR2 AS
-- INT_LIST is declared globally as "TYPE INT_LIST IS TABLE OF INTEGER"
MyList INT_LIST := INT_LIST();
MyName VARCHAR2(512);
BEGIN
MyList.Extend(3);
MyList(0) := 1;
MyList(1) := 2;
MyList(2) := 3;
SELECT Name INTO MyName
FROM Item WHERE ItemId NOT IN MyList;
RETURN MyName;
END TESTFUNC01;
Run Code Online (Sandbox Code Playgroud)
不幸的是,"NOT IN MyList"部分不是有效的SQL.有没有办法实现这个目标?
是否有一种简单的方法可以在Delphi中对字节变量进行位反转,以便最高有效位(MSB)获得最低有效位(LSB),反之亦然?
Delphi函数EncodeDate/DecodeDate似乎只能处理1.1.0001之后的日期.是否有一些可以处理BC tDateTime值的EncodeDate/DecodeDate实现?
我写了一个小应用程序,它在内存中的图像上绘制文本并将它们写入文件.基本的Delphi代码看起来类似于:
var
Canvas : tCanvas;
Text : WideString;
TextRect : tRect;
begin
Canvas := Bitmap.Canvas;
Canvas.Brush.Color := clBlack;
Canvas.Pen.Color := clBlack;
Canvas.Font.Name := 'Courier New';
Canvas.Font.Size := 11;
Canvas.Font.Color := clWhite;
TextRect := ...; // calculate text position
DrawTextW(Canvas.Handle, PWideChar(Text), Length(Text), TextRect, DT_NOCLIP or DT_NOPREFIX or DT_SINGLELINE or DT_CENTER or DT_VCENTER);
end;
Run Code Online (Sandbox Code Playgroud)
遗憾的是,绘制的文本因运行应用程序的计算机的ClearType设置而异.我希望在我的应用程序中有一个一致的输出,无论本地ClearType设置如何(输出都不会直接显示到屏幕上).是否有一些Win32 API选项来覆盖本地ClearType设置?
当使用 Rust 中的 Serde 箱时,我尝试将#[serde(try_from = String)] 容器属性添加到实现的类型中FromStr,从而可以从字符串中解析。不幸的是,这对于 Serde 来说似乎还不够,从编译器错误消息来看,很明显我TryFrom<String>也必须手动实现。
为什么TryFrom<String>不为所有实现的类型自动实现FromStr?为什么字符串的错误转换有一个单独的特征?这两个特征有什么区别?
当我编译Delphi项目并指示编译器创建内存映射文件(* .map)时,它在文件顶部包含对已用内存段的描述。
例:
Start Length Name Class
0001:00401000 00475600H .text CODE
0002:00877000 00004998H .itext ICODE
0003:0087C000 00030410H .data DATA
0004:008AD000 00009170H .bss BSS
0005:00000000 00000278H .tls TLS
Run Code Online (Sandbox Code Playgroud)
查看PE节表时,仅列出 “ .text”和“ .itext”以外的其他节。
该“ .itext”段的目的是什么,它与“ .text”有什么区别?它是Delphi / Borland / Embarcadero的特定扩展吗?
如何将 WSDL 或 WADL 转换为打字稿代码?如果我不能,我该如何处理来自更改签名的服务器的大型 dto?我有办法知道它已经改变了吗?
谢谢
如何在Delphi 2006中创建随机的64位整数值?内置的基于整数的Random()函数似乎只返回0到2 ^ 31之间的值.
C中的CONTAINING_RECORD宏根据结构中字段成员的地址返回结构/记录类型变量的基址.在我只能将预定义的记录指针传递给某些触发回调的Windows API函数的情况下,它非常有用.
例如,如果我有一些类型,如:
type
tInnerRecord = record
x, y : integer;
end;
pInnerRecord = ^tInnerRecord
tOuterRecord = record
field1 : integer;
inner : tInnerRecord;
field2 : integer;
end;
pOuterRecord = ^tOuterRecord;
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这样的事情:
procedure SomeCallback( pIn : pInnerRecord ); stdcall;
var
Out : pOuterRecord;
begin
Out := CONTAINING_RECORD(pIn, tOuterRecord, inner);
Out.field1 := pIn.x + pIn.y;
end;
Run Code Online (Sandbox Code Playgroud)
在我的特定情况下,我想传递我的对象指针以及ReadFileEx(Windows异步I/O)的重叠数据指针,以便我可以访问回调中的对象.
在Delphi(2006)中是否有一些提供类似功能的等效功能?