这些术语经常互换,并且显然有相当大的重叠,但同样似乎暗示人们看到一个强烈暗示的东西,说系统是一个ORM而不是它是DAL所暗示的.那是什么?如果有的话,区分这些类型系统的关键点是什么?
例如,假设我有一些代码实现了Database,Table,Column和Row类,通过自动分析现有数据库来填充它们,允许简化交互等等.它理解,实施并利用数据库实体(如外键)之间的结构关系.可以对所有实体模型进行子类化,以将特定于表的功能加载到它们上.
这个DAL到什么程度?ORM在多大程度上?为什么?
我已经阅读了一段时间的Nhibernate,并一直试图将它用于我正在实施的网站.我阅读了Billy McCafferty关于NHibernate最佳实践的文章,但我没有看到任何关于哪里是处理交易的最佳位置的迹象.
我想将该代码放在数据访问对象(DAO)中,但后来我不知道如何处理使用多个DAO的情况.在NHibernate应用程序中放置事务代码的最佳位置是什么?
我正在为朋友构建一个小应用程序,他们希望能够使用Excel作为前端.(UI基本上是Excel中的用户形式).他们在Excel中有一堆数据,他们希望能够查询,但我不想将excel用作数据库,因为我认为它不适合这个目的,我正在考虑使用Access.[顺便说一句,我知道Access有它的缺点,但没有可用的预算和已经在朋友的PC上访问]
总而言之,我正在考虑将一堆数据转储到Access中,然后使用Excel作为前端来查询数据库并在userform样式环境中显示结果.
问题:
我有很强的Excel VBA技能,并认为我可以很快克服Access VBA但从未真正完成过Excel/Access链接.我可以把数据塞进Excel并用作准数据库,但这似乎比它的价值更痛苦(而不是一个强大的长期解决方案)
任何建议表示赞赏
亚历克斯
我与管理人员存在一些问题,因为他们认为(直观地)创建桌面应用程序比创建Web应用程序更容易(因为您的约束较少).但在我看来,由于某些原因,它更难:
我正在寻找GUI与桌面应用程序的坚实推理.我坚信桌面很难开发,因为我有一些工具包的经验,但如果有人在乎其他方面做出反应,请随意根据你的推理.
编辑:我恢复了我原来的问题,因为有人编辑了它,它丢失了原始内容.如果有人选择编辑问题,请发布一些有意义的评论,这样我至少可以知道为什么某些部分被更改了.
我问了一些开发人员,他们制作了他们不再维护的软件或者让他们死掉,为什么他们不开源软件,让其他开发人员把它推进并加以改进.或者至少不要让它消失.
大多数借口都是关于代码的质量.他们不想开源,因为他们对自己编码的内容感到羞耻.在我看来,如果软件有效,那么人们正在下载并使用它,这足以说明该软件.没有人为自己的代码感到骄傲.如果有人看到他们一年前的代码,你肯定会认为你现在可以做得更好.我已经使用了一些不再存在的好软件.我发现这是浪费资源.
为什么一些开发人员更愿意让他们的软件消失而不是将其公之于众?我能想到的一个原因是他们使用别人的IP并且他们不想暴露.如果他们现在或将来无意从中获利,是否应鼓励开发人员开源他们的软件?
这是我正在尝试做的一个例子:
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.我怎样才能做到这一点?
从数据库备份我有没有唯一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)
救命
在考虑是否应该将字段标记为"非空"而不仅仅声明除主键之外的所有内容时,我应该遵循哪些一般指导原则?
"not null"字段是否应具有DEFAULT值?
全部,
这个错误让我发疯。我花了 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) 找出一种更好的方法来创建主键,而不是通过表的设计视图手动输入它。
谢谢,诺亚
在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)
如何制作一个约束来阻止最后一行输入到表中,因为它们是第一行的转置值?
我似乎错过了我的堆栈跟踪中的一些信息,这是我得到的:
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)
堆栈跟踪仍然被截断.
sql-server ×4
sql ×3
ms-access ×2
asp.net ×1
constraints ×1
excel ×1
exception ×1
nhibernate ×1
null ×1
open-source ×1
orm ×1
terminology ×1
transactions ×1
types ×1
unique ×1
variant ×1
vb.net ×1
vba ×1