来自MS SQL世界,我倾向于大量使用存储过程.我目前正在编写一个应用程序使用了很多PostgreSQL plpgsql函数.我想做的是回滚特定函数中包含的所有INSERTS/UPDATES如果我在其中的任何一点得到异常.
我最初的印象是每个函数都包含在它自己的事务中,并且异常会自动回滚所有内容.但是,情况似乎并非如此.我想知道我是否应该将保存点与异常处理结合使用?但我并不真正了解事务和保存点之间的区别,以了解这是否是最好的方法.有什么建议吗?
CREATE OR REPLACE FUNCTION do_something(
_an_input_var int
) RETURNS bool AS $$
DECLARE
_a_variable int;
BEGIN
INSERT INTO tableA (col1, col2, col3)
VALUES (0, 1, 2);
INSERT INTO tableB (col1, col2, col3)
VALUES (0, 1, 'whoops! not an integer');
-- The exception will cause the function to bomb, but the values
-- inserted into "tableA" are not rolled back.
RETURN True;
END; $$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个用于创建CSV Excel文件的课程.
预期功能:
你知道任何一个班级吗?
我有一个NSMutableArray用字符串对象填充的.为简单起见,我们会说对象是一个人,每个人对象都包含有关该人的信息.
因此,我将有一个填充了person对象的NSMutableArray:
person.firstName
person.lastName
person.age
person.height
Run Code Online (Sandbox Code Playgroud)
等等.
最初的数据源来自Web服务器,并在我的应用程序加载时填充并完成它与服务器的初始化.我的应用程序会定期轮询服务器以获取最新的名称列表.
目前我正在创建一个NSArray结果集,清空NSMutableArray然后在销毁对象之前重新填充NSMutableArraywith NSArray结果NSArray.
这对我来说在几个层面上看起来效率低下,并且还给我一个丢失表行参考的问题,我可以解决这个问题,但可能会为我自己创造更多的工作.
低效率似乎是我应该能够比较两个数组并最终得到过滤NSArray.然后我可以将过滤后的集添加到NSMutableArray.这意味着我可以简单地将新数据附加到NSMutableArray而不是将所有内容丢弃并重新填充.
相反,我需要反向执行相同的过滤器,以查看是否有需要从中删除的记录NSMutableArray.
有没有办法以更有效的方式做到这一点?我是否忽略了一些涉及更简单技术的文档中的某些内容?
当我清空NSMutableArray并重新填充时,我有一个问题,任何引用表都会丢失它们选择的行状态.我可以跟踪它并重新选择它,但我的理论是使用某种形式的比较和添加对象并删除对象而不是在一个块中处理整个数组可能意味着我保留我的行引用(假设该项目不是当然删除了).
任何建议或帮助非常感谢.
更新
在我每次比较每个订单项时,快速枚举是否同样快?这似乎是一个昂贵的操作,但使用最后的快速枚举代码,它可能非常有效...
解
我最终选择了Abizem的建议.在处理大量数据集时,创建数组的可变副本和对象副本似乎比使用sbooth解决方案稍快一些.两者都很好用,我通过使用可变复制方法获得了更多优势.话虽如此,它确实让我睁开眼睛看着我以前没有看过的NSSet.
感谢您的反馈.
使用Visual Studio 2008所具有的框架,我是否因为不使用像NUnit这样的外部工具而遗漏了什么?从我可以看出,使用NUnit似乎更麻烦的是手动创建测试类和方法而不是右键单击IDE本机.话虽如此,我是否缺少NUnit提供的VS不包含的功能?有一个简单的GUI供我的QA人员访问很好,但是使用nAnt和构建依赖于单元测试传递,我是否缺少很酷的功能?
操作系统:Windows 7 32位
所以在c ++中,有一个堆和一个堆栈.但是我最近开始学习一些装配,并没有看到任何类型的东西,只有一堆,但它看起来像纯粹的记忆.那么特定于c ++和其他语言的堆和堆栈实现呢?或者你仍然在汇编中分配堆和堆栈?在启动可执行文件时,windows在为进程分配内存方面做了什么?一个进程如何知道堆栈大小需要多大?
怎么回事
编辑:也许有人可以提供关于如何通过CPU/OS处理进程的堆和堆栈内存的链接
我正在使用带有 CFormView 基类的 MFC 单文档界面创建 Windows Mobile 6 应用程序。
我将 CBitmapButton 放在 Form/Dialog 资源中并将它们放在底部。CBitmapButtons 非常适合,直到出现软键盘或应用程序被其他应用程序覆盖。在这种情况下,不需要的滚动条会出现在屏幕底部和右侧。
如何删除此滚动条?对话框资源中既没有“垂直滚动条”也没有“水平滚动条”选项。
更新: CFormView 派生自 CScrollView,需要检查 CScrollView
更新:如果我不想要滚动条,为什么要使用 CFormView(派生自 CScrollView)?ans:因为我想要一个可以包含控件(按钮、文本框等)的视图。
我刚注意到,对于vector push_back,它会推回对元素的引用.
void push_back ( const T& x );
Run Code Online (Sandbox Code Playgroud)
我的问题是push_back后内存布局是否改变了?
例如,我首先有一个包含五个元素的数组,布局就像这样.
| | | | | |
| A1 | A2 | A3 | A4 | A5 |
Run Code Online (Sandbox Code Playgroud)
现在我有一个矢量v
v.push_back(A3)
Run Code Online (Sandbox Code Playgroud)
现在,内存如何?
矢量如何在这里存储元素?
矢量如何访问元素?
我在开发服务器上遇到过这种情况,我们已经开始同时失败所有ASP.Net应用程序.
经过一些调查后,我们发现在1.1应用程序中调用应用程序设置,并且2.0应用程序中的连接字符串集合都失败了.配置文件具有值,但代码返回null.
经过一番头疼和搜索后,我想也许正在使用root web.config并忽略了网站.为了测试这个理论,我将其中一个站点所需的应用程序设置添加到根web.config中.这使得网站可以正常运行.
在我证明我从root web.config中删除了设置并重置IIS之后.但现在所有站点都在重新运行,即使是那些不依赖于我之前添加到根web.config中的设置的站点.
谁能解释为什么会发生这种情况?据我所知触摸根web.config导致它全部再次工作,但我不知道为什么或什么原因导致问题.
编辑:这是在Windows Server 2003 SP2上的IIS 6.0上
我有一个blacklist.txt文件,其中包含我想要使用sed删除的关键字.
这是blacklist.txt文件包含的内容
winston@linux ] $ cat blacklist.txt
obscure
keywords
here
...
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所做的,但目前无效.
blacklist=$(cat blacklist.txt);
output="filtered_file.txt"
for i in $blacklist;
do
cat $input | sed 's/$i//g' >> $output
done
Run Code Online (Sandbox Code Playgroud) .net ×1
asp.net ×1
assembly ×1
bash ×1
c# ×1
c++ ×1
cocoa ×1
compare ×1
csv ×1
excel ×1
export ×1
heap ×1
java ×1
mfc ×1
nsarray ×1
nunit ×1
objective-c ×1
performance ×1
plpgsql ×1
postgresql ×1
profiling ×1
scrollbar ×1
sed ×1
stack ×1
testing ×1
transactions ×1
unit-testing ×1
vector ×1
web-config ×1
winapi ×1
windows ×1