小编DJ.*_*DJ.的帖子

DAL和ORM之间的界限在哪里?

这些术语经常互换,并且显然有相当大的重叠,但同样似乎暗示人们看到一个强烈暗示的东西,说系统是一个ORM而不是它是DAL所暗示的.那是什么?如果有的话,区分这些类型系统的关键点是什么?

例如,假设我有一些代码实现了Database,Table,Column和Row类,通过自动分析现有数据库来填充它们,允许简化交互等等.它理解,实施并利用数据库实体(如外键)之间的结构关系.可以对所有实体模型进行子类化,以将特定于表的功能加载到它们上.

这个DAL到什么程度?ORM在多大程度上?为什么?

orm database-design terminology data-access-layer

36
推荐指数
3
解决办法
9053
查看次数

NHibernate交易最佳实践

我已经阅读了一段时间的Nhibernate,并一直试图将它用于我正在实施的网站.我阅读了Billy McCafferty关于NHibernate最佳实践的文章,但我没有看到任何关于哪里是处理交易的最佳位置的迹象.

我想将该代码放在数据访问对象(DAO)中,但后来我不知道如何处理使用多个DAO的情况.在NHibernate应用程序中放置事务代码的最佳位置是什么?

nhibernate transactions

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

使用Excel作为Access数据库的前端(使用VBA)

我正在为朋友构建一个小应用程序,他们希望能够使用Excel作为前端.(UI基本上是Excel中的用户形式).他们在Excel中有一堆数据,他们希望能够查询,但我不想将excel用作数据库,因为我认为它不适合这个目的,我正在考虑使用Access.[顺便说一句,我知道Access有它的缺点,但没有可用的预算和已经在朋友的PC上访问]

总而言之,我正在考虑将一堆数据转储到Access中,然后使用Excel作为前端来查询数据库并在userform样式环境中显示结果.

问题:

  1. 使用ADO/DAO从Excel链接到Access有多容易?它在功能方面是否非常有限,还是我可以发挥创意?
  2. 我是否会支付性能损失(相对于在UI中使用表单而言)?
  3. 假设数据库将始终使用Excel VBA中的ADO/DAO命令进行更新,这是否意味着我可以让多个Excel用户使用该单个Access数据库而不会遇到任何并发问题等?
  4. 还有其他我应该注意的事情吗?

我有很强的Excel VBA技能,并认为我可以很快克服Access VBA但从未真正完成过Excel/Access链接.我可以把数据塞进Excel并用作准数据库,但这似乎比它的价值更痛苦(而不是一个强大的长期解决方案)

任何建议表示赞赏

亚历克斯

excel ms-access vba

27
推荐指数
5
解决办法
14万
查看次数

开发Web应用程序与桌面应用程序有什么好处和挑战?

我与管理人员存在一些问题,因为他们认为(直观地)创建桌面应用程序比创建Web应用程序更容易(因为您的约束较少).但在我看来,由于某些原因,它更难:

  • 桌面应用程序的文献比网络应用程序要小得多
  • 编码面板和按钮比使用声明性方法(HTML)更难
  • http的无状态特性迫使您以请求/响应方式重新思考

我正在寻找GUI与桌面应用程序的坚实推理.我坚信桌面很难开发,因为我有一些工具包的经验,但如果有人在乎其他方面做出反应,请随意根据你的推理.


编辑:我恢复了我原来的问题,因为有人编辑了它,它丢失了原始内容.如果有人选择编辑问题,请发布一些有意义的评论,这样我至少可以知道为什么某些部分被更改了.

user-interface

17
推荐指数
4
解决办法
3249
查看次数

"我不为我的代码感到骄傲"是不公开采购应用程序的借口

我问了一些开发人员,他们制作了他们不再维护的软件或者让他们死掉,为什么他们不开源软件,让其他开发人员把它推进并加以改进.或者至少不要让它消失.

大多数借口都是关于代码的质量.他们不想开源,因为他们对自己编码的内容感到羞耻.在我看来,如果软件有效,那么人们正在下载并使用它,这足以说明该软件.没有人为自己的代码感到骄傲.如果有人看到他们一年前的代码,你肯定会认为你现在可以做得更好.我已经使用了一些不再存在的好软件.我发现这是浪费资源.

为什么一些开发人员更愿意让他们的软件消失而不是将其公之于众?我能想到的一个原因是他们使用别人的IP并且他们不想暴露.如果他们现在或将来无意从中获利,是否应鼓励开发人员开源他们的软件?

