小编Mik*_*yev的帖子

Dispose()不会阻止内存不足异常

我有一个巨大的日志文件,其中有大约1500万行.我必须将所有这些行移植到Oracle数据库.这就是我要做的事情:

  1. 我读取了DataTable的行(行用逗号分隔,以便它们形成列).我通过StreamReader阅读这些行并将其放入使用中,以便在完成阅读时将其删除.
  2. 我把一个计数器增加1,每行读取到DataTable.
  3. 当该计数器达到40.000时,我在OracleBulkCopy的帮助下将所有行导入数据库.
  4. 导入完成后,我说:

    bulkCopier.Dispose();
    dataTable.Dispose();

然而,这对任何方式都无济于事.在任务管理器中,我看到内存使用量不断增长,直到内存不足为止.现在我的问题是没有Dispose()方法立即释放内存?如果是,那么为什么内存使用会累积,好像所有DataTable和OracleBulkCopy对象都保留内存一样.

c# dispose out-of-memory

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

ORACLE - 创建已授予的过程但无法创建过程

数据库中有一个用户,授予CREATE PROCEDURE privelege.但是当该用户尝试创建一个简单的过程时,将引发以下错误:ORA-01031:权限不足01031. 00000 - "权限不足"*原因:尝试在没有相应权限的情况下更改当前用户名或密码.如果尝试安装没有必要的操作系统权限的数据库,也会发生此错误.

这是程序的DDL:

 CREATE OR REPLACE PROCEDURE TOTALBASE.ROUNDUP 
          (CUR OUT SYS_REFCURSOR  ) 
 AS 
 BEGIN
  OPEN CUR FOR
   SELECT * FROM TOTALBASE.ABONENT; 
 END ROUNDUP;
Run Code Online (Sandbox Code Playgroud)

我还应该考虑做些什么呢?我怀疑,即使授予了privelege不在管理员或ORA_DBA组中的任何人也无法创建过程.但我不确定.

oracle privileges stored-procedures ora-01031

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

更改不会保存在 Crystal Reports 报告中

我最近开始使用水晶报表。已经能够创建报告,并且大部分都完成了。但突然间我开始丢失在文本框对象内所做的任何更改。我编辑一个文本框,保存报告并关闭它。然后我重新打开它以查看更改没有保留。我重新启动了 Visual Studio 甚至机器,但没有任何帮助。我使用 VS 2012。有没有人经历过这样的事情?

crystal-reports visual-studio-2012

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

如何使用动态物理体以恒定速度移动精灵

直到最近我才在每次更新时更改我的精灵的x坐标,我很高兴.但是昨天当我处于debugDraw模式时,我发现在某些速度之后,物理体不会与精灵正确对齐,如下所示: 在此输入图像描述 后来我被告知,(通过cocos2d论坛中的Birkemose)将物理体从A移动到B的首选方法是对它施加冲动.但我不知道如何以这种方式实现恒速.这是我用来移动它而不应用任何冲动的代码:

-(void)update:(CCTime)delta{
    rollingHero.position=ccp(rollingHero.position.x+scrollSpeed*delta,    
                         rollingHero.position.y);
    physicsNode.position=ccp(physicsNode.position.x-scrollSpeed*delta,
                         physicsNode.position.y);
}
Run Code Online (Sandbox Code Playgroud)

因此,为了创造一种移动的感觉,我以相同的滚动速度滚动物理节点和英雄在相反的方向.我尝试了许多应用冲动的不同变体,但我从未让它以恒定速度移动.速度加快,英雄脱离屏幕.如果有人发布示例代码,我将非常感激.

physics position cocos2d-iphone spritebuilder

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

如何在ASP.NET MVC中实现自己的错误视图

在我的ASP.NET MVC应用程序中,我有一个ErrorController,目前只有一个动作方法接收一个名为Error的自定义类,并将其呈现给名为Error.cshtml的视图.目前,Error类中只有2个属性:

