我确定这个问题已经得到解答,但我无法使用搜索工具找到答案.
使用c#我想运行一个.sql文件.sql文件包含多个sql语句,其中一些语句分为多行.我尝试在文件中读取并尝试使用ODP.NET执行文件...但是我不认为ExecuteNonQuery真的是为了这样做而设计的.
所以我尝试通过生成一个进程来使用sqlplus ...但是除非我将UseShellExecute设置为true而生成进程,否则sqlplus会挂起并永远不会退出.这是不起作用的代码.
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "sqlplus";
p.StartInfo.Arguments = string.Format("xx/xx@{0} @{1}", in_database, s);
p.StartInfo.CreateNoWindow = true;
bool started = p.Start();
p.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
WaitForExit永远不会返回....除非我将UseShellExecute设置为true.UseShellExecute的副作用是您无法捕获重定向的输出.
我一直在尝试创建一个全屏视图.我计划使用核心图形进行渲染.我是iPhone开发的新手,请原谅这个基本问题.
这是我的设置代码;
- (void)loadView
{
CGRect rect = [[UIScreen mainScreen] bounds];
GameView *main_view;
main_view = [[GameView alloc] initWithFrame:rect ];
main_view.clearsContextBeforeDrawing = NO;
self.view = main_view;
[main_view release];
}
Run Code Online (Sandbox Code Playgroud)
然而,当我运行这个时,我会在时间和电池电量的顶部获得一个薄的状态栏.
我尝试寻找一些样品,但所有样品都是opengles.
有人可以告诉我哪里出错了吗?以及如何创建全屏视图.
谢谢
由于遗留原因,我需要使用侵入式指针,因为我需要能够将原始指针转换为智能指针.
但是我注意到没有弱的侵入式指针可以提升.我确实在boost线程列表上找到了关于它的讨论,但没有具体的.
有谁知道弱侵入指针的线程安全实现?
谢谢Rich
我已经在Xcode中运行了一段时间的颠覆.subversion的集成总是由一个线程挂起.但是我的subversion服务器已经改变了它的ip地址......我的xcode项目仍然试图在旧的ip上查找源代码.
我已经通过xcode中的SCM菜单更改了subversion服务器的ip ...但是这些更改似乎并没有影响项目.
任何人都知道我如何更改项目中的subversion ip?
干杯里奇
我可以看到如何在open gl中渲染线框基元.通过使用glPolygonMode,Open GL ES似乎缺少此调用.
有谁知道如何在Open GL ES上的线框中渲染图元?
谢谢Rich
我正在与一些同事讨论在动态分配的类中抛出异常时会发生什么.我知道malloc被调用,然后是类的构造函数.构造函数永远不会返回,所以会发生什么malloc?
请考虑以下示例:
class B
{
public:
B()
{
cout << "B::B()" << endl;
throw "B::exception";
}
~B()
{
cout << "B::~B()" << endl;
}
};
void main()
{
B *o = 0;
try
{
o = new B;
}
catch(const char *)
{
cout << "ouch!" << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
malloced内存会发生什么o,它会泄漏吗?CRT是否捕获构造函数的异常并释放内存?
干杯!
丰富
我一直在尝试使用智能指针来升级现有的应用程序,而我正试图克服一个难题.在我的应用程序中,我有一个对象缓存,例如我们称之为书籍.现在,这些书籍缓存是由ID请求的,如果它们在缓存中,则返回它们,如果不是,则从外部系统请求对象(慢速操作)并将其添加到缓存中.一旦进入缓存,可以在应用程序中打开许多窗口,每个窗口都可以参考该书.在以前版本的应用程序中,程序员必须维护AddRef和Release,当每个使用Book对象的窗口关闭时,最终Release(在缓存管理器上)将从缓存中删除对象并删除对象.
您可能已经在链中发现了弱链接,当然程序员记得要调用AddRef和Release.现在我已经转向智能指针(boost :: intrusive)我不再需要担心调用AddRef和Release.然而,这会导致问题,缓存具有对对象的引用,因此当最终窗口关闭时,不通知缓存没有其他人持有引用.
我的第一个想法是定期遍历缓存并清除引用计数为1的对象.我不喜欢这个想法,因为它是一个N阶操作并且感觉不对.我想出了一个回调系统,这个系统更好但不是很棒.我已经包含了回调系统的代码,但我想知道是否有人有更好的方法这样做?
class IContainer
{
public:
virtual void FinalReference(BaseObject *in_obj)=0;
};
class BaseObject
{
unsigned int m_ref;
public:
IContainer *m_container;
BaseObject() : m_ref(0),m_container(0)
{
}
void AddRef()
{
++m_ref;
}
void Release()
{
// if we only have one reference left and we have a container
if( 2 == m_ref && 0 != m_container )
{
m_container->FinalReference(this);
}
if( 0 == (--m_ref) )
{
delete this;
}
}
};
class Book : public BaseObject
{
char *m_name; …Run Code Online (Sandbox Code Playgroud) 我正在开发一些自动化来控制SQL脚本的执行.脚本通过SQL*PLUS运行并包含PL/SQL调用(因此我无法通过ODP.NET运行它们).
我想知道是否有SQL*PLUS的.NET接口?如果是这样,有人用它吗?
我想知道如何将查询从PL/SQL导出到文本文件或csv文件.我想到的查询导出了大量数据(约1 gig).所以我也想把数据分成多个文件;
out1.csv out2.csv out3.csv
我希望能够决定分割多少个文件.
任何人都知道如何做到这一点?
我目前正试图通过引入智能指针来解决代码库中的一些弱点.代码库非常大,并且像一只拥有一对多咖啡的蜘蛛相互关联.
我想知道人们是否曾尝试过以前的做法以及他们的做法是什么.
我的第一步是typedef类,如下所示.
#ifndef USE_SMART_POINTERS
#define USE_SMART_POINTERS 0
#endif
#if USE_SMART_POINTERS == 1
#include <boost/smart_ptr.hpp>
#endif
namespace ProductX
{
// forward decleration
class CTObject;
//typedefs
#if USE_SMART_POINTERS == 1
typedef boost::shared_ptr<CTObject> CTObjectPtr;
#else
typedef CTObject* CObjectPtr;
#endif
}
Run Code Online (Sandbox Code Playgroud)
现在我意识到这将导致丰富的编译领域,比如
CTObjectPtr i = NULL;
Run Code Online (Sandbox Code Playgroud)
当智能指针启用时,将完全bork.
我想知道在这个早期阶段是否有任何我可以做的事情来减少编译错误的数量,或者是因为我怀疑只是根据具体情况进行处理.
干杯里奇
c++ ×4
boost ×3
iphone ×3
oracle ×3
pointers ×2
.net ×1
automation ×1
c# ×1
caching ×1
constructor ×1
csv ×1
exception ×1
export ×1
fullscreen ×1
handler ×1
opengl-es ×1
plsql ×1
primitive ×1
refactoring ×1
render ×1
rendering ×1
scripting ×1
shared-ptr ×1
sql ×1
sqlplus ×1
svn ×1
text-files ×1
weak ×1
wireframe ×1
xcode ×1