小编Jen*_*off的帖子

是否有用于访问 Advantage Database Server 的 Python 模块?

正如标题所暗示的那样,我想知道是否有一个 Python 模块可以访问 Advantage Database Server (Sybase) 文件,例如 ADT 和 DBF。

我在网上搜索过,但找不到我要找的东西,这就是我想在这里提问的原因。

python database dbf module advantage-database-server

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

Windows快捷方式是否支持很长的参数长度?

我正在尝试创建一个包含长参数字符串(> MAX_PATH)的快捷方式(在桌面上).

MSDN文档中明确指出,对Unicode字符串的字符串可以超过MAX_PATH.

生成的快捷方式在MAX_PATH字符(即Path+ Arguments)后完全切断.

我的实现是否有问题,或者这是一些Windows限制?

procedure CreateShortcut(APath: WideString;
  AWorkingDirectory: WideString; AArguments: WideString; ADescription: WideString;
  ALinkFileName: WideString);
var
   IObject : IUnknown;
   ISLink  : IShellLinkW;
   IPFile  : IPersistFile;
begin
   IObject := CreateComObject(CLSID_ShellLink);
   ISLink := IObject as IShellLinkW;
   ISLink.SetPath(            PWideChar(APath));
   ISLink.SetWorkingDirectory(PWideChar(AWorkingDirectory));
   ISLink.SetArguments(       PWideChar(AArguments));
   ISLink.SetDescription(     PWideChar(ADescription));
   IPFile := IObject as IPersistFile;
   IPFile.Save(PWideChar(ALinkFileName), False);
end;
Run Code Online (Sandbox Code Playgroud)

PS:操作系统是Windows XP(及以上版本).

windows delphi shortcut maxlength delphi-2007

5
推荐指数
2
解决办法
7933
查看次数

如何实现IsFirstRecord和IsLastRecord?

我喜欢在用户点击它们时没有意义的情况下禁用控件.

一个特殊情况是一组自定义菜单按钮,用于模拟标准的第一个,前一个,下一个和最后一个按钮TDBNavigator.

当用户单击第一个按钮时,第一个和前一个按钮都被禁用.

当用户然后单击下一个和前一个按钮时,底层TDataSet位于与之前相同的记录上,但是仍然启用了第一个和前一个按钮.

当前的实现如下所示:

NavigationFirstButton.Enabled := not DataSet.IsEmpty and not DataSet.Bof;
NavigationPriorButton.Enabled := not DataSet.IsEmpty and not DataSet.Bof;
NavigationNextButton.Enabled  := not DataSet.IsEmpty and not DataSet.Eof;
NavigationLastButton.Enabled  := not DataSet.IsEmpty and not DataSet.Eof;
Run Code Online (Sandbox Code Playgroud)

Bof并且Eof不是禁用按钮的正确方法,因为我必须事先知道当前记录是否是第一个/最后一个记录.

所以我想用一个IsFirstRecordIsLastRecord方法重写这个:

function IsFirstRecord(ADataSet: TDataSet): Boolean;
begin
    Result := ADataSet.RecNo = 0;
end;

function IsLastRecord(ADataSet: TDataSet): Boolean;
begin
    Result := ADataSet.RecNo = ADataSet.RecordCount - 1;
end;
Run Code Online (Sandbox Code Playgroud)

我不认为这是一个好主意,因为我已经看到第一个记录RecNo = 0不正确的情况.(即过滤的TADSQuery)

什么是可靠的实现IsFirstRecordIsLastRecord?甚至可以使用当前 …

delphi tdataset delphi-xe2

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

Delphi XE2 中的重复构造函数警告

我有以下.dpr

program TPWDDBManager;
{

  Delphi DUnit Test Project
  -------------------------
  This project contains the DUnit test framework and the GUI/Console test runners.
  Add "CONSOLE_TESTRUNNER" to the conditional defines entry in the project options
  to use the console test runner.  Otherwise the GUI test runner will be used by
  default.

}

{$IFDEF CONSOLE_TESTRUNNER}
{$APPTYPE CONSOLE}
{$ENDIF}

uses
  DUnitTestRunner,
  TestuTPWDDBManager in 'TestuTPWDDBManager.pas';

{$R *.RES}

begin
  DUnitTestRunner.RunRegisteredTests;
end.
Run Code Online (Sandbox Code Playgroud)

和以下单位:

