小编Jos*_*ons的帖子

在Windows上将Subversion设置为服务

将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中受源控制.*

svn version-control

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

我怎么能在Delphi中这样做?

我正在将应用程序从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)

delphi ado bde

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

Crystal Reports SELECT CASE语句

我在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"之前的单引号开头的公式.

我做了什么愚蠢的语法错误?

crystal-reports

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

Crystal报道了Delphi 2007

我有:

德尔福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组件,那将是非常好的.

delphi delphi-2007 crystal-reports

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

Crystal Report中的复选框

在Crystal Report中显示复选框的最佳方法是什么?

示例:我的报告有一个"男性"和"女性"的框,应该检查一个.

我目前的解决方法是绘制一个小的图形方块,并将其排列为如下公式:

if {table.gender} = "M" then "X" else "  "
Run Code Online (Sandbox Code Playgroud)

这是一个糟糕的解决方案,因为更改字体会使我的"X"和它周围的框不对齐,并且眯着眼睛看屏幕并为每个盒子(有几十个)获得像素完美对齐是非常繁琐的.

有没有人有更好的解决方案?我考虑过使用旧式的终端字符,但我不确定它们是否在Crystal中正确显示.

编辑:我正在使用Crystal XI.

crystal-reports

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

在Query中使用Keyword IN关键字

select*from Resource where ResourceID = 1,ResourceKeyword in(gallery 1,1980)

我有一个名为resource 列的表 ResourceID, ResourceKeyword

ResourceKeyword 我在使用此查询时可以包含多个值

我收到语法错误

什么是解决它的语法

谢谢

sql

0
推荐指数
1
解决办法
122
查看次数

使用Delphi应用程序中的Windows身份验证连接到Sql Server时,以编程方式更改用户名

我有一个使用Windows身份验证的Sql Server.

我想从Delphi应用程序连接到服务器.

默认情况下,SQL Server将采用启动连接过程的用户凭据.

这意味着要更改登录,我目前有两个选择:

  1. 注销并以所需用户身份登录,然后运行我的应用程序

  2. 使用RUNAS命令从命令行启动程序.

我想让用户在应用程序中提供凭据,并以该用户身份登录.这可能是通过操作ConnectionString还是以编程方式更改当前进程的用户来实现的?

我发现的最接近的是此条目,它告诉我如何在特定凭据下启动另一个进程.我可以使用该技术创建一个"启动器"程序,在从用户收集凭据后启动连接过程,但我真的想要更清洁的东西.

我正在使用Delphi 2010来完成这个项目.

谢谢

sql-server delphi windows-authentication

0
推荐指数
1
解决办法
2216
查看次数