open-source

16
推荐指数
3
解决办法
1033
查看次数

SQL Server:如何将空值视为零

这是我正在尝试做的一个例子:

Select
S1.Name as S1Name,
S1.Itemcontent as S1ItemContent,
...
S2.Name as S2Name,
S2.Name as S2ItemContent,
**(S1.OrderValue * 1000*1000 + S2.OrderValue*1000 +  S3.OrderValue) as OrderValue**
From (joining s1, s2 and s3 on a particular value)
Order by OrderValue
Run Code Online (Sandbox Code Playgroud)

当S1.OrderValue,S2.OrderValue或S3.OrderValue为null时,OrderValue也变为null.我希望SQL Server在这种情况下将空值视为0.我怎样才能做到这一点?

sql-server

6
推荐指数
3
解决办法
8365
查看次数

删除非唯一ID行

从数据库备份我有没有唯一ID的记录.

某些记录具有唯一ID.具有重复ID的某些记录包含不同的DateCreated值.具有重复ID的某些记录包含相同的DateCreated值.

我试图获得MSSql 2005查询将只留下具有最​​新DateCreated值的唯一ID值.

ID|    DateCreated  
1 |    1/1/09
2 |    1/2/09
2 |    2/2/09
3 |    1/3/09
3 |    1/3/09
Run Code Online (Sandbox Code Playgroud)

ID|    DateCreated  
1 |    1/1/09
2 |    2/2/09
3 |    1/3/09
Run Code Online (Sandbox Code Playgroud)

救命

sql sql-server unique

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

TSQL - 何时使用'not null'

在考虑是否应该将字段标记为"非空"而不仅仅声明除主键之外的所有内容时,我应该遵循哪些一般指导原则?

"not null"字段是否应具有DEFAULT值?

sql sql-server

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

访问查询错误 - 空和变体数据类型 - 如何修复此错误?

全部,

这个错误让我发疯。我花了 2 个小时试图弄清楚和/或解决它,但没有运气。这是错误:

“您试图将 NULL 值分配给不是 Variant 数据类型的变量。”

这是我的 SQL:

SELECT tbl_budir_002.Location_Index, tbl_parent_001.NEWPARENTID 
INTO tbl_budir_003
FROM (tbl_budir_002 
    LEFT JOIN qry_parent_003 
        ON tbl_budir_002.Location_Index = qry_parent_003.Location_Index) 
    LEFT JOIN tbl_parent_001 
        ON qry_parent_003.PARENTNAME = tbl_parent_001.PARENTNAME;
Run Code Online (Sandbox Code Playgroud)

我认为此时出现了复杂情况——tbl_parent_001 是通过 group by 从另一个更大的表创建的(以分离 PARENTNAME 记录)。我必须手动进入表并将字段 NEWPARENTID 指定为自动编号类型,以便我可以为 PARENTNAME 记录提供主键。现在,当我运行查询时,出现上述错误。我怀疑是自动编号导致了我的问题,但我不知道通过使用查询创建主键的任何其他方法。

因此,我需要两件事的帮助:(1) 根据我当前的查询设置减轻错误;(2) 找出一种更好的方法来创建主键,而不是通过表的设计视图手动输入它。

谢谢,诺亚

null ms-access types variant

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

SQL约束问题

在Sql Server 2005中,我有一个包含两个整数列的表,称为Id1和Id2.我需要它们在表中是唯一的(使用跨越两列的唯一索引很容易).如果值在两列之间转换,我还需要它们在表中是唯一的.

例如,SELECT*FROM MyTable返回

Id1   Id2
---------
2     4
5     8
7     2
4     2  <--- values transposed from the first row
Run Code Online (Sandbox Code Playgroud)

如何制作一个约束来阻止最后一行输入到表中,因为它们是第一行的转置值?

sql sql-server constraints

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

缺少StackTrace信息

我似乎错过了我的堆栈跟踪中的一些信息,这是我得到的:

at Foo.Bar(DataTable table) in D:\Foo\Bar\authoring\App_Code\FooBar.vb:line 87
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪信息的其余部分在哪里?

编辑:

Web.Config中的自定义错误设置为关闭,我正在处理它被捕获的错误:

 Catch ex As Exception
     Respose.Write(ex.StackTrace)
 End Try
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪仍然被截断.

vb.net asp.net exception

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