这是我考虑使用DB4o的方式.当我需要查询时,我会打开文件,阅读并关闭:
using (IObjectContainer db = Db4oFactory.OpenFile(Db4oFactory.NewConfiguration(), YapFileName))
{
try
{
List<Pilot> pilots = db.Query<Pilot>().ToList<Pilot>();
}
finally
{
try { db.Close(); }
catch (Exception) { };
}
}
Run Code Online (Sandbox Code Playgroud)
稍后,当我需要插入时,那么
using (IObjectContainer db = Db4oFactory.OpenFile(Db4oFactory.NewConfiguration(), YapFileName))
{
try
{
Pilot pilot1 = new Pilot("Michael Schumacher", 100);
db.Store(pilot1);
}
finally
{
try { db.Close(); }
catch (Exception) { };
}
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我认为只要在需要时将文件打开,我就会保持文件更整洁,并且大部分时间都关闭它.但我一直得到InvalidCastException
Unable to cast object of type 'Db4objects.Db4o.Reflect.Generic.GenericObject' to type 'Pilot'
Run Code Online (Sandbox Code Playgroud)
使用DB4o的正确方法是什么?
我有一个利用JPA的Java Web应用程序.persistence.xml使用jta-data-source标记在文件中指定数据库实例.
我想在同一个(glassfish)服务器上部署Web应用程序的第二个副本,但指向另一个数据库实例.
实现这一目标的最佳方法是什么?我认为理想情况下,我想persistence.xml在战争之外放置一个覆盖文件(在类路径的某个地方?).我不确定在哪里放置它或如何以一种它不会与我的其他实例混淆的方式来定义它.我可以看到我们以这种方式托管一些实例(SaaS),我希望配置超出部署的战争,这样就不会成为维护问题.出于安全原因,不能在客户端之间共享数据库实例.
我相信这不是我们小组的一个独特问题.其他人用来解决这个问题的最佳实践或解决方案是什么?
使用git 1.6.4.2,当我这样做时,git pull我收到此错误:
error: unable to resolve reference refs/remotes/origin/LT558-optimize-sql: No such file or directory
From git+ssh://remoteserver/~/misk5
! [new branch] LT558-optimize-sql -> origin/LT558-optimize-sql (unable to update local ref)
error: unable to resolve reference refs/remotes/origin/split-css: No such file or directory
! [new branch] split-css -> origin/split-css (unable to update local ref)
Run Code Online (Sandbox Code Playgroud)
我试过git remote prune origin,但没有用.
作为非英语人士,我无法区分这一点.
当我尝试将其翻译成我的语言时,我会得到一些奇怪的东西,比如"上升"来提升.所以我想说我想按字母顺序排列所有宠物的名字.我希望A先来,然后是B,然后是C ......依此类推.因为字母表对我来说不是一个数字,我的大脑拒绝理解什么是"上升".A = 0?B = 1?C = 2?如果是,那么升序将是我大部分时间都在寻找的.表会开始显示A,然后是B,然后是C ......或者是相反的方式?我必须从桌子底部看一下吗?
还有数字:如果它是升序,那么最小的是第一个?(似乎合乎逻辑......)
有人可以发布一个简短但很好的例子来说明什么是升序排序,什么是降序排序?这适用于任何平台,编程语言,API等吗?
我有一个脚本,我试图从cron运行.当我从bash运行它时,它工作得很好.但是,当我让cron做的事情,我得到一个:
myscript.sh:第122行:语法错误:意外的文件结束
我想要的是一种运行命令的方法,就好像它是一个cron作业,但是在我的shell中执行它.
作为旁注:有谁知道在cron下会有什么不同?(脚本已经有#!/bin/sh一行)
回答我自己的问题:我把它添加到我的crontab:
* * * * * bcs for ((i=$(date +\%M); i==$(date +\%M) ;)) ; do find ~/.crontemp/ -name '*.run' -exec "{}" ";" ; sleep 1; done`
Run Code Online (Sandbox Code Playgroud)
并创建了这个脚本:
#!/bin/sh
tmp=$(mktemp ~/.crontemp/cron.XXXXX)
mknod $tmp.pipe p
mv $tmp $tmp.pre
echo $* '>' $tmp.pipe '1>&2' >> $tmp.pre
echo rm $tmp.run >> $tmp.pre
chmod 700 $tmp.pre
mv $tmp.pre $tmp.run
cat $tmp.pipe
rm $tmp.pipe
Run Code Online (Sandbox Code Playgroud)
有了它,我可以运行任意命令,延迟不超过一秒.
(是的,我知道有各种各样的安全问题)
这个问题是一个fi与if问题.卫生署!
请按照我提出的方式随意回答标题中的问题,我将在下面提供更多细节和细节.
目前,我开发并维护了一个高度可定制的遗留业务应用程序(ASP/SQL),允许对自定义字段,表单,视图,报表,操作,事件,工作流等进行中等到完全自定义.此自定义在我们开发的领域,并允许我们建立一个利基.
我一直在阅读内部平台效应和实现高级用户定义定制的方法,并得出结论我们确实遭受了许多内部平台效应问题,因为基本上我们已经在SQL之上创建了高级抽象.自定义字段的组织方式与此处的方法类似
http://blog.springsource.com/arjen/archives/2008/01/24/storing-custom-fields-in-the-database/
我们使用类似于该文章中描述的元数据库方法的东西.所有自定义都是围绕这种方法构建的,并且在很多方面我们都在数据库之上受到数据库的影响.
最终的结果是在纸上看起来很棒但是添加了更多的功能,并且为客户完成了自定义编码,一切都变得混乱.似乎我越读越多,我意识到这有点像反模式.似乎我尝试阅读的越多,我发现的内容就越少.无论如何,我正在尝试学习这个问题的现代方法,并试图找到更多有关该主题的讨论/文章.CouchDB等数据库系统是否与此类应用程序相关?
我的问题显然非常普遍.似乎有很多人反对这种应用程序,而只是"更好地了解和定义您的域名".有没有好的/更好的方法来实现这种应用程序?我不是在寻找黑白答案,而且关于这个主题的任何进一步阅读都会很棒.谢谢你的帮助.
在JDK或apache公共中是否有一个方法来"弹出"java.util.List中的元素列表?我的意思是,删除元素列表并返回它,就像这个方法:
public Collection pop(Collection elementsToPop, Collection elements) {
Collection popped = new ArrayList();
for (Object object : elementsToPop) {
if (elements.contains(object)) {
elements.remove(object);
popped.add(object);
}
}
return popped;
}
Run Code Online (Sandbox Code Playgroud) 如何在#ifdef中添加"或"条件?
我试过了 "
#ifdef CONDITION1 || CONDITION2
#endif
Run Code Online (Sandbox Code Playgroud)
这不起作用.
我发现了一个很好看的示例,说明如何以超时方式异步调用委托... http://www.eggheadcafe.com/tutorials/aspnet/847c94bf-4b8d-4a66-9ae5-5b61f049019f/basics-make-any-method -c.aspx.总之,它使用具有超时的WaitOne来确定在超时到期之前调用是否未返回.
我也知道你应该有一个EndInvoke来匹配每个BeginInvoke.
那么如果等待超时到期会发生什么?我们(大概)不想调用EndInvoke,因为它会阻止.代码可以继续做"其他事情",但我们泄露了什么?是否有一些可怜的线程被阻止等待返回永远不会发生?我们是否泄露了一些记忆,其结果是永远不会返回?
如果有一个ar [5000]的数组,那么如果这是一个三维数组,怎么能找到元素[5] [5] [4]的位置?谢谢
我正在映射像素:想象一下[768*1024*4]的bimap,像素[5] [5] [4]会在哪里?
我想这样做:
static GLubyte checkImage[checkImageHeight][checkImageWidth][4];
static GLuint texName;
bool itt;
void makeCheckImage(void)
{
Bitmap *b = new Bitmap(L"c:/boo.png");
int i, j, c;
Color cul;
for (i = 0; i < checkImageHeight; i++) {
for (j = 0; j < checkImageWidth; j++) {
b->GetPixel(j,i,&cul);
checkImage[i][j][0] = (GLubyte) cul.GetR();
checkImage[i][j][1] = (GLubyte) cul.GetG();
checkImage[i][j][2] = (GLubyte) cul.GetB();
checkImage[i][j][3] = (GLubyte) cul.GetA();
}
}
delete(b);
}
Run Code Online (Sandbox Code Playgroud)
没有制作多维数组的工作.width = 512,height = 1024 ....
c++ ×2
database ×2
java ×2
.net ×1
asynchronous ×1
c ×1
c# ×1
collections ×1
command-line ×1
cron ×1
db4o ×1
delegates ×1
git ×1
git-pull ×1
glassfish ×1
jpa ×1
terminology ×1
timeout ×1