问题列表 - 第8101页

基于Windows Server 2008 x64的Excel 2007自动化

我很清楚微软的支持基础文章说它不支持自动化办公产品UI.似乎Windows Server 2008 x64和Excel 2007强制执行给定的语句.

我在NT服务(本地系统帐户)OnStart方法中运行以下代码.当它在控制台应用程序中运行相同的代码时,它所做的只是Excel自动化.

提供的代码有两部分.第一部分启动Excel,创建一个新的工作簿并将其保存到给定的文件名.第二部分启动Excel的新实例并打开给定文件.打开操作以此异常结束:

服务无法启动.System.Runtime.InteropServices.COMException(0x800A03EC):Microsoft Office Excel无法访问文件'c:\ temp\test.xls'.有几个可能的原因:

•文件名或路径不存在.•该文件正由另一个程序使用.?您尝试保存的工作簿与当前打开的工作簿具有相同的名称.

为什么自动excel能够启动并将文件写入磁盘但是当它被要求"只是"打开现有文件时失败?

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
// launch excel and create/save a new work book
Microsoft.Office.Interop.Excel.ApplicationClass excel = new       Microsoft.Office.Interop.Excel.ApplicationClass();
excel.UserLibraryPath, excel.Interactive));
//            
string filename = "c:\\temp\\test.xls";
if(System.IO.File.Exists(filename)) System.IO.File.Delete(filename);
//
excel.Workbooks.Add(System.Reflection.Missing.Value);
excel.Save(filename);
excel.Quit();
excel = null;
// lauch new instance of excel and open saved file
excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
try
{
    Microsoft.Office.Interop.Excel.Workbook book = excel.Workbooks.Open(filename,
                System.Reflection.Missing.Value,
                System.Reflection.Missing.Value,
                System.Reflection.Missing.Value,
                System.Reflection.Missing.Value,
                System.Reflection.Missing.Value,
                true,
                System.Reflection.Missing.Value,
                System.Reflection.Missing.Value,
                false,
                false,
                System.Reflection.Missing.Value, …
Run Code Online (Sandbox Code Playgroud)

com excel-2007 office-automation

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

我应该在类中使用Field或Property来设置值

所以我和一位同事就一段代码进行了友好的争论:

public sealed class NewObject
{
    private string _stuff = string.Empty;

    public string Stuff
    {
        get { return GetAllStuff(); }
    }

    private string GetAllStuff()
    {
        //Heavy string manipulation of _stuff
    }

    public NewObject(string stuffToStartWith)
    {
        _stuff = stuffToStartWith;
    }

    public static NewObject operator +(NewObject obj1, NewObject obj2)
    {
        if (obj1 == null)
            throw new ArgumentNullException();

        if (obj2 == null)
            throw new ArgumentNullException();

        NewObject result = new NewObject(string.Empty);
        result._stuff = String.Concat(obj1._stuff, obj2._stuff);

        return result;
    }
}
Run Code Online (Sandbox Code Playgroud)

争论在于操作员覆盖.我的同事认为,除了构造函数之外,设置私有字段的值不是最好的编程习惯.我的同事提出的解决方案是重构Stuff属性的名称AllStuff并添加一个属性 …

c#

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

数据库速度优化:很少的表有很多行,或者很多表有很少的行?

我有一个很大的疑问.

让我们以一个公司订单的数据库为例.

假设这家公司每月大约生产2000个订单,那么,每年大约24K订单,他们不想删除任何订单,即使它是5年(嘿,这是一个例子,数字并不意味着任何东西).

在具有良好的数据库查询速度的意义上,它最好只有一个表,或者每年有一个更快?

我的想法是每年为订单创建一个新表,称为orders_2008,orders_2009等.

加速数据库查询可能是一个好主意吗?

通常使用的数据是当前年份的数据,因此行数越少越好.显然,当我同时搜索所有订单表时,这会产生问题,因为我是否应该运行一些复杂的UNION ..但这种情况在正常活动中非常罕见.

我认为最好有一个应用程序,95%的查询是快速的,剩下的有点慢,而不是一个总是很慢的应用程序.

我的实际数据库是130个表,我的应用程序的新版本应该有大约200-220个表...其中约40%将每年复制.

有什么建议吗?

编辑:RDBMS可能是Postgresql,也许(希望不是)Mysql

postgresql performance database-design

4
推荐指数
2
解决办法
2706
查看次数

Id或[TableName] Id作为主键/实体标识符

是否首选使用"Id"作为主键的列名或"[TableName] Id"作为命名约定?

表:帐户
主键:Id

- 与 -

表:帐户
主键:AccountId

在我看到的实现中似乎分裂了大约50%/ 50%.每种方法有哪些优缺点?

跟进:

在我的数据库中使用一个约定,在代码中使用另一个约定是否有意义?或者我应该保持一致吗?在大多数ORM中,这怎么会最好?

sql sql-server orm database-design naming-conventions

4
推荐指数
3
解决办法
3156
查看次数

如何判断类型是否为"简单"类型?即持有单一价值

typeof(string).IsPrimitive == false
typeof(int).IsPrimitive == true
typeof(MyClass).IsClass == true
typeof(string).IsClass == true
typeof(string).IsByRef == false
typeof(MyClass).IsByRef == true // correction: should be false (see comments below)
Run Code Online (Sandbox Code Playgroud)

我有一个实例化T的新实例的方法,如果它是一个"复杂"类,则从一组源数据值中填充其属性.

(a)如果T是简单类型(例如字符串或int或其他类似的东西),则执行从源数据到T的快速转换.

(b)如果T是一个类(但不是像字符串这样简单的东西),那么我将使用Activator.CreateInstance并进行一些反射来填充字段.

是否有一种快速而简单的方法来判断我是否应该使用方法(a)或方法(b)?此逻辑将在通用方法中使用,其中T作为类型参数.

.net c# generics

59
推荐指数
4
解决办法
3万
查看次数

Windows Callgrind结果浏览器,替代KCacheGrind

是否有任何工具,除了KCacheGrind,能够查看callgrind结果?对于Windows平台最好?

windows profiling valgrind callgrind

30
推荐指数
4
解决办法
3万
查看次数

在C++中存储数据的最佳方式

我刚学习C++,刚刚开始讨论QT,我坐在这里想知道大多数应用程序如何保存数据?有行业标准吗?他们将它存储在XML文件,文本文件,SQLite中吗?会计软件需要保存的敏感数据呢?我只是想了解这方面的最佳实践.

谢谢

c++ qt4

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

python中1:1映射的数据结构?

我有一个问题,需要一个可逆的1:1键到值的映射.

这意味着有时我想找到一个给定键的值,但有时我想找到给定值的键.键和值都保证唯一.

x = D[y]
y == D.inverse[x]
Run Code Online (Sandbox Code Playgroud)

显而易见的解决方案是每次我想要反向查找时简单地反转字典:反转字典非常容易,这里有一个配方但是对于大字典它可能非常慢.

另一种方法是创建一个新的类,它将两个字典统一起来,每个字典对应一种查找.这很可能很快,但会消耗两倍于单个字典的内存.

那么我可以使用更好的结构吗?

  • 我的应用程序要求这应该非常快,并尽可能少地使用内存.
  • 结构必须是可变的,并且强烈希望变异对象不应该导致它更慢(例如强制完整的重新索引)
  • 我们可以保证键或值(或两者)都是整数
  • 可能需要该结构来存储数千或数百万件物品.
  • Keys&Valus保证是唯一的,即len(set(x))== len(x)代表[D.keys(),D.valuies()]中的x

python data-structures

30
推荐指数
3
解决办法
9553
查看次数

如何附加和调试正在运行的SQL Server存储过程?

我正在研究SQL Server 2005存储过程中的一个奇怪的错误,我无法通过直接从Management Studio调用它来重现它.

因此,我希望能够:

  • 在存储过程中设置断点
  • 等待从外部调用该过程并断开断点
  • 查看传入参数的值
  • 逐步执行存储过程

这是可能的,如果是这样的话怎么样?

sql-server debugging

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

使用pthread_create()时将结构作为参数传递

我尝试将结构作为第4个参数传递,同时使用pthread_create()类似这样的东西:

pthread_create(&tid1, NULL, calca, &t); //t is the struct
Run Code Online (Sandbox Code Playgroud)

现在每当我尝试访问结构中的变量-ta,tb或tc时,我都会收到错误 - 请求成员不是结构或联合.

我可以使用什么替代方法将结构传递给线程?

c multithreading struct pthreads

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