小编Ben*_*ehn的帖子

可以从调试器停止并继续执行吗?

有没有办法从ctrl + c这样的调试器中停止执行matlab程序,但是能够继续执行(比如你可以说c#)?

如果没有,除了尝试在matlab代码中预先设置断点或dbstop语句之外,还有更好的解决方法吗?

我希望能够中断长时间运行的模拟以查看当前状态,然后继续模拟.

我目前使用/考虑的两个选项是

  1. 代码中的dbstop命令(或(条件)断点).缺点是有时候我不想停止模拟几个小时,有时候想要在几秒钟之后停止(我不一定知道提前知道)并且这对这种方法不起作用:如果我将中断条件设置为每5分钟中断一次,我就不能让matlab在没有交互的情况下运行数小时.如果我将条件设置得更高,我必须等待太久才能达到条件.

  2. 包括每隔几秒/几分钟保存工作空间的代码,并将工作空间导入第二个matlab实例.缺点是这是一个巨大的麻烦,也不一定允许我使用已保存工作空间的状态恢复模拟,然后逐步执行代码几次迭代.

我希望有比2中任何一个更好的解决方案.感谢任何建议!

编辑:我认为我要做的是编写简单的matlab函数,每次迭代检查环境变量或磁盘上的文件,如果我在此文件或env中设置了一个标志,则调用dbstop.通过这种方式,我可以通过编辑文件来控制断点从matlab外部命中的时间(如果需要的话).凌乱,但应该工作.

debugging matlab

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

windows cmd管道即使用/ U开关也不是unicode

我有一个小的c#控制台程序,使用Console.WriteLine输出一些文本.然后我将此输出传递给文本文件,如:

c:myprogram > textfile.txt

但是,即使我使用/ u开关启动cmd,该文件也始终是ansi文本文件.cmd /?关于/ u开关说:

/ U使管道或文件的内部命令输出为Unicode

当我做的时候确实有所作为

c:echo "foo" > text.txt

text.txt是unicode(没有BOM)

我想知道为什么我的控制台程序的输出汇总到一个新文件同样不会创建一个unicode文件,我怎么能改变它?

我只使用Windows Power Shell(它生成一个具有正确BOM的unicode文件),但我仍然想知道如何使用cmd.

谢谢!

unicode text cmd pipe

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

如何在使用模式绑定和经常更新时处理数据库模式更新

我正在使用MS SQL Server数据库并使用大量视图(用于O/R映射器).有点烦恼是我想

  • 使用架构绑定
  • 使用脚本更新(在服务器上部署并放入源代码管理系统)

但碰到的问题,每当我想,例如添加列一个表,我必须先删除引用该表的所有意见,更新表,然后重新创建的意见,即使意见不必须是否则更新.这使我的更新脚本更长,并且,在源控制系统中查看差异时,更难以看到实际的相关更改是什么.

有没有更好的方法来处理这个?

我还需要能够使用简单且可源代码控制的sql更新.就像是包含在SQL Server Management Studio中的代码生成器将是有益的,但我在那也容易产生不指定某些指标或(默认)约束名称代码与SQL Server Management Studio中的问题.但我想有相同的DBS,当我在不同的系统,包括所有的约束上等的名称来运行我的剧本,让我没有通过环后更新这些限制时跳.

那么也许一个更智能的SQL代码生成器可以解决方案?

我的工作流程现在是:

  • alter table在查询编辑器中键入语句
  • 检查我是否收到类似" cannot ALTER 'XXX' because it is being referenced by object 'YYY'." 的错误声明.
  • 使用SQL Server Managment Studio编写create引用对象的代码
  • drop在alter语句之前插入一条语句,然后在之后创建语句
  • 检查drop语句是否创建错误并重复

这让我很烦,但如果我想继续使用架构绑定和脚本更新,我可能只需要忍受它...

sql-server version-control code-generation

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

oracle odp.net SafeMapping转换,如果有时区的时间戳 - 如何获取偏移而不是区域名称

从c#开始,使用odp.net,我调用一个返回游标的oracle函数.某些列的类型为"带时区的时间戳"(TSTZ).如果我直接使用OracleDataAdapter,那些列将转换为System.DateTime,并且时区信息将丢失.这是预期的行为,建议似乎是使用SafeMapping强制转换为字符串,如:

dataAdapter.SafeMapping.Add("column_name", typeof(string));
Run Code Online (Sandbox Code Playgroud)

然后我确实将TSTZ作为字符串,但它使用的格式DD-MON-YYYY HH:MI:SS.FF AM TZR如下:

23-NOV-12 08.10.12.057868000 PM ASIA/CALCUTTA
Run Code Online (Sandbox Code Playgroud)

我想要它而不是偏移(例如格式DD-MON-YYYY HH:MI:SS.FF AM TZH:TZD如:

23-NOV-12 08.10.12.057868000 PM +04:30
Run Code Online (Sandbox Code Playgroud)

当我直接查询oracle(比如在Sql Developer中)时,我可以使用

Alter Session Set Nls_Timestamp_Tz_Format='DD-MON-YYYY HH:MI:SS.FF AM TZH:TZM'
Run Code Online (Sandbox Code Playgroud)

获得我想要的格式.使用odp.net我尝试在SetSessionInfo中设置格式:

connection.Open();
OracleGlobalization glob = connection.GetSessionInfo();
glob.TimeStampTZFormat = "DD-MON-YYYY HH:MI:SS.FF AM TZH:TZM";
connection.SetSessionInfo(glob);
Run Code Online (Sandbox Code Playgroud)

以及alter session使用相同的连接执行命令,但都没有任何影响.我认为这是因为转换为字符串发生在稍后阶段,连接设置无效.

有没有其他方法让odp.net直接为我提供偏移量?我无法更改oracle db函数,因此在方法中使用例如tz_offset不是一个选项.

如果这不可能,那么将时区字符串转换为偏移量的最佳方法是什么?我正在考虑执行一个

select TZNAME, TZABBREV, tz_offset(TZNAME) as TZOFFSET
from V$TIMEZONE_NAMES
Run Code Online (Sandbox Code Playgroud)

曾经建立一个查阅表,但如果有更好的选择,会很高兴.

我的数据检索代码,包括我尝试的内容:

using (var connection = new OracleConnection(this.connectionString))
{
connection.Open();
OracleGlobalization glob = connection.GetSessionInfo();
glob.TimeStampTZFormat = …
Run Code Online (Sandbox Code Playgroud)

c# oracle timezone datetime odp.net

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

如何获得Oracle同义词的创建/上次DDL时间?

SQL Developer在表中显示公共同义词的创建时间和上次DDL时间:

CREATED         15-AUG-09
LAST_DDL_TIME   15-AUG-09
OWNER           PUBLIC
SYNONYM_NAME    ISEMPTY
TABLE_OWNER     MDSYS
TABLE_NAME      OGC_ISEMPTY
DB_LINK     (null)
Run Code Online (Sandbox Code Playgroud)

如何通过SQL查询获得相同的信息?

select *  from all_synonyms where synonym_name = 'ISEMPTY'
Run Code Online (Sandbox Code Playgroud)

无法获取创建日期/上次DDL日期。

更一般而言,是否有一种很好的方法来查看sql developer用于显示其显示的数据的查询(当您无权访问分析器时)?谢谢

oracle ddl synonym

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