function FS_LoadFromDB(Q:TFDQuery; ScrMnemo:string; ItsLibOnly:boolean=true ):string; //Загрузить FS-скрипт по МнемоКоду Var sFilter:string; begin Result:=''; ScrMnemo:=trim(ScrMnemo); if ScrMnemo<>'' then begin sFilter:='(mnemocode_lc='+#39+AnsiLowerCase(ScrMnemo)+#39+')'; if ItsLibOnly then begin sFilter:=sFilter+' and (its_lib=1)'; end; Result:=DB_Table_Field_AsString(Q, 'fs_scripts', 'fs_script', sFilter ); end; end; function DB_Table_Field_AsString(Q:TFDQuery; tndb:string; fntn:string; sFilter:string; sValDef:string=''; sOrderBy:string=''; YesTrim:boolean=true):string; //Получить значение заданного поля (как строка) заданной таблицы Б.Д. по заданному фильтру Var Yes:boolean; begin Result:=sValDef; tndb:=trim(tndb); fntn:=trim(fntn); if (length(tndb)>0) and (length(fntn)>0) then begin if Assigned(Q) then begin sFilter:=trim(sFilter); sOrderBy:=trim(sOrderBy); Yes:=false; Q.Close; Q.SQL.Clear; TRY Q.SQL.Add('select'); Q.SQL.Add(fntn); Q.SQL.Add('from'); Q.SQL.Add(tndb); if length(sFilter)>0 then begin Q.SQL.Add('where'); Q.SQL.Add(sFilter); end; if length(sOrderBy)>0 then begin Q.SQL.Add('order by'); Q.SQL.Add(sOrderBy); end; //Q.SQL.Add('limit 1'); Q.Open; if Q.RecordCount>0 then begin if not Q.Fields[0].IsNull then begin Result:=Q.Fields[0].AsString; end; end; Yes:=true; FINALLY Q.Close; if not Yes then begin ShowMessage(Q.SQL.Text); end; Q.SQL.Clear; END; end; end; if YesTrim then Result:=trim(Result); end;