将subversion作为服务安装时,我使用了以下命令:
c:\>svnservice -install --daemon --root "c:\documents and settings\my_repository"
Run Code Online (Sandbox Code Playgroud)
然后我收到了这个错误:
Could not create service in service control manager.
Run Code Online (Sandbox Code Playgroud)
在服务控制管理器上查看一些MSDN文档之后,我尝试在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services上对注册表项的权限中的每个人授予完全控制权,但这没有任何效果.
谁知道我做错了什么,或者如何克服这个问题?
注意#1:我在此框中以管理员身份运行
*注意#2:我按照这里给出的说明进行操作,因此我选择的目录可能是错误的.而我的存储库实际上并没有被称为"my_repository".我使用了一个实际项目的名称,该项目目前在gasp VSS中受源控制.*
我正在将应用程序从BDE转换为ADO.
在BDE下,如果查询是Open并且您调用了"Sql.Clear",它将自动关闭数据集.
但是,在TADOQuery下不是这种情况,它会引发异常"无法对已关闭的数据集执行操作".
我们的许多遗留代码依赖于旧的BDE行为,因此我从代码中获得了大量运行时错误,如下例所示.
我想覆盖我的TADOCustomQuery类的Sql.Clear方法,以便它包含一个".Close"命令.我怎样才能做到这一点?
".Clear"方法位于SQL属性上,类型为TWideStrings.我真正的问题是:如何在TADOQuery的后代上覆盖TWideStrings.Clear方法?
我已经有一个自定义的TADOQuery组件,这个用于SQL属性:
property SQL: TWideStrings read GetSQL write SetSQL;
Run Code Online (Sandbox Code Playgroud)
这里有一些代码来演示我遇到的问题:
procedure TForm1.btnBDEDemoClick(Sender: TObject);
var
qryBDE: TQuery;
begin
//Both queries complete with no problem
qryBDE := TQuery.Create(nil);
try
with qryBDE do begin
DatabaseName := 'Test'; //BDE Alias
Sql.Clear;
Sql.Add('SELECT SYSDATE AS CURDAT FROM DUAL');
Open;
ShowMessage('the current date is: ' + FieldByName('CURDAT').AsString);
Sql.Clear; //<<<<<NO ERRORS, WORKS FINE
Sql.Add('SELECT SYSDATE-1 AS YESDAT FROM DUAL');
Open;
ShowMessage('And yesterday was: ' + FieldByName('YESDAT').AsString);
end; //with qryBDE
finally
FreeAndNil(qryBDE);
end; …
Run Code Online (Sandbox Code Playgroud) 我在Crystal Report中有一个如下所示的switch语句:
stringvar tag := {table1.field1}; //contains a string value
select tag case
'First Value': {table1.field3}
'Second Value': {table4.field9}
default: 'Unknown';
Run Code Online (Sandbox Code Playgroud)
但是当我尝试保存公式时,我收到此错误:
---------------------------
Crystal Reports
---------------------------
The remaining text does not appear to be part of the formula.
---------------------------
OK
---------------------------
Run Code Online (Sandbox Code Playgroud)
它突出了在我的例子中单词"Second"之前的单引号开头的公式.
我做了什么愚蠢的语法错误?
我有:
德尔福2007
水晶11
Delphi 7版本的Crystal VCL组件(我知道的最新版本,它在D2007中编译得很好)
一个非常简单的测试Crystal报告,用Crystal 11编写,只是将一个表转储到屏幕上(没有选择标准,没有公式,只有直接数据)
我试过了
创建了一个新的VCL表单应用程序
删除表单上的TCrpe组件
将"ReportName"属性设置为我的测试报告.
我在表单上放了一个按钮,在它后面放了一行:
Crpe1.Execute
Run Code Online (Sandbox Code Playgroud)
如果报告有"保存数据随着报告"选项打开的,那么这个工作正常.
如果我把这个选项关闭,那么我就需要提供登录凭据.
使用此代码(在一百万年前的Delphi 5中运行良好):
procedure TForm1.BitBtn1Click(Sender: TObject);
var
logonItem: integer;
begin
Crpe1.LogOnServer.Clear;
logonItem := Crpe1.LogOnServer.Add('MYSERVER.MYDOMAIN.COM');
Crpe1.LogonServer[logonItem].UserID := 'USERNAME';
Crpe1.LogOnServer[logonItem].Password := 'PASSWORD';
Crpe1.LogOnServer[logonItem].DatabaseName := 'MYDATABASE';
Crpe1.Execute;
end;
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
---------------------------
Project2
---------------------------
Error:536 Error in File C:\REPORT.RPT:
Unable to connect: incorrect log on parameters.
Execute <PEStartPrintJob>.
---------------------------
OK
---------------------------
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如何在Delphi中为Crystal VCL组件提供登录凭据?我当前的解决方法非常难看,我有很多遗留代码要转换.如果我能以一种简单的方式使用VCL组件,那将是非常好的.
在Crystal Report中显示复选框的最佳方法是什么?
示例:我的报告有一个"男性"和"女性"的框,应该检查一个.
我目前的解决方法是绘制一个小的图形方块,并将其排列为如下公式:
if {table.gender} = "M" then "X" else " "
Run Code Online (Sandbox Code Playgroud)
这是一个糟糕的解决方案,因为更改字体会使我的"X"和它周围的框不对齐,并且眯着眼睛看屏幕并为每个盒子(有几十个)获得像素完美对齐是非常繁琐的.
有没有人有更好的解决方案?我考虑过使用旧式的终端字符,但我不确定它们是否在Crystal中正确显示.
编辑:我正在使用Crystal XI.
select*from Resource where ResourceID = 1,ResourceKeyword in(gallery 1,1980)
我有一个名为resource
列的表 ResourceID, ResourceKeyword
ResourceKeyword
我在使用此查询时可以包含多个值
我收到语法错误
什么是解决它的语法
谢谢
我有一个使用Windows身份验证的Sql Server.
我想从Delphi应用程序连接到服务器.
默认情况下,SQL Server将采用启动连接过程的用户凭据.
这意味着要更改登录,我目前有两个选择:
注销并以所需用户身份登录,然后运行我的应用程序
使用RUNAS命令从命令行启动程序.
我想让用户在应用程序中提供凭据,并以该用户身份登录.这可能是通过操作ConnectionString还是以编程方式更改当前进程的用户来实现的?
我发现的最接近的是此条目,它告诉我如何在特定凭据下启动另一个进程.我可以使用该技术创建一个"启动器"程序,在从用户收集凭据后启动连接过程,但我真的想要更清洁的东西.
我正在使用Delphi 2010来完成这个项目.
谢谢