这是一个简单的代码:
procedure Test;
var
V: OleVariant;
begin
V := CreateOleObject('ADOX.Catalog');
try
// do something with V...
finally
V := Unassigned; // do we need this?
end;
end;
Run Code Online (Sandbox Code Playgroud)
我们是否需要V := Unassigned
在最后使用代码,或者V
当它存在于Test
程序范围内时是免费的吗?在VB中,您将变量设置为Nothing.我们需要在这做同样的事吗?即:
function VarNothing: IDispatch;
// emulate VB function SET VarX = Nothing
var
Retvar: IDispatch;
begin
Retvar := nil;
Result := Retvar;
end;
// do something with V and finally:
V := VarNothing;
Run Code Online (Sandbox Code Playgroud) 有没有人在Delphi中成功使用过WebKit?
WebKit是一个开源的Web浏览器引擎.WebKit也是Safari,Dashboard,Mail和许多其他OS X应用程序使用的引擎的Mac OS X系统框架版本的名称.
我想创建一个与电子设备相同的iPhone/iPad移动模拟器.(我试过免费版 - 似乎它也使用Adobe AIR).
使用Safari浏览器,我们可以为iPhone移动网站提供最准确的预览结果.所以我想在我的应用程序中嵌入WebKit(Safari使用),这样我的客户就可以对他们的移动网站进行可靠的预览.
我在网上搜索过,但找不到合适的代码.(我能找到的最好的是这个,但它不起作用).
Delphi Chromium Embedded在答案中提出的3个主要问题是:
我知道sql语句中参数的用法,但只是为了好奇,使用Format函数来防止sql注入而不是使用参数是安全的.
喜欢这个样本
sCustomer : string
begin
AdoSql.CommandText:=Format('Select SUM(value) result from invoices where customer=%s',[QuotedStr(sCustomer)]);
end;
Run Code Online (Sandbox Code Playgroud) 使用单个TADOQuery
i使用左外连接从两个不同的表中提取记录:
Select M*, D.* from Courier M Left outer join Courier_VT D on M.Courier_Identifier = D.FK_Courier_Identifier
Run Code Online (Sandbox Code Playgroud)
我用a TDBGrid
来成功地将字段更新发布到我的MSSQL DB.
由于有外键引用(FK_Courier_Identifier
带Courier_Identifier
)我插入记录时出错,
无法将值Null插入列'FK_Courier_Identifier',表Courier_VT; 列不允许null
但是在Courier表中发布了一条记录,我知道我需要在发布之前分配Courier_Identifier
到FK_Courier_Identifier
,但不知道如何以及在何处进行
我们如何在此场景中插入\删除记录?是否有可能实现单一使用TADOQuery
?
Delphi中是否有任何内置函数可以删除TStringList
空的所有字符串?
如何遍历列表以删除这些项目?
我遇到了一个表现出一些奇怪行为的TPageControl.
控件有3页,但是当我这样做
for I:=0 to PageControl.PageCount-1 do begin
PageControl.Pages[I].TabVisible := False;
PageControl.Pages[I].Visible := Ord(iColorScale.GenerationMode) = I;
end;
Run Code Online (Sandbox Code Playgroud)
执行循环的第一次迭代的第一行时,我得到一个'List index out of bounds(3)'错误
PageControl.Pages[0].TabVisible := False;
Run Code Online (Sandbox Code Playgroud)
现在,当我在调试器中查看PageControl属性时,一切似乎都是有序的.PageCount预计为3,我可以在评估器中看到所有页面及其属性,包括第0页的TabVisible
我在Windows 7机器上使用Delphi XE ..有谁知道发生了什么?我不知所措.
当我尝试在链接中打开任何具有双引号("
)的站点时,例如.user.php?name="stackoverflow"
它只是削减"
或有时它重定向到谷歌!?二手代码:
ShellExecute(0, 'open', PChar('open'), PChar(URL), nil, SW_SHOW) ;
Run Code Online (Sandbox Code Playgroud) 如何正确地向前和向后移动字幕时间?字幕时间格式如下所示:
00:00:52,656 --> 00:00:56,326
如果字幕和音频不同步,例如,在语音/音频之前显示字幕,00:00:52,656 --> 00:00:56,326
则应校正字幕行的所有时间(时间格式:).
因此,如果所有字幕行的时间必须改变/移位2秒.然后,这次是字幕行:00:00:52,656 --> 00:00:56,326
应该改为:
00:00:54,656 --> 00:00:58,326
.
这指的是字幕文件中的所有时间,而不仅仅是一行文本/一次.
SubRip(.srt)文件的示例:
1
00:00:52,656 --> 00:00:56,326
Kanalska Zona: Panama
2
00:00:56,335 --> 00:00:59,755
Francuzi su pokušali da izgrade
kanal pre Amerikanaca.
Run Code Online (Sandbox Code Playgroud) 我需要能够将两个不同的连接字符串进行比较,并确定它们是否是相同的信息.我不能进行简单的字符串比较,因为属性可以以不同的方式布局,但仍然代表相同的连接.
在我为此写下自己的比较之前,是否已经可以做到这一点?
我已经找到了一种方法,我找不到任何关于此的内容.
我很难接受一些非常直截了当的事情.我有一个SQL Server数据库,我正在尝试使用空字符串更新不可为空的varchar或nvarchar字段.我知道这是可能的,因为空字符串''
是不一样的东西NULL
.但是,使用它TADOQuery
,它不允许我这样做.
我正在尝试更新现有记录,如下所示:
ADOQuery1.Edit;
ADOQuery1['NonNullFieldName']:= '';
//or
ADOQuery1.FieldByName('NonNullFieldName').AsString:= '';
ADOQuery1.Post; //<-- Exception raised while posting
Run Code Online (Sandbox Code Playgroud)
如果字符串中有任何内容,即使只是一个空格,它也会像预期的那样保存得很好.但是,如果它是一个空字符串,它会失败:
不可为空的列无法更新为Null.
但它不是空的.它是一个空字符串,应该可以正常工作.我发誓我过去曾多次通过空串.
为什么我会收到此错误,我应该怎么做才能解决它?
额外细节:
SQLOLEDB.1
nvarchar(MAX) NOT NULL