Код:
var mas: array of integer;
i: integer;
begin
DataModule1.StoredProc.Close;
DataModule1.StoredProc.ProcedureName:='SelectNomKey';
DataModule1.StoredProc.Parameters.Clear;
DataModule1.StoredProc.Parameters.Refresh;
DataModule1.StoredProc.Parameters.ParamByName('@name_key').Value:=FormMain.EditPoiskKey.Text;
DataModule1.StoredProc.ExecProc;
DataModule1.StoredProc.Active:=True;
DataModule1.StoredProc.First;
if (DataModule1.StoredProc.RecordCount>0) then
SetLength(mas,DataModule1.StoredProc.RecordCount);
//по названию ключевого_поля выбираю все коды этих полей и помещаю в дин. массив
for i:=0 to DataModule1.StoredProc.RecordCount-1 do
begin
mas[i]:=DataModule1.StoredProc.FieldValues['nom_key'];
DataModule1.StoredProc.Next;
end;
//все номера (может быть несколько) записываю в массив, после чего по этим кодам ключ. слов ищу документы
for i:=0 to length(mas)-1 do
begin
DataModule1.StoredProc.Close;
DataModule1.StoredProc.ProcedureName:='PoiskNomKey';
DataModule1.StoredProc.Parameters.Clear;
DataModule1.StoredProc.Parameters.Refresh;
DataModule1.StoredProc.Parameters.ParamByName('@nom_key').Value:=mas[i];
DataModule1.StoredProc.ExecProc;
DataModule1.StoredProc.Active:=True;
DataModule1.StoredProc.First;
FormMain.GridRezPoisk.DataSource.DataSet.FieldByName('nom_doc_com').AsString;
DataModule1.StoredProc.Next;
end;
finalize(mas);
end;
У меня, в dbgrid записывается последняя запись, т.е. как первая нужная запись находится она отображается в dbgrid, если находится вторая, то она заполняется вместо первой... а мне нужно чтобы все записи попадали. Можно ли сделать, чтобы записи добавлялись и все отображались в dbgrid'e, а не последняя найденная..?
Помогите пожалуйста в этом разобраться.