gpt4 book ai didi

delphi - 添加到数据库不起作用

转载 作者:行者123 更新时间:2023-12-04 12:06:33 26 4
gpt4 key购买 nike

我进行查询以查看 Assets 编号是否在数据库中,它返回 false,因此我想将数据添加到数据库中,我没有收到任何错误。但它从不添加数据。

  //check if its there, if so update it, if not add it.
if fdeptlayout.adoquery1.IsEmpty then
begin
showmessage('adding new machine to db');
with Fdeptlayout.ADOQuery1 do
begin
sql.Clear;
sql.BeginUpdate;
sql.add('INSERT INTO MList ');
sql.Add('(Zone,Dept,Number,Name,Asset,IsPanel');
sql.Add(',FinalLocation,Left,Top) ');
sql.Add('VALUES ( :Zone, :Dept, :Number, :Name, :Asset, :IsPanel');
sql.Add(', :FinalLocation, :Left, :Top)');
sql.EndUpdate;
Parameters.ParamByName('Zone').Value := CZone;
Parameters.ParamByName('Dept').Value := CDept;
Parameters.ParamByName('Number').Value := CNumber;
Parameters.ParamByName('Name').Value := CName;
Parameters.ParamByName('Asset').Value := CAsset;
Parameters.ParamByName('IsPanel').Value := CIsPanel;
Parameters.ParamByName('FinalLocation').Value := CFinalLocation;
Parameters.ParamByName('Left').Value := CLeft;
Parameters.ParamByName('Top').Value := CTop;
open;

最佳答案

看来您使用的是 adoquery1用于获取数据并发送命令。

你不能那样做。

使用追加

您可以将数据直接附加到打开的数据集

with Fdeptlayout.ADOQuery1 do
begin
// append a new row
Append;

// set data to all fields
FieldByName('Zone').Value := CZone;
FieldByName('Dept').Value := CDept;
FieldByName('Number').Value := CNumber;
FieldByName('Name').Value := CName;
FieldByName('Asset').Value := CAsset;
FieldByName('IsPanel').Value := CIsPanel;
FieldByName('FinalLocation').Value := CFinalLocation;
FieldByName('Left').Value := CLeft;
FieldByName('Top').Value := CTop;

// post the new added data to the dataset
Post;
end;

使用 SQL 命令

您必须使用单独的查询实例来执行 sql 命令
with TADOQuery.Create( nil ) do
try
// Prepare
Connection := Fdeptlayout.ADOQuery1.Connection;

sql.add('INSERT INTO MList ');
sql.Add('(Zone,Dept,Number,Name,Asset,IsPanel');
sql.Add(',FinalLocation,Left,Top) ');
sql.Add('VALUES ( :Zone, :Dept, :Number, :Name, :Asset, :IsPanel');
sql.Add(', :FinalLocation, :Left, :Top)');

Parameters.ParamByName('Zone').Value := CZone;
Parameters.ParamByName('Dept').Value := CDept;
Parameters.ParamByName('Number').Value := CNumber;
Parameters.ParamByName('Name').Value := CName;
Parameters.ParamByName('Asset').Value := CAsset;
Parameters.ParamByName('IsPanel').Value := CIsPanel;
Parameters.ParamByName('FinalLocation').Value := CFinalLocation;
Parameters.ParamByName('Left').Value := CLeft;
Parameters.ParamByName('Top').Value := CTop;

// Execute the statement
ExecSQL;

finally
Free;
end;

// Update the data
Fdeptlayout.ADOQuery1.Refresh;
// or even better
Fdeptlayout.ADOQuery1.Requery;

关于delphi - 添加到数据库不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15241953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com