在C# Windows应用程序中使用自定义彩色光标
我正在开发一个SDG(单个显示组软件)应用程序,为此,我需要多个光标(最简单的不同颜色).我知道,对于C#,您可以使用黑白光标,这无法解决我的问题. 解决方案 光标类的做法相当不错.由于某种神秘的原因,它使用了传统com界面(ipicture),该界面不支持有色和动画光标.它可以用一些相当丑陋的肘油脂来解决: using System; using System.ComponentModel; using System.Windows.Forms; using System.Runtime.InteropServices; using System.Reflection; static class NativeMethods { public static Cursor LoadCustomCursor(string path) { IntPtr hCurs = LoadCursorFromFile(path); if (hCurs
2 2024-04-11
编程技术问答社区
你想在你的安卓应用中集成一个基于POJO或Cursor的库吗?
我的公司想为Android发布图书馆,以便其他人可以轻松地将我们的内容集成到其自定义应用中. 现在,我仍然非常不确定如何提供内容.现在,我正在使用Pojos在项目中提供数据. 我正在关注辩论" Pojos vs. Cursors" 光标的青睐.我还曾看过一个示例有人将解析的资源存储在sqllite-db中,并通过光标以后访问它. 我知道,与Pojos相比,光标具有许多优势.但是,当您需要实现库时,您想与光标弄乱吗?你们中的一些人可能也写了这样的lib.您使用了什么,为什么? 其他Libs如何做... Facebook似乎使用pojos: 响应格式:服务器响应是JSON字符串. SDK提供了一个将其转换为jsonobject的util.parsejson()方法,可以检查和访问其字段和值. 解决方案 我们在上一个项目中使用了光标方法,发现它很麻烦.尤其是必须检查光标中是否实际上有东西,迭代它,找到正确的值索引,正确关闭它..我不想一遍又一遍地做的
6 2024-02-16
编程技术问答社区
在数据库中循环时,光标不一致
我有几个非常相似的数据库(my-db-1,my-db-2,my-db-3,my-db-4).我想在每个数据库中执行相同的存储过程.我决定使用光标.但是,我遇到了一些奇怪的问题.首先,这是我通过SQL Server Management Studio 2008执行的简单代码. DECLARE @db_cursor CURSOR DECLARE @name varchar(255) DECLARE @Sql nvarchar(4000) SET @db_cursor = CURSOR FOR SELECT name FROM sys.databases WHERE name LIKE 'my-db-%' OPEN @db_cursor FETCH NEXT FROM @db_cursor INTO @name WHILE @@FETCH_STATUS = 0 BEGIN SET @Sql = 'Use [' + @name + ']; PRI
24 2023-10-27
编程技术问答社区
TSQL父>子>子的重复没有光标
我正在创建一个SQL 2008 R2存储程序以复制一排及所有孩子. 这是一个三层设置,与父母,孩子和子女 给定父母的ID,我需要创建重复. 我已经使用fast_forward cursor解决了它. 我知道我也可以在行中循环进行一段时间,但我认为这会比该光标方法更快.你的想法是什么? 是否有更好的方法可以在不使用光标的情况下完成此任务? 编辑:我考虑的另一个选项是创建一个临时表,持有tblacStages记录的旧/新pkid. tblacStages可能有1到20个相应的行(Tblacupgrade可能有3行,每个TBLACSTAGES行) CREATE PROCEDURE [dbo].[spDuplicateACUnit] @pACUnitID bigint = 0 AS BEGIN SET NOCOUNT ON; DECLARE @NewACUnitID bigint = 0 INSERT INTO TBLACUnits ([col1]
10 2023-10-27
编程技术问答社区
PLS-00221:'C1'(光标)不是程序或未定义
我正在创建一个包裹,以与jasper报告一起使用,我知道我需要SYS_REFCURSOR,但我似乎无法循环我的光标:例如 create or replace PACKAGE BODY fin_statement_spool AS PROCEDURE fin_main_spool(vacid in VARCHAR2, vfromdate in date, vtodate in date,c1 out SYS_REFCURSOR,c2 out SYS_REFCURSOR) AS
12 2023-09-30
编程技术问答社区
SQL-Looping through ever row of table in mysql?
所以我有2个表格,communication和movement. communication具有列fromID,timestamp具有呼叫者的ID,并进行了呼叫的时间.然后,我有另一个表格movement,具有ID,timestamp,x,y,它具有一个人的ID,其位置(x,y),以及它们在该位置的时间. 我想编写一个看起来像这样的查询: For every single row of communication(R) SELECT * FROM movement m WHERE m.ID = R.fromID && m.timestamp
8 2023-09-30
编程技术问答社区
从存储过程中执行存储过程时,如何禁用查询结果?
在存储过程中,在光标中调用了另一个存储过程.对于每个呼叫,SQL Management Studio结果窗口都显示结果.光标循环超过100次,在那时,结果窗口放弃了错误.有没有办法阻止光标内的存储过程输出任何结果? WHILE @@FETCH_STATUS = 0 BEGIN EXEC @RC = dbo.NoisyProc SELECT @RValue2 = 1 WHERE @@ROWCOUNT = 0 FETCH NEXT FROM RCursor INTO @RValue1, @RValue2 END 谢谢! 解决方案 您可以将结果插入临时表,然后丢弃临时表 create table #tmp (columns) while ... insert into #tmp exec @RC=dbo.NoisyProc ... end drop table #tmp 否则,您是否可以修改被调用的pro
38 2023-09-30
编程技术问答社区
解决光标问题
我有一个问题.我正在研究光标.每次获取最后的记录并打印其数据后,光标都会打印出加法线.要理解我的意思,请考虑以下示例示例: 我想打印有关10个客户的信息. USE Northwind GO DECLARE myCursor CURSOR FOR SELECT TOP(10) ContactName FROM Customers DECLARE @RowNo int,@ContactName nvarchar(30) SET @RowNo=1 OPEN myCursor FETCH NEXT FROM myCursor INTO @ContactName PRINT LEFT(CAST(@rowNo as varchar) + ' ',6)+' '+ @ContactName SET @RowNo=@RowNo+1 SET @ContactName='' WHILE @@FETCH_STATUS=0 BEGIN FETCH NEXT FROM m
24 2023-09-24
编程技术问答社区
SQL Server 游标参考(语法等)
我不经常使用SQL Server光标,但是当我这样做时,我总是必须查找语法和选项. 所以我想问一下,网络上最好的SQL Server光标参考是什么? 我正在寻找一个引用,该参考可以解释所有(主要?)选项(即fast_forward),并且还显示了如何使用它的快速片段. (即如何通过光标实现循环,并以良好的练习来检查@@ fetch_status variable.) 最好的问候, 弗兰克 快速更新:我正在寻找快速参考的平衡,但详细的详细信息以查看我的选择.举个例子. MSDN是一个很好的参考指南,但它的细节太多. 理想情况下,参考应该简洁. 进一步更新:我仍在寻找来源.如果有人发布适合我简洁标准的好来源,我将接受该答案... 解决方案 我将从光标的MSDN帮助页面开始... 其他解决方案 如何在没有光标的情况下执行SQL Server行列操作: per/operations_no_cursors_p1.aspx SQL Server
16 2023-09-23
编程技术问答社区
带游标的存储过程调用引发无效的列名异常
我们有一个Spring Boot应用程序,我们需要在其中连接到Oracle DB并通过存储过程获取数据.我们的每个存储过程都有REF_CURSOR作为OUT参数.我正在使用@NamedStoredProcedureQuery和@Entity注释尝试相同的尝试.我们在pom.xml中使用ojdbc14.jar和application.properties in application.properties文件.在执行我的代码时,我会得到异常无效列名.同样在实体类中,我必须引入带注释@Id的字段,尽管我存储的过程的REF_CURSOR没有返回此类字段.这是一个问题吗?另外,不能定义@Id字段不是一个选项,因为Hibernate会引发异常.任何提示都将不胜感激. 实施和问题与问题非常相似 无效列列在打电话时通过JPA 2.1 与Ref_cursor一起存储的Oracle存储过程 ,但没有答案 解决方案 简单的示例如何实现: 数据库模式. create table
24 2023-09-13
编程技术问答社区
游标在Python的DB-API中是如何工作的?
我一直在使用rdbms'(mysql和postgresql),我注意到我真的不明白如何使用光标. 通常,一个通过客户端DB-API(例如Psycopg2或MySQLDB)将其脚本连接到DB: connection = psycopg2.connect(host='otherhost', etc) 然后创建一个光标: cursor = connection.cursor() 然后可以发出查询和命令: cursor.execute("SELECT * FROM etc") 现在,我想知道查询的结果在哪里?是在服务器上吗?还是我的客户端和服务器上的一点?然后,如果我们需要访问一些结果,我们将获取em: rows = cursor.fetchone() 或 rows = cursor.fetchmany() 现在说,我不检索所有行,而是决定执行另一个查询,以前的结果会怎样?是他们的开销. 另外,我是否应该为每种命令的每种形式创建一个
22 2023-07-25
编程技术问答社区
明确的打开和关闭游标
我一直在数据库光标上阅读,并且我看到的所有示例代码都明确打开并关闭了光标.我只用了几次,我从来没有这样做.谁能告诉我为什么有必要这样做?我知道如果您不关闭光标,您可以创建内存泄漏,但我从来不必打开一个. 谢谢 解决方案 如果您的光标是全局的(我想您使用了这不是问题的本地光标,因为它们在离开范围时已关闭),您必须明确关闭它们. 不关闭全局光标有几个问题 用于光标的内存未被划分 您可以打开最多数量的光标.最终,您将无法创建另一个,因为您将打开最大数量的光标数. 如果您问为什么我必须使用光标? - 有时您需要循环穿过行(例如使用常规循环).您无法在以设置为导向的方法中执行此操作 - 您必须使用光标. 其他解决方案 您只需要打开和关闭显式光标. DECLARE l_dept dept%rowtype; BEGIN -- implicit SELECT INTO SELECT * INTO l_dept FROM dept WHERE deptno = :
14 2023-06-08
编程技术问答社区
从一个pl/sql块中返回数据行
我想编写PL/SQL代码,该代码利用光标和批量收集来检索我的数据.我的数据库的行按数百万计的顺序排列,有时我必须查询它以根据客户的要求获取几乎所有记录.我分批进行查询和后续处理,以便不拥挤服务器并向客户端显示增量进度.我已经看到,挖掘以后的批次需要更多的时间,这就是为什么我试图通过光标做到这一点. 这是我的主SQL查询周围应该简单的PL/SQL: declare cursor device_row_cur is select /my_query_details/; type l_device_rows is table of device_row_cur%rowtype; out_entries l_device_rows := l_device_rows(); begin open device_row_cur; fetch device_row_cur bulk collect into out
16 2023-06-08
编程技术问答社区
PL/SQL游标的变量/文字替代?
我经常必须在Oracle PL/SQL中调试光标.我的问题是,我最终得到了几条大型光标,其中有50多个变量和常数.我正在寻找一种获取声明版本的方法,其中常数和变量被其文字所取代.如果我想找出为什么光标没有显示记录/线路,我应该最终替换这些变量/文字30分钟,然后才能运行Select并评论一些陈述以找出问题. 所以如果我有 之类的东西 CURSOR cFunnyCursor ( v1 NUMBER, v2 NUMBER ) IS SELECT * FROM TABLE WHERE col1 = v1 AND col2 != v2 AND col3 = CONSTANT; 我需要这样的选择: SELECT * FROM TABLE WHERE col1 = 123 AND col2 != 5324 AND col3 = 'ValueXyz'; 有什么方法可以以这种方式获取/记录选择,以便我可以将其复制在新的SQL窗口中,以便我不
52 2023-06-08
编程技术问答社区
将游标的数据并入一个
我已经存储了几次存储过程.我需要联合和返回数据,这是执行第二个过程后拥有的. 我可以以某种方式将几个光标的联合数据彼此转移到光标吗?没有临时表或类似表的数据类型? 编辑:联合的光标计数实际上是n(其中n是1、2、3等,通过另一个过程检测). 例如: CREATE OR REPLACE PROCEDURE proc_data ( data_out OUT SYS_REFCURSOR ) IS BEGIN OPEN data_out FOR SELECT '1' NUM FROM dual; END; / CREATE OR REPLACE PROCEDURE proc_result ( data_out OUT SYS_REFCURSOR ) IS data1 SYS_REFCURSOR; data2 SYS_REFCURSOR; BEGIN PROC_DATA(data1); PROC_DATA(data2); -- select data1 and
32 2023-06-08
编程技术问答社区
oracle存储过程(w/cursors)是如何工作的?
我有一个以下Oracle存储过程 CREATE OR REPLACE PROCEDURE getRejectedReasons ( p_cursor IN OUT SYS_REFCURSOR) AS BEGIN OPEN p_cursor FOR SELECT * FROM reasons_for_rejection; END; 但是,当我在sql-developer中运行此存储过程时,我什么都看不到.我只看到这样的东西: Connecting to the database oracleLocal. Process exited. Disconnecting from the database oracleLocal. 我来自MS SQL Server,并且在运行这样的存储过程时习惯于查看实际结果.该存储过程是否不返回结果,因为我正在使用光标? 解决方案 存储过程正在返回某些东西,只是您对结果没有做任何事情. 您只需在SQLDE
38 2023-05-13
编程技术问答社区
在MySQL中使用游标时,从DECLARE语句调用存储过程
我试图在MySQL中使用光标多次调用存储过程.我想将其称为my_id的价值,存在于某个临时表中,并遍历这些ID并将结果串联. 无论如何,我在此过程的这一部分遇到了麻烦: DECLARE curs CURSOR FOR SELECT something FROM somewhere; 我不想从某个地方选择一些东西.我想要 之类的东西 DECLARE curs CURSOR FOR CALL storedproc(@an_id); DECLARE语句可以用于调用存储过程吗?还是必须仅与SELECT相关联?谷歌搜索,恐怕后者就是这种情况. 解决方案 使用光标需要一些标准的样板代码才能包围它. 使用光标从表中调用每组值的存储过程,基本上需要相同的样板.您SELECT您要通过的值,无论您从何处获取它们(可能是临时表,基础表或视图,并且可以包含对存储功能的调用),然后用这些值调用该过程. 我已经写了下面的样板代码的句法有效示例,并注释以解释每个
62 2023-04-08
编程技术问答社区
如何在GAE上用jpa使用数据存储游标
任何身体都知道如何使用JPA使用数据存储光标? 解决方案 您可以尝试一下(改编自 JDO样本): List results = (List) query.execute(); // Use the first 20 results... Cursor cursor = JPACursorHelper.getCursor(results); String cursorString = cursor.toWebSafeString(); // Store the cursorString... // ... // Query query = the same query that produced the cursor // String cursorString = the string from storage Cursor cursor = Cursor.fromWebSafeString(cursorString); que
18 2023-02-04
编程技术问答社区
数据库游标是否能捕捉到基础数据的变化?
有关光标(特别是Oracle光标)的快速问题. 假设我有一张名为" my_table"的表,该表有两个列,一个ID和一个名称.有数百万的行,但名称列始终是字符串"测试". i然后运行此PL/SQL脚本: declare cursor cur is select t.id, t.name from my_table t order by 1; begin for cur_row in cur loop if (cur_row.name = 'test') then dbms_output.put_line('everything is fine!'); else dbms_output.put_line('error error error!!!!!'); exit; end if; end loop; end; / 如果我在运行时,请运行此SQL:
56 2022-08-11
编程技术问答社区
在db2中使用游标比较记录并执行更新
我有 2 个 SQL 提供不同的结果,如下所示, 表一: ----------------- PRRFNBR | PRNBR ---------------- 64929 | 083819 64973 | 083924 676761 | 879899 ----------------- 表 2: ---------------- PRRFNBR | PRNBR ---------------- 286054 | 083819 286056 | 083924 768789 | 876122 我需要比较两个表中的 PRRFNBR 数据并更新与表 1 匹配的表 2 结果,表 2 中的预期输出应该是这
3338 2022-07-17
编程技术问答社区