Set rs = command.Execute
if not rs.EOF then
'logic here
end if
Run Code Online (Sandbox Code Playgroud)
上面的代码在第2行失败,因为rs已关闭(可能oledb提供程序错误地认为它是一个insert命令,所以不需要返回任何内容).该命令是一个插入语句,如:
Insert into log(Name,Value) values("xxx", 123); select scope_identity()
Run Code Online (Sandbox Code Playgroud)
我需要在一次往返中从服务器返回身份.有任何想法吗?
PS:更新了带字段名称的插入语句(感谢Eduardo),但这不是问题.
我正在审查代码库(~20K LOC)并试图确定如何将它从1.4.2迁移到5.显然,这不是一个隔夜项目,我收到的建议是编写新代码反对Java 5并以零碎的方式迁移旧代码.此外,我不是Java 5新功能的专家(即我知道它们,但从未编写任何用于生产用途).
我的问题:
Java 5的哪些功能通常用于生产代码?(即泛型,自动装箱等)是否有特征要避免/不被认为是最佳做法?
我可以使用哪些最好的重构策略来迁移这个大小的代码库?(即仅在编辑类时一次更改一个类,等等.)目标 - 降低代码库的风险.限制 - 进行重构的资源.
任何建议表示赞赏 - 提前谢谢.
更新 - 一年太晚了,但迟到总比没有好?=)
感谢您的所有评论 - 很多很棒的观点.在软件开发人员的生活中,总会有你努力完成的项目,但由于某些更"紧急"的事情,我们永远不会到处走.
关于Java 5的使用(当时),它是客户端生产环境中所需要的东西,所以这就是我们不使用Java 6的原因.
我发现,对于集合,枚举和基元拆箱的更强类型是我倾向于最常用的功能,包括旧代码和新代码.重构非常简单,但代码理解得到了显着改善,标准变得更容易实施.我最麻烦的是仿制药; 我认为这是一个我仍然没有机会完全掌握和欣赏的概念,因此我很难找到以前适用仿制药的案例.
再次感谢所有为此帖做出贡献的人,并为后期跟进道歉.
我在尝试访问在tomcat中运行的webservice时遇到此错误.
引起:java.lang.LinkageError:正在从引导类加载器加载JAXB 2.0 API,但是这个RI(来自jar:file:/ C:/ software/tomcat6/webapps/messaging/WEB-INF/lib/jaxb-impl) -2.1.5.jar!/com/sun/xml/bind/v2/model/impl/ModelBuilder.class)需要2.1 API.使用endorsed目录机制将jaxb-api.jar放在bootstrap类加载器中.(见http://java.sun.com/j2se/1.5.0/docs/guide/standards/)
我用google搜索错误并做了应该解决的问题(我把jaxb-api.jar,版本2.1放在JDK/lib/endorsed和JDK/jre/lib/endorsed中),但它似乎没有任何效果.
我之前没有,我不确定改变了什么.我使用的是JDK 6u10.
我需要确定文件名是否适合文件掩码.文件掩码可以包含*或?字符.这有什么简单的解决方案吗?
bool bFits = Fits("myfile.txt", "my*.txt");
private bool Fits(string sFileName, string sFileMask)
{
??? anything simple here ???
}
Run Code Online (Sandbox Code Playgroud) POCO =普通旧CLR(或更好:类)对象
DTO =数据传输对象
在这篇文章中有一点不同,但坦率地说,我读到的大多数博客都以DTO的定义方式描述了POCO:DTO是用于在应用程序层之间移动数据的简单数据容器.
POCO和DTO是一回事吗?
我非常注重C++思维,需要一些特定C#问题的指导.我们假设我们有以下类:
public class Foo
{
private IList<Bar> _bars = new List<Bar>(); // Note IList<> vs List<>.
public IList<Bar> Bars
{
get { return _bars; }
set
{
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在,取而代之的是...,我倾向于清理_bars和论证中AddRange的项目,而不是仅仅分配给.我看到它,方式是,我想保持引用同一个项目,该项目的引用,而不是实际的是引用.setvaluevalue_barsvalueIList<Bar>value
那个错误的想法在我身边吗?你觉得怎么样?
编辑:经过一些评论后,我意识到我必须补充一点,我希望能够在Foo ctor中使用现有的Bars集合并从该集合中初始化_bars.所以,到目前为止,通过该修订和评论,这感觉更好:
public class Foo
{
private readonly List<Bar> _bars = new List<Bar>();
public Foo(IEnumerable<Bar> bars)
{
_bars.AddRange(bars);
}
public IList<Bar> Bars
{
get { return _bars; }
}
}
Run Code Online (Sandbox Code Playgroud)
好点吗?
我正在将一些代码从另一种语言转换为python.该代码将一个相当大的文件读入一个字符串,然后通过数组索引操作它,如:
str[i] = 'e'
Run Code Online (Sandbox Code Playgroud)
由于字符串是不可变的,这在python中不起作用.在python中执行此操作的首选方法是什么?
我已经看过该string.replace()函数,但它返回的字符串副本听起来不是很理想,因为在这种情况下字符串是整个文件.
由于在我的SQL代码中使用了"ORDER BY" - 语句,我遇到了一些非常重要的性能问题.
只要我没有在SQL中使用ORDER BY语句,一切都很好.但是,一旦我在SQL代码中引入ORDER BY:s,由于缺少正确的索引,一切都会显着减慢.人们会认为解决这个问题是微不足道的,但从论坛讨论等方面来看,这似乎是一个相当普遍的问题,我还没有看到这个问题的明确和简洁的答案.
问题:鉴于下表......
CREATE TABLE values_table ( id int(11) NOT NULL auto_increment, ... value1 int(10) unsigned NOT NULL default '0', value2 int(11) NOT NULL default '0', PRIMARY KEY (id), KEY value1 (value1), KEY value2 (value2), ) ENGINE=MyISAM AUTO_INCREMENT=2364641 DEFAULT CHARSET=utf8;
...如何在对value2的值进行排序时创建在查询表中的值时使用的索引?
目前,在不使用ORDER BY子句时,提取正常.
请参阅以下EXPLAIN QUERY输出:
OK, when NOT using ORDER BY: EXPLAIN select ... from values_table this_ where this_.value1 between 12345678 and 12349999 limit 10; +----+-------------+-------+-------+---------------+----------+---------+------+------+-------------+ | id | select_type …
我想实现一个Model类的Observer,它不会改变Model.因此,它应该能够使用const-Reference来访问Model.但注册观察员禁止这样做.
以下是我的项目中如何实现观察者模式:
//Attributes of type Observable are used by classes that want to notify others
//of state changes. Observing Objects register themselves with AddObserver.
//The Observable Object calls NotifyObservers when necessary.
class Notifier
{
public:
AddObserver(Observer*);
RemoveObserver(Observer*);
NotifyObservers();
};
class Model
{
public:
Notifier& GetNotifier() //Is non const because it needs to return a non-const
{ //reference to allow Observers to register themselves.
return m_Notifier;
}
int QueryState() const;
void ChangeModel(int newState)
{
m_Notifier.NotifyObservers();
}
private:
Notifier m_Notifier;
};
//This …Run Code Online (Sandbox Code Playgroud) 我正在解析一些电子邮件.移动邮件,iPhone和我认为iPod touch将签名附加为单独的边界,使其易于删除.并非所有邮件客户端都这样做,只需使用" - "作为签名分隔符.
我需要从字符串中删除' - ',但只是最后一次出现.
样本副本
hello, this is some email copy-- check this out
--
Tom Foolery
Run Code Online (Sandbox Code Playgroud)
我想要分裂' - ',删除最后一部分,我会拥有它,但是explode()和split()似乎都没有返回值得让我知道它是否做了什么,如果没有一场比赛.
我无法让preg_replace跨越多行.我已将所有行结尾标准化为\n
什么是最好的建议最终得到"你好,这是一些电子邮件副本 - 检查出来",没有,将有没有签名的情况,当然会有我不能的情况涵盖所有案件.