我继承了一个相当大的SQL Server数据库.考虑到它包含的数据,它似乎占用了比我预期更多的空间.
有没有一种简单的方法可以确定每个表占用的磁盘空间大小?
type A struct {
B struct {
Some string
Len int
}
}
Run Code Online (Sandbox Code Playgroud)
简单的问题.如何初始化这个结构?我想做这样的事情:
a := &A{B:{Some: "xxx", Len: 3}}
Run Code Online (Sandbox Code Playgroud)
预计我会收到一个错误:
missing type in composite literal
Run Code Online (Sandbox Code Playgroud)
当然,我可以创建一个单独的struct B并以这种方式初始化它:
type Btype struct {
Some string
Len int
}
type A struct {
B Btype
}
a := &A{B:Btype{Some: "xxx", Len: 3}}
Run Code Online (Sandbox Code Playgroud)
但它没有第一种方式那么有用.是否有初始化匿名结构的快捷方式?
几天前我发布了一些这样的代码:
StreamWriter writer = new StreamWriter(Response.OutputStream);
writer.WriteLine("col1,col2,col3");
writer.WriteLine("1,2,3");
writer.Close();
Response.End();
Run Code Online (Sandbox Code Playgroud)
有人告诉我,在异常的情况下,我应该将StreamWriter包装在一个使用块中.这样的改变会使它看起来像这样:
using(StreamWriter writer = new StreamWriter(Response.OutputStream))
{
writer.WriteLine("col1,col2,col3");
writer.WriteLine("1,2,3");
writer.Close(); //not necessary I think... end of using block should close writer
}
Response.End();
Run Code Online (Sandbox Code Playgroud)
我不确定为什么这是一个有价值的变化.如果在没有使用块的情况下发生异常,编写器和响应仍然会被清除,对吧?使用块让我获得了什么?
有一段时间我有一种唠叨的感觉,我可能忽略了TFS工作空间的有用品质.这里的网站提供了一些很好的背景信息:http://www.woodwardweb.com/teamprise/000333.html.
但是,根据这些信息,我真的不明白何时应该创建一个新工作区.我是否为每个"项目"创建一个?我是否为每个项目分支创建一个?我是否需要在我打算处理的每台计算机上创建镜像工作区?我不确定在做出这个决定时我需要考虑什么.
是否有最佳实践描述在何种情况下使用不同的工作空间?
注意:虽然了解其他人遵循的做法可能会很有趣,但我更感兴趣的是了解如何自己做出决定.我并不是在问"你什么时候创建新的工作区?".相反,我问"我如何决定何时创建新工作区?".
我正在使用C#和ASP.NET 2.5.
我想要一种简单的方法来动态生成"文件"(比如本例中的csv文件)并将其传输到客户端而不实际将其写入服务器文件系统.
我想在使用Eclipse设置多项目工作区方面提出一些建议.换句话说,我打算创建一些应用程序,它将使用两个或更多项目进行最终构建.项目将存储在某个版本控制系统中.这很容易做到.
我正在寻求的建议是如何设置版本控制或Eclipse工作区以使设置新的开发人员/新机器*非常简单.理想情况下,在新机器上新开发者或开发者将只发出一个命令(的东西:它可能是Eclipse的版本控制系统,一些构建系统,甚至是一个脚本); 该命令将建立一个可以构建代码的环境.
我将使用Java作为语言,使用Mercurial进行版本控制,如果这对解决方案很重要的话.我愿意使用构建系统,尽管我对它们中的任何一个都不熟悉.
基本上,我希望学习
*在这种情况下,新机器意味着具有必要应用程序的机器(例如Eclipse和TortoiseHg)但没有检查代码或任何工作空间
我正在整理一个表格,用于向某些信息请求发送后续消息。向一组人发送请求并跟踪响应。如果一个人未能回应,则可能会发送零个或多个跟进。我创建了一个表:
FollowupId int primary key,
RequestId int foreign key (outside this example),
Follows int foreign key (FollowupId),
Message varchar
Run Code Online (Sandbox Code Playgroud)
如果一条消息是第一条跟进消息,Follows 将为空。否则,它是其他一些 Followup 的 id。我还在 Follows 上添加了一个独特的约束。也就是说,在任何给定消息之后不能有超过一条消息。
编辑:我还应该突出显示 Follows 上的外键。它引用此表中的 FollowupId。所以如果A->B->C,仅仅删除B会使C中的外键无效。同样,不可能只更新 C 以跟随 A,因为 B 已经跟随 A 并且唯一约束禁止重复。
当然,问题是,如果该消息后面是另一个消息,则删除后续条目现在很困难。在我看来,应该可以禁用约束检查,从而可以删除中间的后续内容,“向上移动”后续后续内容,然后重新启用检查。是否有某种方法可以仅在事务期间禁用约束?
(此外,我知道在此表中包含 RequestId 可能会导致数据不一致。最好有 Followups [FollowupId, Message]、InitialFollowups [FollowupId, RequestId] 和 followingFollowups [FollowupId, Follows] 表。我认为它不必要地使这个例子复杂化。)
假设我在错误的TFS分支中签入了一个更改.我需要将我的更改发送到另一个分支,然后以某种方式从错误的分支中消除这些更改.这可以在不诉诸选择性复制/粘贴的情况下完成吗?最后我确实希望我在分支机构中的更改错误地将它们添加到......还没有.
如果我没有检查更改,我可以搁置它们,然后使用tfpt来取消搁置到另一个分支.但这不会起作用,因为我已经检查了这些变化.
例:
我有一个MAIN和DEVELOPMENT分支的环境.我需要创建一个名为Buzzsaw的新模块.我有一个开放的解决方案,并且对我的更改进行了修改.然后我检查它们.哎呀.我意识到我刚刚将模块检入MAIN,但它应该已经检查到了开发中.我可以回滚错误的变更集,但之后我需要手动将我的更改应用于开发.大多数受影响的文件在分支之间是相同的,但是有足够的差异我不想复制/粘贴我的更改.
我可以将我的更改从MAIN合并到DEV,然后回滚MAIN.但是现在当我确实希望它们存在时很难将更改带回MAIN(将DEV合并到MAIN现在不会移动该变更集,因为它已经合并).
我能做什么?有一个相当干净的方法来实现这一目标吗?
我试图组合一个看起来像这样的对话框:
填写以下字段
_______________喜欢____________________
其中"_"行是EditFields.
我将所有字段都粘贴在HorizontalFieldManager中,我将其添加到对话框中.不幸的是,第一个EditField占用了第一行的所有空间.我试图通过创建我自己的扩展BasicEditField的类来覆盖EditField的getPreferredWidth()方法,但是没有成功.
当然必须有一种简单的方法来强制编辑字段的特定大小.我错过了什么?