在Java中,我们有类似的地方VarName.toString来描述var的名称.
我在Delphi中有一个代码,我需要实现相同的功能,因为我有一个record类型,我需要识别许多子字符串:
type
THierarchyAccess = String; // receive the user permissions from the MySQL DB
THierarchy = record
MOD_HIERARQUIA : THierarchyAccess; // 'BROWSE_ONLY', 'MANAGE', 'NONE'...
MOD_OPERADORES : THierarchyAccess;
MOD_ESTATISTICAS : THierarchyAccess;
MOD_AUDITORIA : THierarchyAccess;
MOD_HOMEPAGE : THierarchyAccess;
MOD_HOTSITES : THierarchyAccess;
MOD_MATRIZ : THierarchyAccess;
MOD_NOTICIAS : THierarchyAccess;
MOD_VISITANTES : THierarchyAccess;
...
end;
...
function TAccess.IsAccessPermited(apNeed, apHave: String): Boolean;
begin
// HERE I need to know not only the content of "apHave",
// but if it came from …Run Code Online (Sandbox Code Playgroud) 我正在开发一个艺术家档案和桌面软件的网站来管理其数据库内容.有许多运营商会在其收件箱中收到相同数量的待审核记录,以便进行审批和发布.问题是当两个或多个运算符尝试编辑同一记录时.数据库服务器(远程mysql)将引发锁定错误,或者只是维护最后保存它的运算符的数据.
在向另一个用户授予对此记录的访问权限之前,检查是否有人已经在编辑记录的最佳方法(更简单和更有效的方法),或者如果记录的所有者是他自己再次更新他的记录,那将是什么?网站?
该软件仍在实验室中.但当我将它交付给客户时,我知道这将是一个问题.
我可以创建一个表来将每个记录标记为"在编辑中"或"空闲",因此我不需要改变表的结构(因为人们已经在网站上使用它们).但我需要确保有更优雅/更快的方式来做到这一点.
Delphi XE3及以下版本的应用程序风格很酷.但我注意到我们可以根据需要标记多种样式,并选择使用哪种样式作为默认样式.
这意味着我们可以随意更改样式,但如何在代码中执行?如何让用户选择在我们的软件中使用哪种风格?
每当我打字if并按下空格键时,Delphi就会用if True then上面的空行完成它.
有没有办法删除这个 "自动完成"功能或至少编辑它不创建新行?
我正在开发一个大数据库,从这种情况来看,我决定至少考虑两次关于表格和字段布局的决策.我最关心的是主键.
我几乎总是使用table name加号_id来命名这些索引.我这样做是因为在连接表时我不必担心重复的字段名称,因为Delphi数据库组件给我们的字段table_name.field_name只是字段.
另一方面,如果我们可以为每个表使用相同的ID字段名称,那么创建一个函数来处理与该索引控件有关的每个表总是更容易.
有没有人在选择其中一个数据库设计时遇到过错误?在每个字段名称上重复表名称是一种好方法吗?
在Delphi中我们可以这样做:
interface
var
test: string = 'this is a test!'; { compiler accepts that }
Run Code Online (Sandbox Code Playgroud)
但我们不能这样做:
implementation
procedure showTest;
var
internal_test1; { compiler accepts that }
internal_test2: string = 'another test'; { compiler error }
Run Code Online (Sandbox Code Playgroud)
我希望Embarcadero的一些用户可以回答这个问题.:-)
我Windows Service使用向导创建了一个新项目,推出了一些代码,编译了它,运行它/INSTALL然后我尝试使用它来启动它net start myservice但是我有一个service name not found错误; 然后我进入了服务中的控制面板,当我尝试开始单击"开始"链接时,对话框窗口会无限期地显示50%的进度条冻结.
这是我第一次尝试提供服务来更新我正在开发的主系统,为了测试我Timer每隔一分钟就说一次.任何人都可以注意到什么是错的,为什么它会像那样?
该DPR文件包含:
{...}
begin
if not Application.DelayInitialize or Application.Installing then
begin
Application.Initialize;
end;
Application.CreateForm(TZeusUpdateSevice, ZeusUpdateSevice);
Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)
和PAS文件:
{...}
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
ZeusUpdateSevice.Controller(CtrlCode);
end;
function TZeusUpdateSevice.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;
procedure TZeusUpdateSevice.ServiceAfterInstall(Sender: TService);
var
regEdit : TRegistry;
begin
regEdit := TRegistry.Create(KEY_READ or KEY_WRITE);
try
regEdit.RootKey := HKEY_LOCAL_MACHINE;
if regEdit.OpenKey('\SYSTEM\CurrentControlSet\Services\' + Name,False) then
begin
regEdit.WriteString('Description','Mantém …Run Code Online (Sandbox Code Playgroud) 读了这个问题:
德尔福Windows服务的设计,我看到大部分的设计师在使用下面这段代码OnExecute的TService或TThread方法,以保持服务活着.
while not Terminated do
begin
// do something
end;
Run Code Online (Sandbox Code Playgroud)
但是,如果我需要(和我一样)来创建一个服务(使用印),以便发回一些认证数据由主应用程序发送的消息,我该怎么用这个代码做回应,忽略它或把一些Sleep()在它?
我有这个功能,如果我使用GetIP('server-name')或GetIP('google.com')在我的Delphi 2006 中检索IP地址.
但现在我正在尝试它,Delphi-XE3它不起作用.有任何想法吗?
function GetIP(const HostName: string): string;
var
WSAData: TWSAData;
R: PHostEnt;
A: TInAddr;
begin
Result := IPNULL; // '0.0.0.0'
WSAStartup($101, WSAData);
R := Winsock.GetHostByName(PAnsiChar(HostName));
if Assigned(R) then
begin
A := PInAddr(r^.h_Addr_List^)^;
Result := string(WinSock.inet_ntoa(A));
end;
end;
Run Code Online (Sandbox Code Playgroud)
似乎R没有被分配,因为结果总是如此'0.0.0.0'
我正在开发一个管理面板,我们可以确定stored procedures和views可被称为甲骨文12c的模式,从我们的微服务平台服务.
服务必须知道过程需要哪些参数以及视图可用的列,以便调用它们.
我是管理面板,程序或视图的创建者可以通过输入这些信息来注册它,如对象的名称,每个参数的名称,长度和数据类型.
但是如果用户只输入对象的名称然后SQL SELECT将在表中检索过程的参数属性,并且视图的列的属性相同,那么它将更加优雅,因此面板将自动注册这些配置.
任何人都可以发布关于如何实现这一目标的查询吗?我是Oracle的新手,我不知道如何查询对象元数据.