使用FireDAC的Array DML特性,似乎不可能使用RETURNING子句(在我的例子中是PostgeSQL)。
如果运行简单的insert查询,如:
With FDQuery Do
begin
SQL.Text := 'INSERT INTO temptab(email, name) '
+'VALUES (''email1'', ''name1''), '
+'(''email2'
我正在尝试通过TEdit访问我的SQL查询--只是为了在运行时更改查询以进行测试。 所以我只构建了一个简单的TEdit字段。我正在努力理解在FDQuery.SQL中访问保存的字符串的方法-它像数组一样保存吗? 也许有人可以给我一个关于如何通过TEdit编辑查询的提示。 TEdit.Text := FDQuery1.SQL.Strings['Simply a text string?'];
如何集成这两个代码以在fdquery4中插入fdquery7的值?
FDQuery7.SQL.Add ('SELECT nom FROM bases.nomm ');
FDQuery7.open;
FDQuery7.First;
while not FDQuery7.EOF do
begin
FDQuery7.Fields[0].Value;
FDQuery7.Next;
end;
FDQuery4.SQL.Add ('INSERT INTO name(firstname) Values ("fdquery4")');
FDQuery
在附加第二个数据库之后,我尝试在第一个数据库的表中插入和更新数据,使用的是关于冲突(Id)的DO UPDATE。字段id是第一个表的主键。
FDQuery1.EXECSQL('ATTACH ''D:\Update2019.DB'' AS DBUpdate');
FDQuery1.SQL.Text:=
'INSERT INTO acts (id,title) SELECT id,title FROM DBUpdate.acts'+
' WHERE (DBUpdate.acts.id >10
通过分析SQL Server中的表锁,我在RAD Studio XE7中构建的Win32应用程序在每个FDQuery处于活动状态时启动大量事务。有时,这会导致应用程序出现问题,并锁定数十个用户。特别是对于触发表。 在我的测试中,我使用简单的FDConnection和FDQuery作为默认设置的Select * from Customer,并得出结论是FDQuery1.Active:=True导致了Customer表事务的启动。当为FDQuery1.Active:=false时,该事务将消失。 我想禁止在FDQuery中以只读方式启动事务,作为网格或报告的数据列表。 但是我找不到一种方法来对F
我收到编译器错误"DCC error FormMain.pas(78):E2029‘. expected ';’found“,但我看不出问题出在哪里,因为我直接从复制了这段代码。我使用这种代码:
procedure TForm1.ButtonMuutaClick(Sender: TObject);
var FormTiedot :TFormTiedot;
begin
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('SELECT * FROM Laskuttaja WHERE ID=:ID');
FDQuery1.ParamByName
我有问题的德尔福XE5 Firedac应用程序。我使用中兴刀片3手机运行应用程序。我使用部署管理器将数据库文件添加到资产\内部目录。但是,当我调用FDQuery1.FieldByName('Nimi').AsString时,它会引发异常分段错误(11).Thanks。
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('SELECT * FROM Laskuttaja');
FDQuery1.Open();
FDQuery1.First;
while(not FDQuery1.Eof) do begin
FormTiedot.EditN
在将字段添加到现有的TFDMemTable之后,任何通过TFDLocalSQL查询该表的TFDQuery都不会识别新字段。
下面的代码说明了这一点:在代码中添加一个字段的TFDMemTable和在该表上进行选择的TFDQuery。(假设TFDMemTable被添加到TFDLocalSQL的DataSets属性中,TFDQuery指向TFDConnection)将字段添加到活动TFDMemTable的过程来自,Un准备的使用(在本例中似乎不起作用)来自于这个。
procedure TForm2.FormCreate(Sender: TObject);
begin
with FDMemTab
我试图使用Array DML将从逗号分隔的文件中提取的值插入到Interbase SQL DB中。问题是,我有很多问题
算术、数字溢出或字符串截断
尝试执行DML查询时出错,这很可能是由于循环过远造成的。
虽然DML比使用常规循环和为文件的每一行推送查询更快,但我很难进行调试,因为我无法看到查询在结束时或逐步调试期间被推送。
是否有查看正在推送的查询的方法?到目前为止,FDQuery似乎还没有提供这种可能性,所以我很难判断运行时出了什么问题。
使用的csv文件可以找到,下面是代码:
if FileExists(OpenDialog1.FileName) then
begin
Str
我正在与FireDac一起使用in操作符时遇到困难。
我使用的是甲骨文数据库,无法进行简单的查询。
FDQuery1.SQL.Text := 'SELECT * FROM Customers WHERE Gender in (:Genders)';
FDQuery1.ParamByName('Genders').AsString:= 'M';
它只使用一个参数,但这显然不是in操作符的目的。
然而,多个值不起作用:
FDQuery1.ParamByName('Genders').AsString:= 'M, F'
我需要在PostgreSQL(v9.5)表中插入一个大批处理行。
这张桌子是:
create table TaskLog(
id serial,
taskid integer,
x double precision,
y double precision,
loc character varying(50),
speed smallint,
gpstime timestamp without time zone,
veh character varying(16),
vin character(17),
regdate date,
enabled b
我尝试在单个参数(表值参数)上传递多个值,按照示例可以很好地工作 C:\Users\Public\Documents\Embarcadero\Studio\21.0\Samples\Object Pascal\数据库\FireDAC\Samples\DBMS Specific\MSSQL\TVP SQL: create type TVPType as table(Code integer, Name varchar(100), RegDate datetime, Notes varchar(max))
go
create table TVPTab(Code integer, Name va
嗨,伙计们,我在我的应用程序中有几个表单,我有一个测试按钮,在那里我想启动一个从另一个单元获取的查询。这是我的代码:
procedure TForm1.Button7Click(Sender: TObject);
var test : string;
begin
// test := Unit1.DataModule1.FDQuery2.Open.ToString;
// Unit1.DataModule1.FDQuery2.ExecSQL;
// test.ToString;
// ShowMessage(Unit1.DataModule1.FDQ
最初,我想从使用SaveToStream/LoadToStream的快速报告中保存/检索报告。我使用RAD Studio XE6(upd1)。
在数据库中,我有索引字段'StVn'type int和字段'Definition‘type ntext的表报告。数据库是MSSQL,为了保存报告,我使用:
FDCommand.CommandText.Text:='UPDATE Reports SET Definition= :pDefinition WHERE StVn=1';
FDCommand.Params.ParamByName('pDef
我正在尝试将数据从一个StringGrid插入到Oracle表中,我尝试了如下所示。
function TfrmMapping.LoadtoTable: Boolean;
var
I, J: Integer;
lQuery, s: string;
lData: TArray<string>;
begin
for I := 0 to vTableColumns.count - 1 do
begin
if I <> vTableColumns.count - 1 then
begin
s := s + vTableColum