【发布时间】:2015-10-22 12:22:41
【问题描述】:
在 Delphi 2007 中使用 ADOQuery 当我使用 insert into 将一行添加到表中时 我如何得到最后一行?
我正在用这个添加行。
QD_TEMP1.close;
QD_TEMP1.sql.Clear;
QD_TEMP1.SQL.Add('insert into s_hasta_Kabul (Protokol,Muay_ID,Ocak_Kod,Tc_Kimlik_No) ');
QD_TEMP1.SQL.Add('values (:Protokol,:Muay_ID,:Ocak_Kod,:Tc_Kimlik_No) ');
QD_TEMP1.Parameters.ParamByName('Protokol').Value := 0;
QD_TEMP1.Parameters.ParamByName('Muay_ID').Value := 2;
QD_TEMP1.Parameters.ParamByName('Ocak_Kod').Value := 3;
QD_TEMP1.Parameters.ParamByName('Tc_Kimlik_No').Value := 4;
QD_TEMP1.ExecSQL;
如何在 execsql 之后获取最后添加的行?
【问题讨论】:
-
你的表中是否有标识列
-
我有 5 个身份列,是的,总共 30 列。不要问为什么5个身份。我不知道它的旧表属于一家公司
-
但是你只有 1 个正确的主键 :) 我不知道 delphi 但插入后的 SQL 观点
SELECT @Id = SCOPE_IDENTITY()任何进来的东西都只是传递为SELECT * FROM s_hasta_Kabul WHERE pkColumn = @Id -
“5 标识列”是什么意思?每个表只能有一个标识列。
-
@Jasper - 不是我正在看的图像。当问题的 INSERT 语句中仅指定 4 个时,PK 不仅包含 5 个值,而且在这 4 个中只有 2 个是 PK 的一部分(Okac_Kod 和 TC_Kimlik_No )。
标签: sql-server delphi tadoquery