Soonway,у меня некоторые размышления при чтении кода
читаю:
IF Edit5.Text <> '' THEN
begin
DataModule2.IBQuery8.Params.CreateParam(ftBlob, 'BLB', ptInput);
DataModule2.IBQuery8.ParamByName('BLB').LoadFromFile('D:\BD\vinogradov\'+Edit5.Text+'.bmp', ftBlob);
end;
1) это для меня означает, в том числе, что параметр :BLB может и не создаться/инициализироваться, если Edit5.Text = ''
2) аналогично и с параметром :ТХТ если Edit6.Text = ''
далее, формирование строки "Zapros":
Zapros:=Name_SQL+ TBL + ' VALUES (GEN_ID(N_PRISTS,1)'+' , '+#39+ Edit2.Text +#39 + ' , ' + Edit3.Text + ' ,' + Edit4.Text + ' , '
+ ':BLB1' + ' , ' +':TXT' + ' , ' + 'GEN_ID(N_PRISTS,0)' + ' , ' + #39 + Edit5.Text + #39 + ' , ' + #39 + Edit6.Text + #39 + ');' ;
что я вижу:
1) параматры :BLB и :ТХТ вписаны статически в строку запроса, независимо от того, были ли они ранее созданы (CreateParam) и инициализированы (LoadFromFile)
2) плюс, что удивляет, вместо :BLB вижу :BLB1