我正在Delphi 7中编写一个客户端 - 服务器win32应用程序,我需要带一个aprox.包含Oracle数据库数据的100k(更少或更多)行.到目前为止一切都还可以,但必须计算其中一个字段(一个带有大数字的简单除法).
我的问题是,如何在SQL查询(可能是存储过程)中进行划分,或者计算此字段的代码值(在服务器端),消耗和优化的资源更少?我不想在计算字段中使用TDataset.
Oracle系统(v 9.2)也被其他应用程序使用,并不仅仅专用于此应用程序.
提前致谢.
当我开始使用Delphi时,我读到了避免无参数Create构造函数无用调用的唯一方法是在其中抛出异常或断言.当我本周第一次使用reintroduce关键字时,我发现它似乎也解决了这个问题.
Test = class
private
n_ : Integer;
public
constructor Create(n : Integer); reintroduce;
end;
Run Code Online (Sandbox Code Playgroud)
调用Test.Create给出了所需的编译器错误.这种方法有什么问题吗?
我想参与用Delphi编写的开源项目.到目前为止,我了解项目JEDI和CNPack小组.你知道其他开源项目/社区吗?如果答案来自该社区的成员,我将非常感激.
我有一个Delphi DLL,我想在我的应用程序内部加载一个线程(不止一个,确切地说).DLL只是创建一个对象,然后它使用它并销毁它.从这个角度来看,DLL代码是线程安全的.
但是如果我在一个线程中加载该DLL会发生什么?DLL仍然是线程安全的吗?关于加载DLL的线程,我应该知道什么?我已经看到VCL具有在创建线程时设置的IsMultThread属性,但是dll会得到关于此的通知,还是应该手动执行?
文档System.DateUtils.EncodeDateTime()说:
有效小时值为0到24.(如果指定的小时为24,则分钟,秒和毫秒值都应为0,并且生成的TDateTime值表示指定日期结束时的午夜和第二天的开始).
如果我尝试这样做,EncodeDateTime(2008,1,1,24,0,0,0);我会收到一个例外.
我究竟做错了什么?
我有一个aprox表单,上面有200个可视组件,分配了很多事件,我现在需要将它更改为一个框架.我没有足够的时间复制所有组件,重新安排所有视觉组件并重新分配所有事件,对齐等等.所以,我已经复制了pas和dfm,打开并开始在文本编辑器中编辑它们(将TForm更改为Tframe等)但似乎这不是获得预期的结果.
有谁知道如何解决这个问题?
我需要一个具有自动完成功能的备忘录.最终,当用户按下类似于Delphi IDE自动完成的热键(Ctrl-space)时,我希望能够显示自定义自动完成列表.
我有TMS AdvMemo,但说实话,缺少对这个特定组件的帮助.似乎AdvMemo支持自定义自动完成,但我似乎无法找到如何显示列表.
所以,如果有人有任何建议在备忘录上实现自动完成,或者启发我使用AdvMemo,我将不胜感激
我正在将一个旧项目移植到Delphi XE,我在下面的代码中收到此警告.
function RemoveThousandSeperator(Text: String) : String;
Var P : Integer;
begin
if length(Text) > 3 then begin
p := Pos(FormatSettings.ThousandSeparator,Text);
while p >0 do begin
Delete(Text,p,1);
p := Pos(FormatSettings.ThousandSeparator,Text);
end;
end;
result := Text;
end;
Run Code Online (Sandbox Code Playgroud)
甚至FormatSettings.ThousandSeparator的类型为char.
LE:我问是否有人可以告诉我为什么会出现此警告.代码很旧,它将被重新制作.
LE2:为了获得此警告,需要在Delphi编译器提示和警告中将所有警告设置为true
LE3:如果有人需要它 - {$ WARN UNSAFE_CAST OFF}使警告响起.
LE4:对那些认为警告难以置信的人的警告截图

即使这听起来很奇怪,我相信每个人在处理具有大量自定义组件的大型应用程序时都会遇到这种问题.在某处生成AV,但应用程序继续执行,稍后会引发错误.我不是在谈论多线程应用程序.关于通用单线程应用程序.
我正在努力找到一个随机引发的错误,甚至我正在使用MadExcept/AQT,调试dcus和断点,但是我无法确定引发它的步骤,以及引发它的步骤.错误正在传播,并且有时会出现TWinControl destroy(Delphi标准TPageControl),有时打开数据集(使用相同的SQL打开和关闭几次).所以堆栈被破坏了,在这种情况下我无法使用它.
我知道这个问题过于局部化了,但我问你还有其他的替代品来跟踪这类错误.
情况如下:在应用程序主窗体上创建事件某些条件不受尊重,因此应用程序需要关闭.
是的,这是一个糟糕的设计,但应该如何关闭应用程序?使用Application.MainForm.Close生成AV.Application.Terminate不是一个很好的选择.其他想法?