我是Visual Studio 2010和C#的新手.如何使用快捷方式将所选文本向左/向右缩进?
在Delphi IDE中,等价物是Ctrl+ Shift+ I和Ctrl+ Shift+U
我需要保护应用程序免受SQL注入.应用程序使用ADO连接到Oracle,并搜索用户名和密码以进行身份验证.
从我读到现在开始,最好的方法是使用参数,而不是将整个SQL分配为字符串.像这样的东西:
query.SQL.Text := 'select * from table_name where name=:Name and id=:ID';
query.Prepare;
query.ParamByName( 'Name' ).AsString := name;
query.ParamByName( 'ID' ).AsInteger := id;
query.Open;
Run Code Online (Sandbox Code Playgroud)
另外,我正在考虑验证来自用户的输入,并删除删除,插入,选择等SQL关键字......任何不同于普通ASCII字母和数字的输入字符都将被删除.
这样可以保证我的安全级别最低?
我不想使用除Delphi 7标准和Jedi之外的任何其他组件.
我觉得这应该很容易,但谷歌目前完全失败了.我想打开一个文件,或者如果它不存在就创建它,并写入它.
下列
AssignFile(logFile, 'Test.txt');
Append(logFile);
Run Code Online (Sandbox Code Playgroud)
当文件不存在时,在第二行引发错误,我认为这是预期的.但我真的没有找到如何a)测试文件是否存在和b)在需要时创建它.
仅供参考,在Delphi XE工作.
我正在使用delphi,当我执行openpicturedialog时,我想要一个目录的所有文件的列表.
即,当执行打开对话框并从中选择一个文件时,我想要所选文件目录中的所有文件列表.
您甚至可以建议我从
Thank You的FileName
属性获取目录名称TOpenDialog
.
我想知道您对在项目中使用数据感知组件的看法.通过使用Delphi和数据感知组件(来自Delphi的标准套件或第三方),开发应用程序(win32和web)的"优势"和"弱点"是什么?
使用FireBird我已经使用了IBObjects,它是一个成熟的组件套件并且运行良好.
但是还有很多其他RDBMS(MySQL,MSSQL,DB2,Oracle,SQLite,Nexus,Paradox,Interbase,FireBird等).如果您已经开发了大型项目,您已经使用了大量数据感知组件,请回答数据库类型和数据感知组件套件名称.
我也对DB2(AS400)感兴趣.您成功使用了哪些组件,或哪些组件真的很难用?
关于线程如何在delphi中工作我有一个两难的问题,以及为什么在线程应该引发异常的时候,没有显示异常.bellow是带注释的代码,也许有人会向我解释该线程或delphi如何管理访问冲突
//线程代码
unit Unit2;
interface
uses
Classes,
Dialogs,
SysUtils,
StdCtrls;
type
TTest = class(TThread)
private
protected
j: Integer;
procedure Execute; override;
procedure setNr;
public
aBtn: tbutton;
end;
implementation
{ TTest }
procedure TTest.Execute;
var
i : Integer;
a : TStringList;
begin
// make severals operations only for having something to do
j := 0;
for i := 0 to 100000000 do
j := j + 1;
for i := 0 to 100000000 do
j := j + 1;
for i …
Run Code Online (Sandbox Code Playgroud) 每当我在我的FMX表格(RAD Studio 10.2)上放置FastReport 2.0 FMX - > TfrxReport组件时,我会收到弹出的错误消息"clCantRen"
运行时没有调试我得到以下错误"[dcc32错误] E2161错误:RLINK32:打开文件时出错"C:\ FireMonkey\MainFrm.fmx"
我的库路径如下
Win32: - C:\ Program Files(x86)\ FastReport FMX\LibD25 Win64: - C:\ Program Files(x86)\ FastReport FMX\LibD25x64
即使我试图保存项目或关闭项目,也不允许我通过弹出错误信息"clCantRen"来这样做.
只有在我从fmx表单中删除组件TfrxReport后,才允许我保存并关闭.请有人告诉我为什么我在FMX表格上收到TfrxReport组件的错误.
任何帮助将不胜感激.
我想在不使用3d零件组件的情况下将TQuery的内容导出到CSV文件(Delphi 7).据我所知,使用Delphi标准组件无法实现这一点.
我的解决方案是将内容保存在CSV格式的StringList中,并将其保存到文件中.
有没有舒服的解决方案?
PS:我不想使用JvCsvDataSet或任何组件.问题是:这可以仅使用Delphi 7或更高标准组件来完成吗?
先感谢您!
我有以下线程代码,第一次执行正确.之后,我不时在线程的Execute方法上获得AV,例如
调试输出:TProcesses.Execute在模块'ListenOutputDebugString.exe'中的地址00409C8C处的访问冲突.读取地址08070610处理ListenOutputDebugString.exe(740)
我不知道是什么产生这个AV ...
unit Unit3;
interface
uses
Classes,
StdCtrls,
Windows,
ExtCtrls,
SysUtils,
Variants,
JvExGrids,
JvStringGrid;
type
TProcesses = class(TThread)
private
{ Private declarations }
FTimer : TTimer;
FGrid : TJvStringGrid;
FJobFinished : Boolean;
procedure OverrideOnTerminate(Sender: TObject);
procedure DoShowData;
procedure DoShowErrors;
procedure OverrideOnTimer(Sender: TObject);
protected
procedure Execute; override;
public
constructor Create(aGrid : TJvStringGrid);overload;
end;
implementation
{TProcesses }
var SharedMessage : String;
ErrsMess : String;
lp : Integer;
constructor TProcesses.Create(aGrid : TJvStringGrid);
begin
FreeOnTerminate := True;
FTimer := TTimer.Create(nil);
FTimer.OnTimer := …
Run Code Online (Sandbox Code Playgroud) 我的一位同事向我展示了用Delphi-XE XE版本15.0.3953.35171编写的代码,我认为它应该引发访问冲突.代码如下:
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm3 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
function test:TstringList;
{ Public declarations }
end;
var
Form3: TForm3;
implementation
{$R *.dfm}
procedure TForm3.FormCreate(Sender: TObject);
var aStrList : TStringList;
begin
aStrList := TStringList.Create;
test;
FreeAndNil(aStrList);
end;
function TForm3.test: TstringList;
var i:Integer;
begin
for i:=0 to 1000 do
Result.Add('aaa');//AV?
end;
end.
Run Code Online (Sandbox Code Playgroud)
检查aStrList和Result具有以下结果:
aStrList: TStringList $12FEDC : $42138A
Result: TStringList $12FEC4 : $B01B90 …
Run Code Online (Sandbox Code Playgroud) delphi ×10
delphi-xe ×3
oracle ×2
c# ×1
csv ×1
data-aware ×1
fastreport ×1
firebird ×1
firemonkey ×1
ibm-midrange ×1
indentation ×1
opendialog ×1
sql ×1
tquery ×1