unit TestuTPWDDBManager;
{

  Delphi DUnit Test Case
  ----------------------
  This unit contains a skeleton test case …
Run Code Online (Sandbox Code Playgroud)

delphi unit-testing

5
推荐指数
2
解决办法
2282
查看次数

有地图功能吗?

我刚写了这个函数:

class function TGenerics.Map<TFrom, TTo>(const AEnumerable: IEnumerable<TFrom>;
  const AConverter: TConstFunc<TFrom, TTo>): IList<TTo>;
var
  L: IList<TTo>;
begin
  L := TCollections.CreateList<TTo>;
  AEnumerable.ForEach(
    procedure(const AItem: TFrom)
    begin
      L.Add(AConverter(AItem));
    end
  );
  Result := L;
end;
Run Code Online (Sandbox Code Playgroud)

这大致相当于Haskells map(或fmap,liftM等).

所以我想知道Spring4D中是否存在类似的东西?

delphi collections delphi-xe2 spring4d

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

Excel无法使用IIS7和Windows Server 2008 R2(64位)访问该文件

我有一个需要访问Excel文件的Web项目(.NET 4),但最终会出现以下错误消息:

Error occurred during file generation.Microsoft Excel cannot access the file 'D:\xx\xx\abc.xls'. 
There are several possible reasons: 
• The file name or path does not exist. (Actually it is there)
• The file is being used by another program. (It can not happen) 
• The workbook you are trying to save has the same name as a currently open workbook.
Run Code Online (Sandbox Code Playgroud)

在IIS7中,我使用DefaultAppPool,其标识为"myservice",位于Administrators组下.

在IIS下的我的网站的身份验证页面中,启用了匿名身份验证并设置为"应用程序池标识"并禁用了ASP.NET模拟.

在搜索解决方案数小时后,我发现了以下内容,但没有一个能够正常工作

  1. 在C:\ Windows\SysWOW64\config\systemprofile\Desktop中创建文件夹.请参考:这个
  2. 在组件服务中授予"myservice"权限.请参考:这个

有一点奇怪,IIS_IUSRS组中没有任何内容.这是正常的吗?我记得至少有两个用户(DefaultAppPool和Classic .NET AppPool).

我认为这是IIS的权限问题,但我无法解决它.

permissions excel iis-7 identity windows-server-2008

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

如何在通用TList <Integer>中获取最大值?

获得最大值的最简单方法是TList<Integer>什么?

function GetMaximum(AList: TList<Integer>): Integer;
begin
  Assert(AList.Count > 0);
  Result := ?;
end;
Run Code Online (Sandbox Code Playgroud)

我读到C#有一个AList.Max,在Delphi中有类似的东西吗?

delphi delphi-xe2

4
推荐指数
2
解决办法
2383
查看次数

如何不使用使用它的应用程序每次重新编译已安装的软件包?

当我在 IDE 中安装一个包并在项目中使用它时,每次编译我的项目时都会重新编译它(替换 DCU)。

我无法想象这是故意的 - RTL 和 VCL 也不是每次都编译,是吗?

我对工具> 选项> 环境选项> Delphi 选项> 库中的路径进行了一些操作,但没有成功。

我发现了一种结构,它允许编译我的项目,而无需重新编译在不同路径中具有 DCU 和 PAS 的包,但在此结构中,Delphi 根本无法从代码编辑器(例如按住 SHIFT 单击)中找到源代码,因此这不是一个选择。

delphi delphi-ide

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

当我的解析器明确地寻找它时,为什么我会得到"意外的输入结束"?

import Control.Applicative hiding (many)
import Text.Parsec
import Text.Parsec.String

lexeme :: Parser a -> Parser a
lexeme p = many (oneOf " \n\r") *> p

identifier :: Parser String
identifier = lexeme $ many1 $ oneOf (['a'..'z'] ++ ['A'..'Z'])

operator :: String -> Parser String
operator = lexeme . string

field :: Parser (String, String)
field = (,) <$> identifier <* operator ":" <*> identifier <* operator ";"

fields :: Parser [(String, String)]
fields = many (try field) <* eof

testInput …
Run Code Online (Sandbox Code Playgroud)

haskell parsec

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

是否有键盘快捷键在对象检查器和表单设计器之间切换?

您可以使用F11键从表单设计器转到对象检查器到圆形的源编辑器:

Code - > Inspector - > Design - > Inspector - > Code - > Inspector - > ...

但大部分时间在设计表格时我只想要:

检查员< - >设计

我在Delphi的帮助下搜索过,没有找到合适的键盘快捷方式.

是否有键盘快捷键可以做到这一点?

ide delphi keyboard-shortcuts delphi-xe7

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