在Microsoft SQL Server中,我知道查询是否存在列的默认约束并删除默认约束是:
IF EXISTS(SELECT * FROM sysconstraints
WHERE id=OBJECT_ID('SomeTable')
AND COL_NAME(id,colid)='ColName'
AND OBJECTPROPERTY(constid, 'IsDefaultCnst')=1)
ALTER TABLE SomeTable DROP CONSTRAINT DF_SomeTable_ColName
Run Code Online (Sandbox Code Playgroud)
但由于以前版本的数据库中的拼写错误,约束的名称可能是DF_SomeTable_ColName或DF_SmoeTable_ColName.
如何在没有任何SQL错误的情况下删除默认约束?默认约束名称不会显示在INFORMATION_SCHEMA表中,这会使事情变得有点棘手.
因此,类似于"删除此表/列中的默认约束"或"删除DF_SmoeTable_ColName",但如果无法找到它,则不会出现任何错误.
我在conf文件中设置了一个新的SVN存储库,运行SVNServe,anon-access = none.
SVNServe忠实地做到了这一点,但当我尝试使用TortoiseSVN浏览回购时,它只是说不允许访问.它不应该问我用户名和密码吗?
如何让TortoiseSVN向我询问登录详情?
运行SVN 1.5.6,TortoiseSVN 1.5.9
该软件基于Delphi 7构建.
在我的XP机器上,表单按照我的预期调整大小.但是,在两台Vista机器上,我的组件的锚点设置为[akLeft,akTop,akRight,akBottom],但是当我调整表单大小时,组件不会随表单一起拉伸,在右边缘和底边留下空白.在XP机器上,组件正确地与表单一起拉伸.
所以,似乎Vista机器忽略了锚属性.是什么导致了这个以及如何解决这个问题?
重要更新(François):
我们的D2007应用程序和所有x64窗口都存在同样的问题.
安德烈亚斯的回答确实是解决方案.所以它不是D7也不是Vista相关的.
我有一些当前存储在HKEY_LOCAL_MACHINE中的程序设置.由于Vista和锁定用户,一些用户没有HKEY_LOCAL_MACHINE的权限,这些值也不属于HKEY_LOCAL_USER(对于所有用户必须是相同的),存储这些值的最佳替代位置是什么?
大多数设置已存储在数据库中,但在连接到数据库之前,程序需要了解一些设置.理想情况下,我想要一种实现这一点的方法,而无需检查正在运行的操作系统.
这是用Delphi编写的桌面应用程序.
我有一个应用程序,其中有一个主要的背景形式,从那里用户只能维护系统的不同部分的非模态形式.非模态窗体会覆盖CreateParams方法,因此每个窗体都会在启动任务栏中显示一个按钮:
procedure TfmMaterialsPlanning.CreateParams(var Params: TCreateParams);
begin
inherited;
//create a new window on the task bar when this form is created
Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
end;
Run Code Online (Sandbox Code Playgroud)
实际上,用户可以打开一个维护"苹果"的非模态表单,另一个维持"橙子"的非模态表单,并使用开始菜单栏轻松切换两者.
但是,如果他们从"苹果"表单中打开一个模态表单,例如设置选项,首选项等,那么在关闭模态表单之前,他们不能使用"橙子"表单.
是否有可能只为父表单创建一个模态表单模态?因此,如果他们打开Apple的选项表格,他们不能使用苹果维护表格,但仍然可以使用Oranges维护表格?
我正在为Delphi寻找一个(最好是免费的)组件,用户可以轻松选择大约100种不同的颜色.
我现在有一个作为DevExpress编辑器的一部分,但它只有大约20种适当的颜色可供选择,还有一堆其他"Windows"颜色,如clHighlight,clBtnFace等.
它适用于普通用户,因此希望避免要求他们手动选择RGB值.
与MS Paint中的颜色选择器类似的东西可能有用,或列出X11/web颜色的东西:
http://en.wikipedia.org/wiki/Web_Colors
所以,如果您有任何建议,请告诉我.
感谢大家的建议
所有的建议都很好,我没有意识到可以调用MS Paint颜色对话框,这就是我所需要的并且是最简单的解决方案.谢谢
我们目前正在使用Delphi 5和Delphi 2005进行开发,并研究通过Delphi Prism进行.NET路由.
是否有与Delphi的ActionList等效的.NET?
对于那些不熟悉ActionList的人来说,它是一个包含我们创建的动作集合的组件,例如Save,Refresh,Load等.每个动作都可以有一个标题,图像,启用/禁用赋值.之后,您可以为操作指定一个按钮,该按钮将继承操作的标题,图像等,如果您的UI具有可用作菜单项和按钮的保存操作,则它们都可以使用相同的操作.
与这个问题基本相同,但是在Delphi Prism中:
我设法从字符串中做到这一点:
YourEnum := Enum.Parse(TypeOf(YourEnum), "mystr") as YourEnum
Run Code Online (Sandbox Code Playgroud)
但我尝试了以下操作,并收到类型不匹配错误:
YourEnum := 3 as YourNum
Run Code Online (Sandbox Code Playgroud)
你知道将 int 转换为 Enum 的语法是什么吗?
我们将代码移植到Delphi XE2,并且需要将我们的数据访问组件从不再业务的第三方ODBCExpress更改为dbExpress的TSQLQuery.
我们有参数化的SQL查询,例如:
sSQL :=
'UPDATE ZTestData SET '+
' StringField =?, '+
' IntField = ?, '+
' DecimalField = ?, '+
' BooleanField = ?, '+
' DateTimeField = ?, '+
' TextField = ? '+
' WHERE UniqueID = 3';
Run Code Online (Sandbox Code Playgroud)
如果我们使用以下代码:
var
qry:TSQLQuery;
begin
qry.Close;
qry.SQL.Text := sSQL;
ShowMessage(IntToStr(qry.Params.Count));
end;
Run Code Online (Sandbox Code Playgroud)
它返回0,所以我们无法使绑定工作,但如果我们将sSQL更改为:
sSQL :=
'UPDATE ZTestData SET '+
' StringField =:Param1, '+
' IntField = :Param2, '+
' DecimalField = ?, '+
' BooleanField = ?, '+
' …Run Code Online (Sandbox Code Playgroud) delphi ×8
forms ×2
.net ×1
64-bit ×1
actionlist ×1
anchor ×1
colors ×1
components ×1
dbexpress ×1
delphi-prism ×1
enumerable ×1
modal-dialog ×1
oxygene ×1
picker ×1
process ×1
registry ×1
sql ×1
sql-server ×1
svn ×1
t-sql ×1
tortoisesvn ×1
windows ×1