Question: where is the data returned to in this context? I tried referencing it by column header as in the example (my code here): Query1.Fields.FieldByName('Data').AsString;
First, have you solved this thread?
If not, how is your complete statement for "Select * From InstrumentMaster"?
Just as an example. Let's say the complete statement is "Select PartNumber, Name, SerialNumber, BuyDate From InstrumentMaster".
Let suppose its resultset is:
PartNumber, Name, SerialNumber, BuyDate
Record 1: 1001, 'pen', 2001, 31.03.2018
Record 2: 1002, 'pencil', 2002, 28.02.2018
When you open SQLQuery1, you have access to all its resultset starting by the first line, of course.
SQLQuery1.Open;
So, if you ask:
ShowMessage(IntToStr(SQLQuery1.FieldByName('PartNumber').AsInteger));
or
ShowMessage(SQLQuery1.FieldByName('PartNumber').AsString);
or
ShowMessage(IntToStr(SQLQuery1.Fields[0].AsInteger));
or
ShowMessage(SQLQuery1.Fields[0].AsString);
The result will be the same: 1001.
So, if you ask:
ShowMessage(SQLQuery1.FieldByName('Name').AsString);
The result will be: 'pen'.
ShowMessage(SQLQuery1.FieldByName('SerialNumber').AsString);
The result will be: 2001.
ShowMessage(DateToStr(SQLQuery1.FieldByName('BuyDate').AsDate));
The result will be: '31/03/2018'.
If you change the line of the recordset (Next, Prior, First or Last commands):
SQLQuery1.Next;
If you ask the same as before:
ShowMessage(SQLQuery1.FieldByName('PartNumber').AsString);
ShowMessage(SQLQuery1.FieldByName('Name').AsString);
ShowMessage(SQLQuery1.FieldByName('SerialNumber').AsString);
ShowMessage(DateToStr(SQLQuery1.FieldByName('BuyDate').AsDate));
or
ShowMessage(SQLQuery1.Fields[0].AsString);
ShowMessage(SQLQuery1.Fields[1].AsString);
ShowMessage(SQLQuery1.Fields[2].AsString);
ShowMessage(DateToStr(SQLQuery1.Fields[3].AsDate));
The result will be: 1002, 'pencil', 2002, '28.02.2018'.
So, keep reading records until the end of the dataset.
SQLQuery1.First;
while not SQLQuery1.Eof do
begin
... many showmessages ...
SQLQuery1.Next;
end;