public class Error{
   public string UserFriendlyMmessage{get;set;}
   public string ErrorMessage{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

Error.cshtml视图强类型为Error类.每当在action方法中抛出异常时,我都会执行以下操作:

Error error = new Error { UserFriendlyText = "The friendly message", ErrorDescription = "Error to be logged" };
return RedirectToAction("Index", "Error", new System.Web.Routing.RouteValueDictionary(error));
Run Code Online (Sandbox Code Playgroud)

这是ErrorController的action方法:

    public ActionResult Index(Error error)
    {
        return View(model: error, viewName:"Error");
    }
Run Code Online (Sandbox Code Playgroud)

虽然这很好用,但这样所有的模型属性都显示在url中.有没有更好,更常用的方法呢?

error-handling asp.net-mvc

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

发布时不会编译调试模式的代码

在某些地方,我使用#if DEBUG编译器指令来选择要编译的代码。直到不久前,我还能够以调试或发布模式发布 ASP.NET MVC 应用程序。事实上我仍然可以做到这一点。但现在,由于某种原因,无论我选择哪种模式,我在输出中都只能得到 Release 代码。如果我使用 .NET Reflector 查看生成的 dll,我可以看到后面的代码#if DEBUG不存在。我已经Define DEBUG constant在项目属性中检查了调试模式。我可以让它工作的唯一方法是显式定义 DEBUG 常量。除了发布时的设置之外,还有其他地方可以配置发布设置吗?

asp.net-mvc publish debug-mode preprocessor-directive

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

在手机应用程序中预加载视图

当我的应用程序启动时,在启动视图完全加载之前会出现黑屏.有什么方法可以在应用程序加载时获得进度视图.就像Mac,Windows或任何简单的应用程序都有一个预加载屏幕.

iphone objective-c preloading ios

0
推荐指数
1
解决办法
1518
查看次数

Delphi应用程序解析问题

我在Delphi中编写了一个应用程序.到窗口状态我已经给出了wsMaximized.表单上有三个按钮,分别固定在左侧,顶部和底部.当我在自己的笔记本电脑上运行应用程序时,我可以看到所有三个按钮,但是当我在其他计算机上运行时,有时按钮完全不可见,有时我只能看到一个.我无论如何都无法触及软管按钮.但是,如果我改变屏幕分辨率,我可以看到它们.但是对于某些计算机,即使提供最大分辨率,我也看不到它们.我该怎么办这个问题?

delphi resolution screen

0
推荐指数
1
解决办法
933
查看次数

这个正则表达式意味着什么?

有人可以告诉我以下表达方式意味着什么:

\d{6,8}
Run Code Online (Sandbox Code Playgroud)

据我所知,这是一个常规的exp

regex

0
推荐指数
1
解决办法
1057
查看次数

获得与inifile中不同的价值

我在windows目录的win.ini文件中放置了一个自定义条目,在自定义[Login]部分下名为LoginCount,并在每次加载主视图时递增.在Form Create事件中,我访问win.ini并检查其值,如果达到1000,我会显示一条消息.但是发生了一件非常奇怪的事情.达到1000后,我手动将其值设置为0.但它仍然显示1000.我检查了路径,以防应用程序引用系统中的某个其他win.ini文件,但它是C:\ Windows\win.ini .这是代码:

procedure TfMain.FormCreate(Sender: TObject);
  var
     winIni: TIniFile; 
     windir_buf: array [0 .. 144] of Char;
     WINDIR: string;
     loginCount: integer;
  begin
   GetWindowsDirectory(windir_buf, sizeof(windir_buf));
   WINDIR := StrPas(windir_buf) + '\';

   ShowMessage(WINDIR+'win.ini');//Shows C:\Windows\win.ini

   winIni := TIniFile.Create(WINDIR + 'Win.ini');
   loginCount := winIni.ReadInteger('Login', 'LoginCount', 1);
   ShowMessage(IntToStr(loginCount));//Shows 1000 although it's 0 in the actual file.
  end;
Run Code Online (Sandbox Code Playgroud)

知道为什么吗?

delphi ini file

0
推荐指数
1
解决办法
116
查看次数