获取数据库字段值不起作用

时间:2017-08-20 18:24:16

标签: database delphi ms-access

我正在使用ado连接adoquery和dsr以及adotable

我有一个数据库,其中bookingnumbers是表格客户端中的一个字段。

我想获得该字段中的最后一个预订号并将其存储在变量中。

预订号码在访问时保存为文本。

到目前为止,我有:

Var
sNum : string;
....
sNum := Datamodule1.tblClient['BookingNumber'].Last;

但它不起作用。

请帮帮忙?

2 个答案:

答案 0 :(得分:4)

通过导航数据集尝试找到字段的最大值并不是一个好主意,特别是如果数据集不必由相关字段排序。尝试这样的事情:

function TForm1.GetMaxBookingNumber : Integer;
var
  Q : TAdoQuery;
begin
  Q := TAdoQuery.Create(Nil);
  Q.Connection := DataModule1.AdoConnection1;  //  or whatever the name of your connection is
  try
    Q.SQL.Text := 'SELECT MAX(BookingNumber) FROM CLIENT';
    Q.Open;
    // the `not IsNull` in the following allows for the table being empty
    if not Q.Fields[0].IsNull then 
      Result := Q.Fields[0].AsInteger
    else
      Result := -1;
  finally
    Q.Free;
  end;
end;

答案 1 :(得分:-1)

所以这就是我想要的: VAR sNum:string; 程序按钮单击 开始

用Datamodule1做     开始       qryClient.SQL.Add('SELECT BookingNumber FROM Client');       qryClient.Open;       qryClient.last;       sNum:= qryClient ['BookingNumber'];     结束; 端;