问题列表 - 第2646页

SELECT COUNT(*)与使用显式游标提取两次

我读过一本名为"Oracle PL SQL Programming"(第2版)的书,由Steven Feuerstein和Bill Pribyl撰写.在页99,有一点建议

除非你真的需要知道"命中"的总数,否则不要从表中"选择COUNT(*)".如果您只需要知道是否有多个匹配,只需使用显式游标获取两次.

你能举个例子向我解释这一点吗?谢谢.

更新:

正如Steven Feuerstein和Bill Pribyl建议我们不要使用SELECT COUNT()来检查表中的记录是否存在,任何人都可以帮我编辑下面的代码,以避免使用显式游标而不是使用SELECT COUNT(*)吗?此代码是在Oracle存储过程中编写的.

我有一个表emp(emp_id,emp_name,...),所以检查提供的员工ID是否正确:

CREATE OR REPLACE PROCEDURE do_sth ( emp_id_in IN emp.emp_id%TYPE )
IS
v_rows INTEGER;
BEGIN
    ...

    SELECT COUNT(*) INTO v_rows
    FROM emp
    WHERE emp_id = emp_id_in;

    IF v_rows > 0 THEN
        /* do sth */
    END;

    /* more statements */
    ...

END do_sth;
Run Code Online (Sandbox Code Playgroud)

oracle plsql database-cursor

11
推荐指数
3
解决办法
3万
查看次数

异步命令模式 - 异常处理

我正在为客户端/服务器应用程序中的"客户端"类实现异步命令模式.我以前做过一些套接字编码,我喜欢他们在Socket/SocketAsyncEventArgs类中使用的新异步模式.

我的异步方法如下所示:public bool ExecuteAsync(Command cmd);如果执行挂起则返回true,如果同步完成则返回false.我的问题是:即使出现异常,我是否应该始终调用回调(cmd.OnCompleted)?或者我应该从ExecuteAsync中抛出异常吗?

如果您需要,可以在这里找到更多细节.这类似于使用SocketAsyncEventArgs,但是我的类被称为SomeCmd而不是SocketAsyncEventArgs.

SomeCmd cmd = new SomeCmd(23, 14, 10, "hike!");
cmd.OnCompleted += this.SomeCmd_OnCompleted;
this.ConnectionToServer.ExecuteAsync(cmd);
Run Code Online (Sandbox Code Playgroud)

与Socket类一样,如果需要与回调方法(在本例中为SomeCmd_OnCompleted)进行协调,则可以使用ExecuteAsync的返回值来了解操作是否挂起(true)或操作是否同步完成.

SomeCmd cmd = new SomeCmd(23, 14, 10, "hike!");
cmd.OnCompleted += this.SomeCmd_OnCompleted;
if( this.ConnectionToServer.ExecuteAsync(cmd) )
{
    Monitor.Wait( this.WillBePulsedBy_SomeCmd_OnCompleted );
}
Run Code Online (Sandbox Code Playgroud)

这是我的基类的大大简化版本,但您可以看到它的工作原理:

class Connection
{
    public bool ExecuteAsync(Command cmd)
    {
        /// CONSIDER: If you don't catch every exception here
        /// then every caller of this method must have 2 sets of
                /// exception handling:
        /// One in the handler of …
Run Code Online (Sandbox Code Playgroud)

.net c# design-patterns exception-handling

3
推荐指数
1
解决办法
9318
查看次数

使用参数从方法名称创建选择器

我有一个SEL从当前对象获取的代码示例,

SEL callback = @selector(mymethod:parameter2);
Run Code Online (Sandbox Code Playgroud)

我有一个像这样的方法

 -(void)mymethod:(id)v1 parameter2;(NSString*)v2 {
}
Run Code Online (Sandbox Code Playgroud)

现在我需要转移mymethod到另一个对象,比如说myDelegate.

我试过了:

SEL callback = @selector(myDelegate, mymethod:parameter2);
Run Code Online (Sandbox Code Playgroud)

但它不会编译.

objective-c selector

57
推荐指数
3
解决办法
12万
查看次数

CSS最大高度属性

是否有一个很好的跨浏览器方式来设置max-heightDIV 的属性,当DIV超出时max-height,它会变成带滚动条的溢出?

css overflow

47
推荐指数
4
解决办法
8万
查看次数

Windows窗体应用程序的默认字体

每次我在我的应用程序中创建一个新表单时,它默认使用"Microsoft Sans Serif,8.25pt"字体.我没有改变它,因为我知道在这种情况下我的表单应该选择系统的默认字体.但是,当我运行我的应用程序时,使用的字体仍然是Segoe UI(我的Windows Vista操作系统中的默认系统字体).

为什么会这样?如何确保我的应用程序看起来像普通的Windows应用程序?

.net user-interface fonts appearance winforms

36
推荐指数
5
解决办法
5万
查看次数

如何在Unicode中将字符串设置为大写/小写?

这主要是一个我非常好奇的理论问题.(我不是试图通过自己编写或任何东西来做到这一点,我不是在重新发明轮子.)

我的问题是大写/小写等价表如何适用于Unicode.

例如,如果我必须在ASCII中执行此操作,我会使用一个字符,如果它在[az]范围内,我会将A和a之间的差值相加.

如果它不属于该范围,我会为10个左右的重音字符加上一个小等价表加上ñ.(或者,我可以只有一个包含256个条目的完整等价数组,其中大多数与输入相同)

但是,我猜测有一种更好的方法来指定Unicode中的等价,假设有数十万个字符,理论上,可以添加一种新语言或一组字符(我期待你当发生这种情况时,不需要修补窗口).

Windows是否为每个字符都有一个巨大的硬编码等价表?或者这是如何实现的?

一个相关的问题是SQL Server如何实现基于Unicode的重音不敏感和不区分大小写的查询.它是否有一个内部表格,告诉它éëeÉÉ和Ë都等同于"e"?

在比较字符串时,这听起来不是很快.

它如何快速访问索引?它是否已将索引值转换为其"基本"字符,对应于该字段的整理?

有谁知道这些东西的内部?

谢谢!

theory string unicode low-level uppercase

14
推荐指数
2
解决办法
1万
查看次数

如何以逗号分隔的字符串输出数组的内容?

我想将一个数组(如果ID)转换为逗号分隔值的字符串,以便在MySQL UPDATE查询中使用.我该怎么做?

php arrays

1
推荐指数
2
解决办法
8912
查看次数

如何在Waf中检查指定的头文件?

我正在使用waf来构建一个C程序.我想在配置阶段检查是否存在特定的头文件.有没有办法做到这一点?

waf

5
推荐指数
1
解决办法
1273
查看次数

有什么方法可以构建Google文档,例如查看PDF文件吗?

有没有人认为可以构建一个Google Docs样式的PDF文档查看器,它可以将文档转换为客户端计算机上不需要Adobe Reader的格式?

如果是这样,任何引用指向?无论是做过它的地方,还是如何去做的解释.

pdf asp.net

15
推荐指数
1
解决办法
2万
查看次数

HTML Escapes

鉴于:

CR = %0d = \r
LF = %0a = \n
Run Code Online (Sandbox Code Playgroud)

是什么

%3E,%3C

意思?

url-encoding

1
推荐指数
2
解决办法
1819
查看次数