标签: cursor

为什么人们如此讨厌SQL游标?

我可以理解为了避免因为开销和不便而不得不使用光标,但看起来有一些严重的光标 - 恐惧症 - 狂热正在进行,人们将不遗余力地避免使用光标.

例如,有一个问题询问如何使用游标执行明显无关紧要的操作,并使用带有递归自定义函数的公用表表达式(CTE)递归查询提出接受的答案,即使这会将可处理的行数限制为32 (由于sql server中的递归函数调用限制).这让我觉得它是系统寿命的可怕解决方案,更不用说为了避免使用简单的光标而付出的巨大努力.

这种疯狂仇恨的原因是什么?有一些"着名的权威"发布了针对游标的法特瓦吗?一些无法形容的邪恶是否潜伏在游戏的核心,腐蚀了儿童的道德或什么?

维基问题,答案比代表更感兴趣.

相关信息:

SQL Server快进游标

编辑:让我更精确:我理解不应该使用游标而不是正常的关系操作 ; 这是一个明智的选择.我不明白的是,即使游标是一种更简单和/或更有效的解决方案,人们也会不顾一切地避开光标,就像他们有傻瓜一样.困扰我的是非理性的仇恨,而不是明显的技术效率.

sql cursor

127
推荐指数
8
解决办法
10万
查看次数

如何将光标样式设置为没有hrefs的链接的指针

我有很多<a>没有href用于进行onclickjavascript调用的属性的html标签.这些链接没有光标的指针样式.它们有文本样式的光标.

如何在不使用href属性的情况下将光标样式设置为链接的指针?

我知道我可以添加href ="#".我在html文档中的很多地方都有这个,并且想知道如何在不使用href属性的情况下为链接创建游标样式指针.

html javascript css cursor hyperlink

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

为什么在查询sqlite数据库时需要创建游标?

我完全不熟悉Python的sqlite3模块(以及一般的SQL),这完全让我感到困惑.对cursor物体描述的充分缺乏(相反,它们的必要性)似乎也很奇怪.

这段代码是首选方式:

import sqlite3
conn = sqlite3.connect("db.sqlite")
c = conn.cursor()
c.execute('''insert into table "users" values ("Jack Bauer", "555-555-5555")''')
conn.commit()
c.close()
Run Code Online (Sandbox Code Playgroud)

这个不是,即使它工作得很好而没有(看似毫无意义)cursor:

import sqlite3
conn = sqlite3.connect("db.sqlite")
conn.execute('''insert into table "users" values ("Jack Bauer", "555-555-5555")''')
conn.commit()
Run Code Online (Sandbox Code Playgroud)

谁能告诉我为什么需要一个cursor
这看起来似乎毫无意义.对于我的脚本中访问数据库的每个方法,我应该创建并销毁一个cursor
为什么不直接使用该connection对象?

python sqlite cursor

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

没有ContentProvider的CursorLoader用法

Android SDK文档说该startManagingCursor()方法已被删除:

不推荐使用此方法.改为使用新的CursorLoader类和LoaderManager; 这也可以通过Android兼容包在旧版平台上使用.此方法允许活动根据活动的生命周期为您管理给定的Cursor生命周期.也就是说,当活动停止时,它将自动调用给定Cursor上的deactivate(),稍后重新启动它将为您调用requery().当活动被销毁时,所有托管游标将自动关闭.如果您的目标是HONEYCOMB或更高版本,请考虑改为使用LoaderManager,可通过getLoaderManager()获取

所以我想用CursorLoader.但是当我在构造函数中需要URI时,如何使用自定义CursorAdapter和不使用它?ContentProviderCursorLoader

android cursor android-contentprovider android-loadermanager android-cursorloader

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

使用jQuery设置鼠标焦点并将光标移动到输入的末尾

这个问题已经被问过几种不同的格式,但我无法得到任何在我的场景中工作的答案.

当用户点击向上/向下箭头时,我使用jQuery来实现命令历史记录.当点击向上箭头时,我用上一个命令替换输入值并将焦点设置在输入字段上,但希望光标始终位于输入字符串的末尾.

我的代码是这样的:

$(document).keydown(function(e) {
  var key   = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
  var input = self.shell.find('input.current:last');

  switch(key) {
    case 38: // up
      lastQuery = self.queries[self.historyCounter-1];
      self.historyCounter--;
      input.val(lastQuery).focus();
// and it continues on from there
Run Code Online (Sandbox Code Playgroud)

如何在焦点后强制光标放在"输入"的末尾?

javascript jquery focus cursor

92
推荐指数
10
解决办法
14万
查看次数

Eclipse游标更改为十字准线

我在Eclipse Java EE IDE中工作.使用它时,鼠标光标变为十字线.现在它在编辑器中显示为十字线.在哪里改变它?

java eclipse editor cursor

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

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

如何使用JavaScript获取光标下的单词?

如果我有例如

<p> some long text </p>
Run Code Online (Sandbox Code Playgroud)

在我的HTML页面上,我怎么知道鼠标光标例如在'text'一词之上?

javascript browser cursor dom-events

71
推荐指数
7
解决办法
2万
查看次数

在Android开发中使用Cursor有什么用?

我正在浏览互联网上关于数据库连接,检索的一些代码.我Cursor cur1= moveToFirst()在许多代码中看到,我想知道游标的用途是什么以及为什么我们使用moveToFirst()因为我是android的新手.

android cursor

71
推荐指数
4
解决办法
6万
查看次数

如何将选择结果分配给变量?

如何将选定的字段值存储到查询中的变量中并在更新语句中使用它?

这是我的程序:

我正在编写一个SQL Server 2005 T-SQL存储过程,它执行以下操作:

  1. 获取发票表中的发票ID列表并存储到Cursor
  2. 从游标 - > tmp_key变量获取发票ID
  3. foreach tmp_key从customer表中查找invoice client主要联系人ID
  4. 使用主要联系人ID更新客户端联系人密钥
  5. 关闭光标

这是我的代码:

DECLARE @tmp_key int
DECLARE @get_invckey cursor 

set @get_invckey = CURSOR FOR 
    select invckey from tarinvoice where confirmtocntctkey is null and tranno like '%115876'

OPEN @get_invckey 

FETCH NEXT FROM @get_invckey into @tmp_key

WHILE (@@FETCH_STATUS = 0) 
BEGIN 
    SELECT c.PrimaryCntctKey as PrimaryContactKey
    from tarcustomer c, tarinvoice i
    where i.custkey = c.custkey and i.invckey = @tmp_key

    UPDATE tarinvoice set confirmtocntctkey = PrimaryContactKey where invckey = @tmp_key …
Run Code Online (Sandbox Code Playgroud)

t-sql cursor

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